URL: <https://savannah.gnu.org/support/?111202>
Summary: Libtool strips -static flag from CFLAGS Group: GNU Libtool Submitter: droopy4096 Submitted: Thu 27 Feb 2025 11:30:40 PM UTC Category: None Priority: 5 - Normal Severity: 3 - Normal Status: None Privacy: Public Assigned to: None Originator Email: Open/Closed: Open Discussion Lock: Any Operating System: None _______________________________________________________ Follow-up Comments: ------------------------------------------------------- Date: Thu 27 Feb 2025 11:30:40 PM UTC By: Droopy <droopy4096> I'm working on building toolchain within Alpine linux container. As one example - building `pkgconf` with `CFLAGS=-static` and `./configure --disable-shared` still results in dynamically linked binary: ``` /src $ ldd /tmp/pkconf.default /lib/ld-musl-x86_64.so.1 (0x7fbf5b4af000) libc.musl-x86_64.so.1 => /lib/ld-musl-x86_64.so.1 (0x7fbf5b4af000) ``` when I try to force static binary generation via `LDFLAGS=-Wl,-static` I get "broken" binary as libtool ends up assembling binary without an entry point (crt1.o) as far as I can tell. Issue is really visible here: ``` /bin/sh ./libtool --tag=CC --mode=link clang -DPERSONALITY_PATH=\"/opt/gitlab/bootstrap/share/pkgconfig/personality.d:/opt/gitlab/bootstrap/etc/pkgconfig/personality.d\" -DPKG_DEFAULT_PATH=\"/opt/gitlab/bootstrap/lib64/pkgconfig:/opt/gitlab/bootstrap/share/pkgconfig\" -DSYSTEM_INCLUDEDIR=\"/opt/gitlab/bootstrap/include\" -DSYSTEM_LIBDIR=\"/opt/gitlab/bootstrap/lib64\" -fuse-ld=lld --rtlib=compiler-rt -static -no-pie -L/opt/gitlab/bootstrap/lib64 -lc -L/usr/lib -o bomtool cli/bomtool/bomtool-main.o cli/bomtool-getopt_long.o libpkgconf.la libtool: link: clang "-DPERSONALITY_PATH=\"/opt/gitlab/bootstrap/share/pkgconfig/personality.d:/opt/gitlab/bootstrap/etc/pkgconfig/personality.d\"" "-DPKG_DEFAULT_PATH=\"/opt/gitlab/bootstrap/lib64/pkgconfig:/opt/gitlab/bootstrap/share/pkgconfig\"" "-DSYSTEM_INCLUDEDIR=\"/opt/gitlab/bootstrap/include\"" "-DSYSTEM_LIBDIR=\"/opt/gitlab/bootstrap/lib64\"" -fuse-ld=lld --rtlib=compiler-rt -no-pie -o bomtool cli/bomtool/bomtool-main.o cli/bomtool-getopt_long.o -L/opt/gitlab/bootstrap/lib64 -L/usr/lib ./.libs/libpkgconf.a -lc ``` note that second line is **missing** `-static`. Same command *with* `-static` flag produces proper binary. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/support/?111202> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/
signature.asc
Description: PGP signature