On Wed, Jun 13, 2012 at 12:58 AM, Bernhard Reutner-Fischer
<rep.dot....@gmail.com> wrote:
> On Tue, Jun 12, 2012 at 04:52:21PM +0100, Carmelo AMOROSO wrote:
>>On 07/06/2012 19.32, Kevin Cernekee wrote:
>>> Move the AS_NEEDED insertion into libc/Makefile.in, and add a case to
>>> the HARDWIRED_ABSPATH substitution command so libubacktrace is handled
>>> the same way as the other libraries listed in the script.
>>
>>Looks fine to me.
>>
>
> Applied, thanks!

Unfortunately it looks like this could cause some problems when
bootstrapping a new toolchain.  If the libc.so script references
libubacktrace, but libubacktrace.so.0 is not yet installed anywhere,
gcc will throw an error during the final link on the other shared
libraries:

rm -f lib/libdl.so lib/libdl.so.0 lib/libdl-0.9.32.1.so
arm-linux-uclibcgnueabi-gcc -Wl,-EL -shared -Wl,--warn-common
-Wl,--warn-once -Wl,-z,combreloc -Wl,-z,relro -Wl,-z,defs
-Wl,-fini,dl_cleanup  -Wl,-soname=libdl.so.0 -nostdlib -o
lib/libdl-0.9.32.1.so  -Wl,--whole-archive ldso/libdl/libdl_so.a
-Wl,--no-whole-archive ./lib/interp.os -L./lib ./lib/libc.so
./lib/ld-uClibc.so.0
/ssd/test/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.5.3/libgcc.a
/ssd/test/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.5.3/libgcc_eh.a
/ssd/test/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.5.3/../../../../arm-linux-uclibcgnueabi/bin/ld:
cannot find libubacktrace.so.0
collect2: ld returned 1 exit status
make[1]: *** [lib/libdl.so] Error 1


I did not see this earlier because -nostdlib doesn't actually keep gcc
from passing ld "-L" arguments pointing into the sysroot directories.
So it saw my existing libubacktrace.so.0 from the installed sysroot
and did not complain that libubacktrace.so.0 was missing from the
uClibc build tree.

Maybe we will need to revert back to this technique, at least in some form?

-# Add the AS_NEEDED entry for libubacktrace.so
-       if [ -f $(top_builddir)lib/libc.so -a -f
$(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(SHARED_LIBNAME) ] ; then \
-               echo "GROUP ( $(UBACKTRACE_ASNEEDED) )" >>
$(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libc.so; \
-       fi
-endif

I would appreciate any feedback/suggestions.
_______________________________________________
uClibc mailing list
uClibc@uclibc.org
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to