[Felipe Contreras <al593181@mail.mty.itesm.mx>] bug in useldt.h

Greg Schafer gschafer@zip.com.au
Sat Dec 8 00:54:00 GMT 2001


Hello

Andreas Jaeger <aj@suse.de> writes:

> I can't reproduce this with current CVS sources.  Can anybody else
> reproduce this or has anybody an idea what might be the problem?

I have managed to figure out the sequence of events that can
reproduce this problem.

In summary, the bug only occurs if you install glibc on a
completely blank system ie: glibc is not installed yet. If you
install glibc when an existing glibc is already in place, the
bug does not surface and everything works as expected. 

This snippet of code from "linuxthreads/sysdeps/i386/i686/pt-machine.h"

	#if __ASSUME_LDT_WORKS > 0
	#include "../useldt.h"
	#endif

(which is only activated by passing --enable-kernel=2.3.99 and greater
to ./configure) seems to get mis-compiled in the first instance.

I suspect it is something to do with ./configure finding different
results depending on whether you have a glibc installed or not.

Example diffs of glibc-build dir:

from "glibc-build/config.h"

	-/* #undef      HAVE_ASM_SET_DIRECTIVE */
	+#define        HAVE_ASM_SET_DIRECTIVE 1

and this from "glibc-build/config.make"

	-have-z-nodelete = no
	-have-z-nodlopen = no
	-have-z-initfirst = no
	+have-z-nodelete = yes
	+have-z-nodlopen = yes
	+have-z-initfirst = yes
 
	-sizeof-long-double = 0
	+sizeof-long-double = 12

I'm yet to determine exactly which one of these differnces causes the problem.
I suppose some sed hacks could be used to work around the problem (for us folk
who want to install from scratch).

Any thoughts?

Regards
Greg



More information about the Libc-alpha mailing list