Compiling static executables on old Mac OS X 10.6.8, Snow Leopard, with GCC 10 or newer
Peter Dyballa via Gcc-help <[email protected]> Sat, 21 Feb 2026 21:14:37 +0100
| Newsgroups | gmane.comp.gcc.help |
|---|---|
| Message-ID | <[email protected]> |
Hello! I was trying to build the legacy edition of pre-release binaries for TeX Live '26 on that 15 years old Mac with modern and recommended GCC 14 (although 15 and 15 would match) – and failed (at least in my opinion): LiveTeXHaX pete 140 /\ otool -L TeXLive-2026/inst/bin/x86_64-apple-darwin10.8.0/xdvipsk TeXLive-2026/inst/bin/x86_64-apple-darwin10.8.0/xdvipsk: /opt/local/lib/libgcc/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.34.0) /opt/local/lib/libgcc/libgcc_s.1.1.dylib (compatibility version 1.0.0, current version 1.1.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11) (otool is similar to Linux' ldd) The two shared libraries are not installed on each Mac, and so I wished they were linked in as static libraries that only exist as: -rw-r--r-- 1 root admin 22341536 20. Feb 13:40 /opt/local/lib/gcc14/libstdc++.a Build of TL '26 is done via a shell script that configures and makes in dozens of directories. Its invocation was with: CC=gcc-mp-14 CFLAGS="-O0 -fdata-sections -ffunction-sections -static-libgcc -L/usr/lib -Wl,-dead_strip -Wl,-t -Wl,-v" CXX=g++-mp-14 CXXFLAGS="-v -O0 -stdlib=libstdc++ -static-libstdc++ -Wl,-rpath /usr/lib" The system provides: -r-xr-xr-x 1 root wheel 6890816 8. Jun 2011 /usr/lib/libSystem.B.dylib lrwxr-xr-x 1 root wheel 17 9. Feb 12:05 /usr/lib/libSystem.dylib -> libSystem.B.dylib -rwxr-xr-x 1 root admin 2304336 3. Aug 2022 /usr/lib/libc++.1.dylib lrwxr-xr-x 1 root admin 14 3. Aug 2022 /usr/lib/libc++.dylib -> libc++.1.dylib -rwxr-xr-x 1 root admin 469888 3. Aug 2022 /usr/lib/libc++abi.dylib lrwxr-xr-x 1 root wheel 15 9. Feb 12:05 /usr/lib/libc.dylib -> libSystem.dylib Can I reach my aim with GCC 14 or 15? Or is GCC 10 better suited (-std=c++17 needs to be supported)? (The MacPorts folks, that foster the MacPorts package manager with which I built GCC, use GCC 10 to bootstrap the software from almost nothing, just a small installer package.) Or are there some more elaborate options for creating static executables? (Or am only I misinterpreting otool's output?) The steps to create the xdvipsk executable were (taken from build log): /bin/sh ./libtool --tag=CXX --mode=link g++-mp-14 -v -O0 -stdlib=libstdc++ -static-libstdc++ -Wl,-rpath /usr/lib -o xdvipsk xdvipsk-bbox.o xdvipsk-bitmapenc.o xdvipsk-charcode.o xdvipsk-color.o xdvipsk-dopage.o xdvipsk-dosection.o xdvipsk-dospecial.o xdvipsk-download.o xdvipsk-dpicheck.o xdvipsk-drawPS.o xdvipsk-dviinput.o xdvipsk-emspecialex.o xdvipsk-finclude.o xdvipsk-fontdef.o xdvipsk-glyphmap.o xdvipsk-header.o xdvipsk-hps.o xdvipsk-loadfont.o xdvipsk-luamap.o xdvipsk-makefont.o xdvipsk-output.o xdvipsk-papersiz.o xdvipsk-pprescan.o xdvipsk-prescan.o xdvipsk-repack.o xdvipsk-resident.o xdvipsk-scalewidth.o xdvipsk-scanpage.o xdvipsk-search.o xdvipsk-sfntload.o xdvipsk-skippage.o xdvipsk-t1part.o xdvipsk-tfmload.o xdvipsk-unpack.o xdvipsk-virtualfont.o xdvipsk-writecid.o xdvipsk-writet1.o xdvipsk-xdvips.o otflib/xdvipsk-cff.o otflib/xdvipsk-cff_dict.o otflib/xdvipsk-cidsysinfo.o otflib/xdvipsk-cidtype0.o otflib/xdvipsk-cidtype2.o otflib/xdvipsk-cmap.o otflib/xdvipsk-cmap_write.o otflib/xdvipsk-cs_type2.o otflib/xdvipsk-dpxfile.o otflib/xdvipsk-dpxutil.o otflib/xdvipsk-error.o otflib/xdvipsk-mem.o otflib/xdvipsk-mfileio.o otflib/xdvipsk-numbers.o otflib/xdvipsk-sfnt.o otflib/xdvipsk-tt_aux.o otflib/xdvipsk-tt_cmap.o otflib/xdvipsk-tt_glyf.o otflib/xdvipsk-tt_post.o otflib/xdvipsk-tt_table.o otflib/xdvipsk-unicode.o libdvipsgraph.a ..../TeXLive-2026/Work/texk/kpathsea/libkpathsea.la ..../TeXLive-2026/Work/libs/lua53/libtexlua53.la libtiff.a ..../TeXLive-2026/Work/libs/libpng/libpng.a ..../TeXLive-2026/Work/libs/zlib/libz.a libjpeg.a ..../TeXLive-2026/Work/libs/freetype2/libfreetype.a -lstdc++ libtool: link: g++-mp-14 -v -O0 -stdlib=libstdc++ -static-libstdc++ -o xdvipsk xdvipsk-bbox.o xdvipsk-bitmapenc.o xdvipsk-charcode.o xdvipsk-color.o xdvipsk-dopage.o xdvipsk-dosection.o xdvipsk-dospecial.o xdvipsk-download.o xdvipsk-dpicheck.o xdvipsk-drawPS.o xdvipsk-dviinput.o xdvipsk-emspecialex.o xdvipsk-finclude.o xdvipsk-fontdef.o xdvipsk-glyphmap.o xdvipsk-header.o xdvipsk-hps.o xdvipsk-loadfont.o xdvipsk-luamap.o xdvipsk-makefont.o xdvipsk-output.o xdvipsk-papersiz.o xdvipsk-pprescan.o xdvipsk-prescan.o xdvipsk-repack.o xdvipsk-resident.o xdvipsk-scalewidth.o xdvipsk-scanpage.o xdvipsk-search.o xdvipsk-sfntload.o xdvipsk-skippage.o xdvipsk-t1part.o xdvipsk-tfmload.o xdvipsk-unpack.o xdvipsk-virtualfont.o xdvipsk-writecid.o xdvipsk-writet1.o xdvipsk-xdvips.o otflib/xdvipsk-cff.o otflib/xdvipsk-cff_dict.o otflib/xdvipsk-cidsysinfo.o otflib/xdvipsk-cidtype0.o otflib/xdvipsk-cidtype2.o otflib/xdvipsk-cmap.o otflib/xdvipsk-cmap_write.o otflib/xdvipsk-cs_type2.o otflib/xdvipsk-dpxfile.o otflib/xdvipsk-dpxutil.o otflib/xdvipsk-error.o otflib/xdvipsk-mem.o otflib/xdvipsk-mfileio.o otflib/xdvipsk-numbers.o otflib/xdvipsk-sfnt.o otflib/xdvipsk-tt_aux.o otflib/xdvipsk-tt_cmap.o otflib/xdvipsk-tt_glyf.o otflib/xdvipsk-tt_post.o otflib/xdvipsk-tt_table.o otflib/xdvipsk-unicode.o -Wl,-bind_at_load libdvipsgraph.a ..../TeXLive-2026/Work/texk/kpathsea/.libs/libkpathsea.a -L/usr/lib ..../TeXLive-2026/Work/libs/lua53/.libs/libtexlua53.a libtiff.a ..../TeXLive-2026/Work/libs/libpng/libpng.a ..../TeXLive-2026/Work/libs/zlib/libz.a libjpeg.a ..../TeXLive-2026/Work/libs/freetype2/libfreetype.a /opt/local/lib/gcc14/libstdc++.dylib Using built-in specs. COLLECT_GCC=g++-mp-14 COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin10/14.3.0/lto-wrapper Target: x86_64-apple-darwin10 Configured with: /opt/local/var/macports/build/gcc14-f785cd4b/work/gcc-14.3.0/configure --prefix=/opt/local --build=x86_64-apple-darwin10 --enable-languages=c,c++,objc,obj-c++,lto,fortran,m2,jit --libdir=/opt/local/lib/gcc14 --infodir=/opt/local/share/info --mandir=/opt/local/share/man --datarootdir=/opt/local/share/gcc-14 --with-local-prefix=/opt/local --with-system-zlib --disable-nls --program-suffix=-mp-14 --with-gxx-include-dir=/opt/local/include/gcc14/c++/ --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --with-isl=/opt/local --with-zstd=/opt/local --enable-checking=release --disable-multilib --enable-lto --enable-libstdcxx-time --without-build-config --with-as=/opt/local/bin/as --with-ld=/opt/local/bin/ld --with-ar=/opt/local/bin/ar --with-bugurl=https://trac.macports.org/newticket --enable-host-shared --with-darwin-extra-rpath=/opt/local/lib/libgcc --with-libiconv-prefix=/opt/local --disable-tls --with-gxx-libcxx-include-dir=/opt/local/libexec/gcc14/libc++/include/c++/v1 --with-pkgversion='MacPorts gcc14 14.3.0_0+stdlib_flag' Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 14.3.0 (MacPorts gcc14 14.3.0_0+stdlib_flag) COMPILER_PATH=/opt/local/libexec/gcc/x86_64-apple-darwin10/14.3.0/:/opt/local/libexec/gcc/x86_64-apple-darwin10/14.3.0/:/opt/local/libexec/gcc/x86_64-apple-darwin10/:/opt/local/lib/gcc14/gcc/x86_64-apple-darwin10/14.3.0/:/opt/local/lib/gcc14/gcc/x86_64-apple-darwin10/ LIBRARY_PATH=/opt/local/lib/gcc14/gcc/x86_64-apple-darwin10/14.3.0/:/opt/local/lib/gcc14/gcc/x86_64-apple-darwin10/14.3.0/../../../ COLLECT_GCC_OPTIONS='-v' '-O0' '-stdlib=libstdc++' '-static-libstdc++' '-o' 'xdvipsk' '-L/usr/lib' '-mmacosx-version-min=10.6.0' '-asm_macosx_version_min=10.6' '-nodefaultexport' '-shared-libgcc' '-mtune=core2' '-dumpdir' 'xdvipsk.' /opt/local/libexec/gcc/x86_64-apple-darwin10/14.3.0/collect2 -demangle -dynamic -arch x86_64 -macosx_version_min 10.6.0 -o xdvipsk -lcrt1.10.6.o -L/usr/lib -L/opt/local/lib/gcc14/gcc/x86_64-apple-darwin10/14.3.0 -L/opt/local/lib/gcc14/gcc/x86_64-apple-darwin10/14.3.0/../../.. -lemutls_w -lheapt_w xdvipsk-bbox.o xdvipsk-bitmapenc.o xdvipsk-charcode.o xdvipsk-color.o xdvipsk-dopage.o xdvipsk-dosection.o xdvipsk-dospecial.o xdvipsk-download.o xdvipsk-dpicheck.o xdvipsk-drawPS.o xdvipsk-dviinput.o xdvipsk-emspecialex.o xdvipsk-finclude.o xdvipsk-fontdef.o xdvipsk-glyphmap.o xdvipsk-header.o xdvipsk-hps.o xdvipsk-loadfont.o xdvipsk-luamap.o xdvipsk-makefont.o xdvipsk-output.o xdvipsk-papersiz.o xdvipsk-pprescan.o xdvipsk-prescan.o xdvipsk-repack.o xdvipsk-resident.o xdvipsk-scalewidth.o xdvipsk-scanpage.o xdvipsk-search.o xdvipsk-sfntload.o xdvipsk-skippage.o xdvipsk-t1part.o xdvipsk-tfmload.o xdvipsk-unpack.o xdvipsk-virtualfont.o xdvipsk-writecid.o xdvipsk-writet1.o xdvipsk-xdvips.o otflib/xdvipsk-cff.o otflib/xdvipsk-cff_dict.o otflib/xdvipsk-cidsysinfo.o otflib/xdvipsk-cidtype0.o otflib/xdvipsk-cidtype2.o otflib/xdvipsk-cmap.o otflib/xdvipsk-cmap_write.o otflib/xdvipsk-cs_type2.o otflib/xdvipsk-dpxfile.o otflib/xdvipsk-dpxutil.o otflib/xdvipsk-error.o otflib/xdvipsk-mem.o otflib/xdvipsk-mfileio.o otflib/xdvipsk-numbers.o otflib/xdvipsk-sfnt.o otflib/xdvipsk-tt_aux.o otflib/xdvipsk-tt_cmap.o otflib/xdvipsk-tt_glyf.o otflib/xdvipsk-tt_post.o otflib/xdvipsk-tt_table.o otflib/xdvipsk-unicode.o -bind_at_load libdvipsgraph.a ..../TeXLive-2026/Work/texk/kpathsea/.libs/libkpathsea.a ..../TeXLive-2026/Work/libs/lua53/.libs/libtexlua53.a libtiff.a ..../TeXLive-2026/Work/libs/libpng/libpng.a ..../TeXLive-2026/Work/libs/zlib/libz.a libjpeg.a ..../TeXLive-2026/Work/libs/freetype2/libfreetype.a /opt/local/lib/gcc14/libstdc++.dylib /opt/local/lib/gcc14/gcc/x86_64-apple-darwin10/14.3.0/../../../libstdc++.a -ld10-uwfef -lgcc_s.1.1 -lgcc -lSystem -no_compact_unwind -rpath /opt/local/lib/libgcc Both /opt/local/lib/gcc14/libstdc++.dylib and /opt/local/lib/gcc14/gcc/x86_64-apple-darwin10/14.3.0/../../../libstdc++.a == /opt/local/lib/gcc14/libstdc++.a are linked… A new -rpath setting is introduced: /opt/local/lib/libgcc, and COLLECT_GCC_OPTIONS contains '-shared-libgcc' – because there is no static version from the compiler, only the system? -- Greetings Pete Wasting time is an important part of living.