summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergio Prado <sergio.prado@e-labworks.com>2018-10-18 22:37:21 (GMT)
committerPeter Korsgaard <peter@korsgaard.com>2018-11-07 21:09:38 (GMT)
commit49dd099650c21950c8bf957eee3d67b1b20fdcbe (patch)
treeafb3885c8aa6ffd32aeff6a66a7e9084b540485f
parent7cd1baf25be8688e829897430e256d3ec243be54 (diff)
downloadbuildroot-49dd099650c21950c8bf957eee3d67b1b20fdcbe.tar.gz
buildroot-49dd099650c21950c8bf957eee3d67b1b20fdcbe.tar.bz2
traceroute: fix 'no rule to make target -lm' error
Fix the following build error: make[3]: *** No rule to make target '-lm', needed by 'traceroute'. Fixes: http://autobuild.buildroot.org/results/dde63672e1de1d4ba036331ab127ccc8ff044444 http://autobuild.buildroot.org/results/4efb67e6a29c3dd784676d30a1051f9f0c2a6c80 http://autobuild.buildroot.org/results/7ac23a3959aec22297695899c0f76dbbc4e114d3 And many more... As explained by Arnout, this happens when host-make is built (E.G. when glibc is built on a machine with an old make version) because the traceroute Makefiles have a target with a dependency on -lm, and make automatically will look in make's $prefix/lib directory for libm.so / libm.a to satisfy this dependency. From the make info pages: 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). Our host-make is configured with prefix=$(HOST_DIR), and $(HOST_DIR)/lib does not contain libm.so / libm.a, causing make to error out. Work around it by pointing VPATH to $(STAGING_DIR)/usr/lib, so make will find the (target) libm.so / libm.a. [Peter: extend description based on Arnouts investigation] Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-rw-r--r--package/traceroute/traceroute.mk2
1 files changed, 1 insertions, 1 deletions
diff --git a/package/traceroute/traceroute.mk b/package/traceroute/traceroute.mk
index 1921974..a02982a 100644
--- a/package/traceroute/traceroute.mk
+++ b/package/traceroute/traceroute.mk
@@ -11,7 +11,7 @@ TRACEROUTE_LICENSE = GPL-2.0+, LGPL-2.1+
TRACEROUTE_LICENSE_FILES = COPYING COPYING.LIB
define TRACEROUTE_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
+ $(TARGET_MAKE_ENV) VPATH=$(STAGING_DIR)/usr/lib $(MAKE) $(TARGET_CONFIGURE_OPTS) \
CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" -C $(@D)
endef