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.
>
>