On 2018-04-09 05:21, Daniel P. Berrangé wrote: > On Mon, Apr 09, 2018 at 04:21:54AM -0500, Yaakov Selkowitz wrote: >> On 2018-04-09 03:59, Florian Weimer wrote: >>> Is there a recommend way to get libtool to pass through all flags >>> specified in CFLAGS and LDFLAGS unchanged, and have the GCC compiler >>> driver sort out which flags to pass to the compiler/assembler/linker? >> >> $ libtool --mode=compile --help >> [snip] >> This mode accepts the following additional options: >> [snip] >> -Wc,FLAG pass FLAG directly to the compiler >> >> $ libtool --mode=link --help >> [snip] >> The following components of LINK-COMMAND are treated specially: >> [snip] >> -Wc,FLAG >> -Xcompiler FLAG pass linker-specific FLAG directly to the compiler >> -Wl,FLAG >> -Xlinker FLAG pass linker-specific FLAG directly to the linker >> >> But, often when this happens, it is the fault of a poorly written >> configure.ac or Makefile.am. Where exactly are you seeing an issue? > > Even if you use -Wl,FLAG, libtool may well still screw it up, because it > arbitrarily re-orders all -Wl,FLAG args to come after/ the -lLIB args. > This breaks flags which are position sensitive like -Wl,--as-needed > eg > > libdemo_la_LDFLAGS = -Wl,--as-needed -lm -Wl,--no-as-needed -lvirt > > will get turned into > > gcc .... -lm -lvirt -Wl,--as-needed -Wl,--no-as-needed True, if you need to preserve order you need to use -Wl, for each such argument, e.g.: libdemo_la_LDFLAGS = -Xlinker --as-needed -Xlinker -lm -Xlinker --no-as-needed -lvirt or: libdemo_la_LDFLAGS = -Wl,--as-needed,-lm,--no-as-needed -lvirt Failure to do so would qualify as "a poorly written Makefile.am". -- Yaakov Selkowitz Software Engineer - Platform Enablement Group Red Hat, Inc. _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx