Bruno Haible <[EMAIL PROTECTED]> writes: > Simon Josefsson wrote: >> The gettext module brings in the proper -I's to make gettext calls >> work, but doesn't bring in the library. > > This is normal. We specify the needed libraries for each program and > for each shared library separately. So that, for example, in coreutils > only those programs are linked to librt and libpthread that need it; > only those programs are linked to libm that need it; etc. - although > these needs arise through gnulib modules.
That's longstanding coreutils practice, but it's a maintenance hassle and in coreutils CVS we're using a new gl_IGNORE_UNUSED_LIBRARIES macro (defined in m4/lib-ignore.m4) that tells the linker to omit references to libraries that are not actually used (this is the '-z ignore' option of the Solaris linker). At some point I was going to propose to move this into gnulib. Here's the source code, to save you the hassle of looking it up. # If possible, ignore libraries that are not depended on. dnl Copyright (C) 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. AC_DEFUN([gl_IGNORE_UNUSED_LIBRARIES], [ AC_CACHE_CHECK([for flag to ignore unused libraries], [gl_cv_ignore_unused_libraries], [gl_cv_ignore_unused_libraries=none gl_saved_ldflags=$LDFLAGS # Use long option sequences like '-z ignore' to test for the feature, # to forestall problems with linkers that have -z, -i, -g, -n, etc. flags. for gl_flags in '-Wl,-z,ignore' '-z ignore'; do LDFLAGS="$gl_flags $LDFLAGS" AC_LINK_IFELSE([AC_LANG_PROGRAM()], [gl_cv_ignore_unused_libraries=$gl_flags]) LDFLAGS=$gl_saved_ldflags test "$gl_cv_ignore_unused_libraries" != none && break done]) test "$gl_cv_ignore_unused_libraries" != none && LDFLAGS="$LDFLAGS $gl_cv_ignore_unused_libraries" ])