Re: Compiling static executables on old Mac OS X 10.6.8, Snow Leopard, with GCC 10 or newer
Jonathan Wakely via Gcc-help <[email protected]> Sun, 22 Feb 2026 07:58:52 +0000
| Newsgroups | gmane.comp.gcc.help |
|---|---|
| Message-ID | <CAH6eHdRndsJWorgPSzbJ2r=dhjrLT67-_kSQFw5uLBDW2vTcEA@mail.gmail.com> |
On Sat, 21 Feb 2026, 20:16 Peter Dyballa via Gcc-help, <[email protected]> wrote: > 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" > This looks wrong, there should be a comma after -rpath not a space, so -Wl,-rpath,/use/lib Also I would expect that to be in LDFLAGS not CXXFLAGS I would expect -static-libstdc++ to be sufficient to make it link to the libstdc++.a library though, instead of libstdc++.6.dylib > 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. > >