Hello,

David Michael, on Sun 02 Oct 2016 12:18:50 -0700, wrote:
> On Sun, Oct 2, 2016 at 10:53 AM, Samuel Thibault
> <samuel.thiba...@gnu.org> wrote:
> > David Michael, on Sun 02 Oct 2016 10:22:12 -0700, wrote:
> >> Commit a87bf9a8eab3af79798131b60c1f7f92f995df8c breaks static linking
> >> (namely ext2fs.static) from missing pthread_setcancelstate.
> >
> > Ah? I don't understand how: this commit only makes libpthread use its
> > own internal __pthread_setcancelstate symbol. A pthread_setcancelstate
> > alias is still defined from pthread/pt-setcancelstate.c, how is it that
> > you don't get it?
> 
> The following is the actual error when using that commit.  It looks
> like pthread_setcancelstate is defined in libpthread2.a, and the
> linking command includes -lpthread, which includes -lpthread2.
> Changing error.c and pthread-functions.h doesn't seem correct since
> there are many other instances of that throughout glibc.

Actually it *is* correct :)
When an application uses error(), it still shouldn't get the
pthread_setcancelstate symbol, and thus error.c should be using
__pthread_setcancelstate, to avoid pulling pthread_setcancelstate.

That being said, glibc 2.22 didn't fix that yet, that'll be for glibc
2.23 and later, better not try to backport this which might pose other
troubles.

> /usr/i686-pc-gnu/sys-root/lib/libcrt.a(error.o): In function `__error':
> (.text+0x26f): undefined reference to `pthread_setcancelstate'

So I'm surprised by this. Is -lpthread properly *after* libcrt.a?

> >> The panic update patches produce -Wformat-security warnings--errors
> >> with Fedora's CFLAGS.  Use a literal "%s" instead of a variable as the
> >> format string.
> >
> > Could you be more precise?  A quick check didn't let me see where it was
> > a problem.
> 
> This will make it build:

Thanks!

Samuel

Reply via email to