bug-make
[Top][All Lists]
Advanced

[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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]