[PATCH] Fix build on ppc64
Aurelien Jarno
aurelien@aurel32.net
Mon Jul 4 15:14:00 GMT 2011
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
More information about the Libc-alpha
mailing list