[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #30914] Standard library search path not configurable
From: |
Ed Martin |
Subject: |
[bug #30914] Standard library search path not configurable |
Date: |
Tue, 31 Aug 2010 03:36:38 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:2.0b4) Gecko/20100829 Firefox/4.0b4 |
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/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug #30914] Standard library search path not configurable,
Ed Martin <=