This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add sparc64 tls and nptl support


On Wed, Apr 13, 2005 at 03:36:55PM -0700, David S. Miller wrote:
> If the kernel version is not defined at all (and thus it gets
> set to zero, this is what happens with a default configure so
> it should work) the NPTL build breaks because NPTL  (from, f.e.
> libc/nptl/sysdeps/pthread/sigprocmask.c) explicitly
> includes sigprocmask.c et al. directly from
> libc/sysdeps/unix/sysv/linux/*.c instead of the
> libc/sysdeps/unix/sysv/linux/$(ARCH)/*.c variants.

If arch_minimum_kernel != 2.0.10, then __LINUX_KERNEL_VERSION is never 0,
always at least that minimum kernel version:
if test -n "$minimum_kernel"; then
...
else
  if test $arch_minimum_kernel != '2.0.10'; then
    minimum_kernel=$arch_minimum_kernel
  fi
fi

On ia64, arch_minimum_kernel is not 2.0.10, therefore
__LINUX_KERNEL_VERSION will never be 0 and I was arguing that
on sparc64 we should do similarly.  I think with broken
getcontext that will mess up the thread pointer glibc works really
badly, but if you think 2.4.21 is too new for minimum version,
2.4.0 or something similar certainly should be used.  sparc32
obviously can stay at 2.0.10.

> > I'm getting warnings about dl-machine.h though, so IMHO we need
> > something like following patch on top of your patch (although the patch
> > looks really big, it mostly is just moving ~ 250 lines around).
> 
> Did the build succeed with this change?

Yes.  I got some failures:
make[2]: *** [/usr/src/libc/obj/nptl/tst-align2.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-cancel17.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-exit2.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-exit3.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-locale2.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-getpid1.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-cancelx4.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-cancelx5.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-cancelx16.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-cancelx17.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-cancelx18.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-cancelx20.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-cancelx21.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-cleanupx1.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-cleanupx3.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-cleanupx4.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-oncex3.out] Error 1
make[2]: *** [/usr/src/libc/obj/nptl/tst-oncex4.out] Error 1

but I guess you were mentioning you saw some as well.

> It warns because the guarding ifdefs around the two different
> possible elf_machine_type_class defines changes the two times
> rtld.c ends up including dl-machine.h

Yeah, I know.

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]