URL: <http://savannah.gnu.org/bugs/?30914>
Summary: Standard library search path not configurable Project: make Submitted by: edman007 Submitted on: Tue 31 Aug 2010 03:36:36 AM GMT Severity: 3 - Normal Item Group: Enhancement Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Component Version: CVS Operating System: Any Fixed Release: None Triage Status: None _______________________________________________________ Details: for rules like this: foo: -lbar According to the docs: > When a prerequisite's name has the form ‘-lname’, make handles it specially by searching for the file libname.so, and, if it is not found, for the file libname.a in the current directory, in directories specified by matching vpath search paths and the VPATH search path, and then in the directories /lib, /usr/lib, and prefix/lib (normally /usr/local/lib, but MS-DOS/MS-Windows versions of make behave as if prefix is defined to be the root of the DJGPP installation tree). So, /lib, /usr/lib and $libdir (from the configure script) get compiled in as part of the search path. However many distros use lib64 and thus the search path should be /lib64 and /usr/lib64 ($libdir is confirgurable, so I don't that that matters much). But from what I can tell there is no way, short of patching, to remove /lib and /usr/lib from that search path (causes problems, say building a 64-bit app with a 32-bit version available, unlike gcc, make wouldn't just skip over it because it is the wrong arch). And more importantly there is no way to add multiple directories to this path, thus you can't put /lib64, /usr/lib64 and /usr/local/lib64 in the search path (or even /usr/local/lib if make was installed into /usr [unless you explictly set $libdir to /usr/local/lib, which goes against what the configure script says that directory is used for]). Make should not use the --libdir config argument to set this path (it goes against what the config docs say '--libdir=DIR object code libraries [EPREFIX/lib]'). A better solution might be if the configure script offered a method to set the path outright (such as --standard-path=/lib64:/usr/lib64:/usr/local/lib64 ) and this could then default to something reasonable, possibly including the common lib64 variant when when it exists on an x86_64 build. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?30914> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make