Skip to content

[soldier] Platform: Add some gcc runtime libraries

Simon McVittie requested to merge wip/smcv/add-libatomic-soldier into steamrt/soldier

libatomic.so.1 is used automatically for out-of-line implementations of some atomic intrinsics, and in particular is needed by Company of Heroes 2 (app ID 231430) according to steam-runtime#240.

libquadmath.so.0 is something to do with extended floating-point precision; it isn't clear to me whether it's used automatically by gcc, but in any case it's very small and lots of packages in Debian depend on it, so I've given it the benefit of the doubt.

libitm.so.1 is a transactional memory runtime library, only used if a developer specifies -fgnu-tm. It's small, and one Debian package depends on it, so I've given it the benefit of the doubt.

libgcc1 and libgomp1 have similar roles, but were already part of our ABI so do not need to be added.

I have not added the following additional gcc libraries at this stage:

  • libasan2, libasan5, liblsan0, libmudflap0, libtsan0, libubsan0 (developer-oriented runtimes for instrumented binaries; consider using -static-libasan, etc. if linking to these; libmudflap was dropped after gcc-4.8, superseded by libasan)
  • libcc1-0: gcc/gdb shared code (developer-oriented)
  • libcilkrts5: Intel Cilk Plus language extension (only used if a developer specifies -fcilkplus; rarely used in practice; nothing depends on it in Debian; dropped after gcc-7)
  • libgccjit0: Just-in-time compiler library (rarely used; nothing depends on it in Debian, except for its Python bindings)
  • libgcj*: Java runtime for programs compiled with gcj (the Steam Runtime does not support Java programs)
  • libgfortran*: Fortran runtime (the Steam Runtime does not support Fortran programs)
  • libgnat*: Ada runtime (the Steam Runtime does not support Ada programs)
  • libgo{7,13}: Golang runtime (the Steam Runtime does not support Go programs)
  • libhsail-rt0: HSAIL runtime library (seems to be rarely-used, nothing depends on it in Debian)
  • libmpx0, libmpx2: Intel memory protection extensions runtime (not used unless a developer specifies -fcheck-pointer-bounds -mmpx; nothing depends on it in Debian; dropped after gcc-8)
  • libobjc4: Objective-C runtime library (the Steam Runtime does not support Objective-C programs)

/cc @denittis @jpwhiting @timo

soldier version of !46 (merged). Compared with !46 (merged), the only real difference/decision made is that I chose not to include libhsail-rt0.

Test-build in progress: https://jenkins.internal.steamos.cloud/job/playground/job/soldier/job/build/43

Edited by Simon McVittie

Merge request reports