URL:
<http://savannah.gnu.org/bugs/?39560>
Summary: directory search order for link libraries
Project: make
Submitted by: macin
Submitted on: Wed 24 Jul 2013 09:22:07 AM GMT
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: 3.82
Operating System: None
Fixed Release: None
Triage Status: None
_______________________________________________________
Details:
Consider the following Makefile:
# --- >8 ---
vpath lib%.a /tmp/boosttmp/
vpath lib%.so /tmp/boosttmp/
a: -lm -lboost_system
@echo target a: $^
b: -lboost_system -lm
@echo target b: $^
# --- >8 ---
Note that /tmp/boosttmp/ as well as some system library path must contain
libboost_system.so to reproduce the bug. From my understanding make will
search the vpath first and then the system directories. Now consider the
following executions of make:
$ make a
target a: /usr/lib64/libm.so /usr/lib64/libboost_system.so
$ make b
target b: /tmp/boosttmp/libboost_system.a /usr/lib64/libm.so
$ make a b
target a: /usr/lib64/libm.so /usr/lib64/libboost_system.so
target b: /usr/lib64/libboost_system.so /usr/lib64/libm.so
$ make b a
target b: /tmp/boosttmp/libboost_system.a /usr/lib64/libm.so
target a: /usr/lib64/libm.so /tmp/boosttmp/libboost_system.a
"make a" and "make a b" find the libboost_system libray in the system
directories but "make b" and "make b a" in the vpath directory. Note also that
the expansion of target a and b is inconsistent in the different executions.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?39560>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-make