This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
[PATCH] PPC Linuxthreads --without-tls build breaks
- From: Steve Munroe <sjmunroe at us dot ibm dot com>
- To: libc-alpha at sources dot redhat dot com, pawar at us dot ibm dot com
- Date: Wed, 24 Mar 2004 15:53:53 -0600
- Subject: [PATCH] PPC Linuxthreads --without-tls build breaks
- Organization: IBM LTC
- Reply-to: sjmunroe at vnet dot ibm dot com
Rafael Ávila de Espíndola writes:
> linuxthreads/sysdeps/powerpc/tcb-offsets.sym need a tcbhead_t
> definition if USE_TLS is not defined. But
> linuxthreads/sysdeps/powerpc/tls.h only defines tcbhead_t if
> HAVE_TLS_SUPPORT is defined or if __powerpc64__ is not defined.
>
> This causes the build to fail:
The "&& !defined __powerpc64__" clause in tls.h is no long necessary for
powerpc64. The following patch removes it. I have tested 32-/64-bit
powerpc and --with-tls/--without_tls with this patch and all four build
and run make check successfully.
2004-03-11 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/tls.h: Remove __powerpc64__ conditional.
diff -urN libc23-cvstip-20040324/linuxthreads/sysdeps/powerpc/tls.h libc23/linuxthreads/sysdeps/powerpc/tls.h
--- libc23-cvstip-20040324/linuxthreads/sysdeps/powerpc/tls.h 2003-12-17 17:02:32.000000000 -0600
+++ libc23/linuxthreads/sysdeps/powerpc/tls.h 2004-03-24 15:44:22.000000000 -0600
@@ -130,14 +130,12 @@
# endif /* __ASSEMBLER__ */
-#elif !defined __ASSEMBLER__ && !defined __powerpc64__
+#elif !defined __ASSEMBLER__
-/* This overlaps the start of the pthread_descr. On PPC32, system
- calls and such use this to find the multiple_threads flag and need
+/* This overlaps the start of the pthread_descr. System calls
+ and such use this to find the multiple_threads flag and need
to use the same offset relative to the thread register in both
- single-threaded and multi-threaded code. On PPC64, the global
- variable is always used, so single-threaded code without TLS
- never needs to initialize the thread register at all. */
+ single-threaded and multi-threaded code. */
typedef struct
{
void *tcb; /* Never used. */