On 08/08/2015 20:29, Guillermo wrote:
Your distribution has libc.so in /usr/lib/x86_64-linux-gnu; that's not /lib, not /usr/lib, and probably not $prefix/lib either, for whatever --prefix you specified to the configure script. So libc.so is not found, and because there is no rule in the makefile for building it, make fails. Saying '/opt/make/make VPATH=/usr/lib/x86_64-linux-gnu' would probably make the example work.
Yes, that's it. Thanks for analyzing it! I was really too sleepy last night. :)
I do not like the skarnet.org package build system's use of vpath magic instead of relying on the compiler's library search algorithm, and I will confess I have occasionally patched it to remove the vpath stuff.
I'm using this to be able to specify -lfoobar in dependencies, which works with both static and shared libraries, and both internal and external libraries. Not using vpath would result in not checking external libraries (so, fo instance, failing to rebuild if libskarnet.a changes) and having to specify a different set of dependencies for linking against static or shared libraries. It's unfortunate that -lfoobar gets rewritten by make in the recipe's command line too; I would have liked to keep it verbatim and use the compiler's library search algorithm, but I find it a minor inconvenience relative to the comfort of using -l in dependencies. If you have suggestions to improve this without exploding the size of package/deps.mak, which is already huge, I'll gladly take them.
[1] https://bugs.gentoo.org/show_bug.cgi?id=541092 That's the only real bug I believe the skarnet.org build system has so far, i.e. make's prerequisite search algorithm getting confused if libraries with the same name as the ones about to be installed are already present in the target directories. But that report also presents a simple and clever (but ugly) workaround that doesn't involve patching the build system.
Can you please translate that bug and/or give a concrete example ? I can't speak Gentooese, so I don't understand either the bug-report or the patch. ^^' -- Laurent
