From: Waldemar Brodkorb <wbx@openadk.org>
To: buildroot@busybox.net
Subject: [Buildroot] [autobuild.buildroot.net] Your build results for 2016-09-05
Date: Sat, 5 Nov 2016 18:17:35 +0100 [thread overview]
Message-ID: <20161105171735.GL27313@waldemar-brodkorb.de> (raw)
In-Reply-To: <6f4cecac-3402-039a-e98b-3a8b385a8647@gmail.com>
Hi,
Romain Naour wrote,
> Hi Waldemar,
>
> Le 13/09/2016 ? 08:56, Romain Naour a ?crit :
> > Hi Waldemar,
> >
> > Le 11 sept. 2016 15:34, "Waldemar Brodkorb" <wbx@openadk.org
> > <mailto:wbx@openadk.org>> a ?crit :
> >>
> >> Hi ROmain,
> >> Romain Naour wrote,
> >>
> >> > Hi Waldemar,
> >> >
> >> > I'm not sure you get this email, I had a "Delivery Status Notification
> > (Failure)"
> >>
> >> I have the mail.
> >>
> >> > Hi Waldemar,
> >> >
> >> > Le 10/09/2016 ? 15:56, Waldemar Brodkorb a ?crit :
> >> > > Hi Romain,
> >> > > Romain Naour wrote,
> >> > >
> >> > >> Hi Thomas, Waldemar,
> >> > >>
> >> > >> Le 06/09/2016 ? 08:30, Thomas Petazzoni a ?crit :
> >> > >>> Hello,
> >> > >>>
> >> > >>> This is the list of Buildroot build failures that occured on
> >> > >>> 2016-09-05, and for which you are a registered architecture developer
> >> > >>> or package developer. Please help us improving the quality of
> >> > >>> Buildroot by investigating those build failures and sending patches to
> >> > >>> fix them. Thanks!
> >> > >>>
> >> > >>> Build failures related to your packages:
> >> > >>>
> >> > >>> bfin | xenomai-2.6.4 |
> > http://autobuild.buildroot.net/results/fcae0611ac87204ab68d6828276b635d1a31a178
> >> > >>>
> >> > >>
> >> > >> I think it's an issue between uClibc-ng and Xenomai on Blackfin due to
> >> > >> pthread_atfork(), shm_open() and shm_unlink() local definition in Xenomai.
> >> > >>
> >> > >> Error:
> >> > >> bind.c:(.text+0x20): multiple definition of `pthread_atfork'
> >> > >> .libs/libxenomai_la-assert_context.o:assert_context.c:(.text+0x54): first
> >> > >> defined here
> >> > >>
> >> > >> sem_heap.c:(.text+0xc): multiple definition of `shm_open'
> >> > >> .libs/libxenomai_la-bind.o:bind.c:(.text+0x2c): first defined here
> >> > >>
> >> > >> sem_heap.c:(.text+0x24): multiple definition of `shm_unlink'
> >> > >> .libs/libxenomai_la-bind.o:bind.c:(.text+0x44): first defined here
> >> > >>
> >> > >> It's because the Xenomai definition use declare these function as
> > "inline" and
> >> > >> not uClibc-ng
> >> > >>
> >> > >> Xenomai [1]:
> >> > >> /* uClibc does not provide pthread_atfork() for this arch; provide it
> >> > >> here. Note: let the compiler decides whether it wants to actually
> >> > >> inline this routine, i.e. do not force always_inline. */
> >> > >> inline __attribute__((weak)) int pthread_atfork(void (*prepare)(void),
> >> > >> void (*parent)(void),
> >> > >> void (*child)(void))
> >> > >>
> >> > >> uClibc-ng:
> >> > >> extern int pthread_atfork (void (*__prepare) (void),
> >> > >> void (*__parent) (void),
> >> > >> void (*__child) (void)) __THROW;
> >> > >>
> >> > >> I guess those "inline" should be removed?
> >> > >> Weldemar what do you think?
> >> > >
> >> > > I am in the middle of reworking libpthread/librt support in
> >> > > uClibc-ng and found some problems in the way pthread_atfork is
> >> > > declared.
> >> > > I think the problems exist because of some backward compat support
> >> > > in Gnu libc, see here for a nice summary:
> >> > > http://ryanarn.blogspot.de/2011/07/curious-case-of-pthreadatfork-on.html
> >> >
> >> > Is the same issue for shm_open() and shm_unlink() ?
> >>
> >> Unsure, what is the thingie about shm_open().
> >> I was just curious seeing pthread_atfork() problems while hacking on
> >> the function :)
> >
> > Ok, some investigation are needed but it seems the same issue... remove inline
> > to fix the build...
> >
> >>
> >> > >
> >> > > I think uClibc-ng should simply provide a usable pthread_atfork.
> >> > > pthread_atfork is internally used by librt right now.
> >> >
> >> > Actually, it seems a bit weird to speak about pthread_atfork() for Blackfin
> >> > which doesn't have a MMU so fork() is not available.
> >> > I think that is why Xenomai try to define it on Blackfin, it doesn't expect
> >> > pthread_atfork() to be provided by the libc.
> >> >
> >> > >
> >> > > I hope I get some patch out for review in the next days.
> >> >
> >> > ok great :)
> >> >
> >> > >
> >> > > I think uClibc-ng for NPTL and Linuxthreads should provide a usable
> >> > > pthread_atfork(). So Xenomai does not need to provide their own.
> >> >
> >> > So even on Blackfin ?
> >>
> >> You are right, I should stop smoking bad things ;)
> >> What should we do for noMMU targets? Provide a dummy or just do not
> >> export any pthread_atfork() function?
> >
> > I'm far to be an expert on no-MMU platform but yes, it seems we not need to
> > export pthread_atfork function.
> >
> > I'm not sure if we also need to do the same for shm_* functions...
>
> I'm looking at this failure again and I'm wondering how Xenomai can even work on
> bflin with the pthread_atfork() from uClibc-ng.
>
> The uClibc-ng functions pthread_atfork() return an error (-1) when
> __ARCH_USE_MMU__ is not defined. So all Xenomai skins will fail during their
> initialization.
>
> /* We can't support pthread_atfork without MMU, since we don't have
> fork(), and we can't offer the correct semantics for vfork(). */
> int pthread_atfork(void (*prepare)(void),
> void (*parent)(void),
> void (*child)(void))
> {
> /* ENOMEM is probably pushing it a little bit.
> Take it as `no *virtual* memory' :-) */
> errno = ENOMEM;
> return -1;
> }
>
> Xenomai pthread_atfork() silently return success.
>
> /* uClibc does not provide pthread_atfork() for this arch; provide it
> here. Note: let the compiler decides whether it wants to actually
> inline this routine, i.e. do not force always_inline. */
> inline __attribute__((weak)) int pthread_atfork(void (*prepare)(void),
> void (*parent)(void),
> void (*child)(void))
> {
> return 0;
> }
>
> I would say that uClibc-ng shouldn't export a dummy pthread_atfork() on noMMU
> platform.
>
> Concerning shm_* functions, it seems that the weak attribute is discarded for
> inline functions. See handle_weak_attribute() in gcc code, especially the
> no_add_attrs argument.
>
> That's why we have the following warning and then a symbol redefinition while
> linking:
>
> warning: inline function 'shm_open' declared weak [-Wattributes]
> [...]
> .libs/libxenomai_la-bind.o: In function `pthread_atfork':
> bind.c:(.text+0x20): multiple definition of `pthread_atfork'
> .libs/libxenomai_la-assert_context.o:assert_context.c:(.text+0x54): first
> defined here
>
> For the next Buildroot release it would be safer to disable Xenomai userspace
> package for noMMU build.
>
> Thoughts?
Yes. Could you send patches to fix the two issues to the uClibc-ng
mailinglist? That would be cool.
best regards
Waldemar
next prev parent reply other threads:[~2016-11-05 17:17 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20160906063034.C474D1028BB@stock.ovh.net>
2016-09-10 13:27 ` [Buildroot] [autobuild.buildroot.net] Your build results for 2016-09-05 Romain Naour
[not found] ` <20160910135635.GH6777@waldemar-brodkorb.de>
2016-09-10 15:45 ` Romain Naour
[not found] ` <9a18dc1c-25bd-0925-1a78-dc7a5612d465@gmail.com>
[not found] ` <20160911133437.GI6777@waldemar-brodkorb.de>
2016-09-13 6:56 ` Romain Naour
2016-11-05 17:12 ` Romain Naour
2016-11-05 17:17 ` Waldemar Brodkorb [this message]
2016-11-05 18:57 ` Romain Naour
[not found] <20160906063035.18941102741@stock.ovh.net>
2016-09-07 9:13 ` Chris Packham
2016-09-07 9:21 ` Yann E. MORIN
2016-09-07 9:44 ` Thomas Petazzoni
2016-09-07 9:28 ` Thomas Petazzoni
2016-09-08 8:07 ` Chris Packham
2016-09-08 9:43 ` Peter Korsgaard
2016-09-08 10:07 ` Chris Packham
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161105171735.GL27313@waldemar-brodkorb.de \
--to=wbx@openadk.org \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.