svn commit: trunk/uClibc/include

Peter S. Mazinger ps.m at gmx.net
Mon Nov 28 14:43:27 UTC 2005


On Mon, 28 Nov 2005, Mike Frysinger wrote:

> On Sun, Nov 27, 2005 at 11:50:05PM +0100, Peter S. Mazinger wrote:
> > On Sun, 27 Nov 2005, Mike Frysinger wrote:
> > 
> > > On Sat, Nov 26, 2005 at 05:35:53PM -0800, psm at uclibc.org wrote:
> > > > Log:
> > > > headers patched w/ sed -i 's:extern int errno:#include <errno.h>' linux/unistd.h fail here
> > > > 
> > > > --- trunk/uClibc/include/ssp-internal.h	2005-11-27 01:20:58 UTC (rev 12542)
> > > > +++ trunk/uClibc/include/ssp-internal.h	2005-11-27 01:35:52 UTC (rev 12543)
> > > > @@ -21,6 +21,10 @@
> > > >  #include <signal.h>
> > > >  #include <linux/unistd.h>
> > > >  
> > > > +#ifndef errno
> > > > +extern int errno;
> > > > +#endif
> > > > +
> > > 
> > > uhh, what ?  doing 'extern int errno' will never work with TLS
> > 
> > can't tell you what TLS will do, but the gentoo unistd.h patch to 
> > linux-headers (2.4.26-r1) killed the uClibc build.
> 
> no it doesnt
> 
> > Probably it will fail everywhere, when kernel syscalls are used.
> 
> this statement is just plain wrong as well
> 
> the reason __uClibc_main.os fails to build with SSP support is because
> at the top of the file is this:
> #define _ERRNO_H
> which prevents errno from ever being defined by the errno headers

so you had the problem as well ?

> 
> i dont know why ssp-internal.h is forced to be included by dl-osinfo.h,
> but the issue can be fixed in __uClibc_main.c by moving the include of
> ssp-internal.h from dl-osinfo.h to __uClibc_main.c and then adding this
> before including the file:
> #define errno *(__errno_location())
> -mike

let's forget for now about how and why ssp-internal.h is used, now that I 
moved the guard creation to ldso (and there I used _dl_x and 
sys/syscall.h), I have to make __libc_read/open/close and some others 
hidden, after that I will remove entirely ssp-internal.h and the use of 
kernel syscalls and switch to the internal hidden versions of functions.

thanks though tracking the cause, I wondered why adding #include <errno.h> 
to ssp-internal.h didn't worked.

Peter

-- 
Peter S. Mazinger <ps dot m at gmx dot net>           ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08  BB6E C389 975E A5F0 59F2




More information about the uClibc mailing list