This is the mail archive of the libc-alpha@sourceware.org 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]

[PATCH] Fix build on ppc64


Commit 42675c6ff0e95346de8a2cbc066e14e0d6a856e4 added include of
<dl-irel.h> from dl-runtime.c, which was already including
<dl-machine.h>. This breaks ppc64 build as both files declare
Elf64_FuncDesc:

| In file included from dl-runtime.c:30:
| ../sysdeps/powerpc/powerpc64/dl-irel.h:34: error: conflicting types for 'Elf64_FuncDesc'
| ../sysdeps/powerpc/powerpc64/dl-machine.h:43: note: previous declaration of 'Elf64_FuncDesc' was here

The patch below fixes the problem.

2011-07-04  Aurelien Jarno  <aurelien@aurel32.net>

	* sysdeps/powerpc/dl-tls.h: Add _PPC_DL_TLS_H inclusion
	protection macro.
	* sysdeps/powerpc/powerpc64/dl-irel.h(Elf64_FuncDesc): include
	<ldsodefs.h> and <dl-machine.h>.
	* sysdeps/powerpc/powerpc64/dl-irel.h(Elf64_FuncDesc): remove.

diff --git a/sysdeps/powerpc/dl-tls.h b/sysdeps/powerpc/dl-tls.h
index 9ab81f9..5fd1b23 100644
--- a/sysdeps/powerpc/dl-tls.h
+++ b/sysdeps/powerpc/dl-tls.h
@@ -17,6 +17,8 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#ifndef _PPC_DL_TLS_H
+# define _PPC_DL_TLS_H 1
 
 /* Type used for the representation of TLS information in the TOC.  */
 typedef struct
@@ -50,3 +52,5 @@ extern void *__tls_get_addr (tls_index *ti);
 
 /* Value used for dtv entries for which the allocation is delayed.  */
 #define TLS_DTV_UNALLOCATED	((void *) -1l)
+
+#endif /* dl-tls.h */
diff --git a/sysdeps/powerpc/powerpc64/dl-irel.h b/sysdeps/powerpc/powerpc64/dl-irel.h
index 3c2668f..56e1cc5 100644
--- a/sysdeps/powerpc/powerpc64/dl-irel.h
+++ b/sysdeps/powerpc/powerpc64/dl-irel.h
@@ -23,16 +23,11 @@
 
 #include <stdio.h>
 #include <unistd.h>
+#include <ldsodefs.h>
+#include <dl-machine.h>
 
 #define ELF_MACHINE_IRELA	1
 
-typedef struct
-{
-  Elf64_Addr fd_func;
-  Elf64_Addr fd_toc;
-  Elf64_Addr fd_aux;
-} Elf64_FuncDesc;
-
 static inline Elf64_Addr
 __attribute ((always_inline))
 elf_ifunc_invoke (Elf64_Addr addr)

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net


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