On Mon, Jun 30, 2014 at 02:56:37PM +0800, Tony Wu wrote:
> On Sat, Jun 28, 2014 at 3:52 AM, Thomas Petazzoni
> <thomas.petazz...@free-electrons.com> wrote:
> > Hello all,
> >
> > Any feedback on the problem reported by Vicente? We're having this
> > problem regularly in Buildroot with various symbols when linking
> > statically. It would be good to have some input on how to fix the
> > problem.
> >
> > Thanks,
> >
> > Thomas
> >
> 
> Attached please find the workaround we currently use. We simply mark
> non-pthread __lll_lock_wait_private weak, so it wont interfere with
> the one in pthread under static link mode.

Well ok, not entirely happy but for static linking i do not immediately
see a better way to handle that.
Can you please use weak_alias (or suitable construct, see
include/cancel.h for explanations) and fix all arches, not just arm?

Same for the one below..
> 
> Hope this helps.
> 
> Tony
> 
> > On Tue, 3 Jun 2014 11:38:46 +0100, Vicente Olivert Riera wrote:
> >> I'm trying to compile cdrkit for static and I'm getting compilation
> >> errors due to multiple definitions of setreuid and __lll_lock_wait_private.
> >> It works fine in a shared built.
> >>
> >> Here are the relevant lines of the build log:
> >>
> >> --------------------------------------
> >> Linking C executable devdump
> >> /home/test/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib/libc.a(setreuid.os):
> >> In function `setreuid':
> >> setreuid.c:(.text+0x0): multiple definition of `setreuid'
> >> /home/test/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib/libpthread.a(pthread_setreuid.os):pthread_setreuid.c:(.text+0x0):
> >> first defined here

.. sounds like lt_strong_alias / weak alias is missing, can you
take a closer look and propose a patch?

thanks,
> >> collect2: error: ld returned 1 exit status
> >> --------------------------------------
> >>
> >> and
> >>
> >> --------------------------------------
> >> Linking C executable genisoimage
> >> /home/test/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib/libpthread.a(lowlevellock.os):
> >> In function `__lll_lock_wait_private':
> >> lowlevellock.c:(.text+0x0): multiple definition of 
> >> `__lll_lock_wait_private'
> >> /home/test/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib/libc.a(libc-lowlevellock.os):libc-lowlevellock.c:(.text+0x0):
> >> first defined here
> >> collect2: error: ld returned 1 exit status
> >> --------------------------------------
> >>
> >> Full build log: http://www.pastebin.ca/2792067
> >>
> >> Distribution: BuildRoot
> >> Platform: MIPS32 LittleEndian
> >>
> >
> >
> >
> > --
> > Thomas Petazzoni, CTO, Free Electrons
> > Embedded Linux, Kernel and Android engineering
> > http://free-electrons.com
> > _______________________________________________
> > uClibc mailing list
> > uClibc@uclibc.org
> > http://lists.busybox.net/mailman/listinfo/uclibc


> _______________________________________________
> uClibc mailing list
> uClibc@uclibc.org
> http://lists.busybox.net/mailman/listinfo/uclibc

_______________________________________________
uClibc mailing list
uClibc@uclibc.org
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to