Go to file
Sergio Prado 49dd099650 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>
2018-11-07 22:09:38 +01:00
arch arch: drop BR2_GCC_TARGET_CPU_REVISION option 2018-10-01 14:52:32 +02:00
board configs/amarula_a64_relic: add WiFi support 2018-11-01 14:21:32 +01:00
boot uboot: bump to version 2018.09 2018-11-03 15:54:19 +01:00
configs configs/amarula_a64_relic: add WiFi support 2018-11-01 14:21:32 +01:00
docs docs/manual: add external.desc to list of files needed for BR2_EXTERNAL 2018-11-02 21:30:13 +01:00
fs fs/f2fs/Config.in: remove consecutive empty lines 2018-11-03 15:49:57 +01:00
linux linux: enable CONFIG_AUDIT if the audit package is selected 2018-11-03 22:22:05 +01:00
package traceroute: fix 'no rule to make target -lm' error 2018-11-07 22:09:38 +01:00
support support/scripts/mkmakefile: make wrapper silent by default 2018-11-02 21:23:02 +01:00
system system: update Config.in comment about systemd dependencies 2018-09-15 00:05:48 +02:00
toolchain toolchain: move glibc nsswitch.conf handling to a post-target hook 2018-10-21 01:50:35 +02:00
utils utils/scanpypi: use archive file name to specify the extraction folder 2018-11-02 21:35:08 +01:00
.defconfig arch: remove support for sh64 2016-09-08 22:15:15 +02:00
.flake8 .flake8: ignore utils/diffconfig 2018-03-13 22:37:54 +01:00
.gitignore
.gitlab-ci.yml configs/amarula_a64_relic: new defconfig 2018-11-01 14:21:32 +01:00
.gitlab-ci.yml.in .gitlab-ci.yml: do runtime tests only on explicit trigger 2018-10-21 23:34:18 +02:00
CHANGES Update for 2018.02.7 2018-10-25 21:07:23 +02:00
Config.in Config.in: security hardening: disable FORTIFY_SOURCE for gcc < 6 2018-11-06 08:54:25 +01:00
Config.in.legacy boot/xloader: remove package 2018-10-26 16:59:05 +02:00
COPYING COPYING: add exception about patch licensing 2016-02-26 19:50:13 +01:00
DEVELOPERS DEVELOPERS: add entry for fs/f2fs/ 2018-11-03 15:49:12 +01:00
Makefile core: support host gcc of the future 2018-10-23 11:43:35 +02:00
Makefile.legacy Remove BR2_DEPRECATED 2016-10-15 23:14:45 +02:00
README

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on Freenode IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches