https://sourceware.org/bugzilla/show_bug.cgi?id=32816
--- Comment #2 from Aliaksey Kandratsenka <alkondratenko at gmail dot com> --- As noted above, I have tried --no-as-needed. And yes it kinda "works", but it is not great. There several imperfections with --no-as-needed: *) automake stuff insists on having only -lfoobar (and maybe -L) in PROG_LIBADD variable. I.e. cannot wrap -Wl,--push-state,--as-needed -Wl,--pop-state around my -lprofiler thing. I can and currently do this in LDFLAGS but this mentions -lprofiler "too early" in libprofiler is static library. I.e. LDFLAGS are passed early in linking command and LIBADD is appended (which kinda makes sense in general). *) --as-needed is insufficient for the static library case *) I am not 100% sold on the wisdom of distros defaulting to --as-needed, but they do. And me asking users of my library to disable it is not perfect. My current workaround is to do both AM_LDFLAGS = -Wl,--push-state,--no-as-needed \ $(cpuprofiler_LIBS) \ -Wl,--pop-state -Wl,-uProfilerStart and trigram_index_LDADD = $(tcmalloc_LIBS) $(cpuprofiler_LIBS) So kinda mentioning -lprofiler twice, once for ".so" case via --no-as-needed and once for the ".a" case via -Wl,-u and -lprofiler at the end of linking command line. So ideally, we'd have --undefined flag equally working across shared and static libraries and have everything nice and logical. -- You are receiving this mail because: You are on the CC list for the bug.