Fix Wundef warning for ELF_MACHINE_NO_RELA
Commit Message
Hi,
This patch defines ELF_MACHINE_NO_RELA on all architectures. Tested
only on x86_64 to verify that the sources before and after are
identical except for two instructions that pass the current line
number in dl-machine.h to assert_fail.
OK to commit?
Siddhesh
* elf/dl-runtime.c: Check for value of ELF_MACHINE_NO_RELA
instead of whether it is defined.
* sysdeps/aarch64/dl-machine.h: Define ELF_MACHINE_NO_RELA.
* sysdeps/hppa/dl-machine.h: Likewise.
* sysdeps/ia64/dl-machine.h: Likewise.
* sysdeps/m68k/dl-machine.h: Likewise.
* sysdeps/microblaze/dl-machine.h: Likewise.
* sysdeps/mips/dl-machine.: Likewise.
* sysdeps/powerpc/powerpc32/dl-machine.h: Likewise.
* sysdeps/powerpc/powerpc64/dl-machine.h: Likewise.
* sysdeps/s390/s390-32/dl-machine.h: Likewise.
* sysdeps/s390/s390-64/dl-machine.h: Likewise.
* sysdeps/sh/dl-machine.h: Likewise.
* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
* sysdeps/tile/dl-machine.h: Likewise.
* sysdeps/x86_64/dl-machine.h: Likewise.
Comments
On 26 June 2014 10:47, Siddhesh Poyarekar <siddhesh@redhat.com> wrote:
> Hi,
>
> This patch defines ELF_MACHINE_NO_RELA on all architectures. Tested
> only on x86_64 to verify that the sources before and after are
> identical except for two instructions that pass the current line
> number in dl-machine.h to assert_fail.
>
> OK to commit?
>
> Siddhesh
>
> * elf/dl-runtime.c: Check for value of ELF_MACHINE_NO_RELA
> instead of whether it is defined.
> * sysdeps/aarch64/dl-machine.h: Define ELF_MACHINE_NO_RELA.
> * sysdeps/hppa/dl-machine.h: Likewise.
> * sysdeps/ia64/dl-machine.h: Likewise.
> * sysdeps/m68k/dl-machine.h: Likewise.
> * sysdeps/microblaze/dl-machine.h: Likewise.
> * sysdeps/mips/dl-machine.: Likewise.
> * sysdeps/powerpc/powerpc32/dl-machine.h: Likewise.
> * sysdeps/powerpc/powerpc64/dl-machine.h: Likewise.
> * sysdeps/s390/s390-32/dl-machine.h: Likewise.
> * sysdeps/s390/s390-64/dl-machine.h: Likewise.
> * sysdeps/sh/dl-machine.h: Likewise.
> * sysdeps/sparc/sparc32/dl-machine.h: Likewise.
> * sysdeps/sparc/sparc64/dl-machine.h: Likewise.
> * sysdeps/tile/dl-machine.h: Likewise.
> * sysdeps/x86_64/dl-machine.h: Likewise.
This looks ok to me. It's verbose but as architectures can support REL
and RELA I don't see an obvious other option.
> diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c
> index 773cb42..11eba4a 100644
> --- a/elf/dl-runtime.c
> +++ b/elf/dl-runtime.c
> @@ -29,7 +29,7 @@
> #include <dl-irel.h>
>
>
> -#if (!defined ELF_MACHINE_NO_RELA && !defined ELF_MACHINE_PLT_REL) \
> +#if (!ELF_MACHINE_NO_RELA && !defined ELF_MACHINE_PLT_REL) \
> || ELF_MACHINE_NO_REL
> # define PLTREL ElfW(Rela)
> #else
> diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h
> index 997c860..6615b8f 100644
> --- a/sysdeps/aarch64/dl-machine.h
> +++ b/sysdeps/aarch64/dl-machine.h
> @@ -198,6 +198,7 @@ _dl_start_user: \n\
>
> /* AArch64 uses RELA not REL */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> static inline ElfW(Addr)
> elf_machine_fixup_plt (struct link_map *map, lookup_t t,
> diff --git a/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h
> index ba21f07..9c7471e 100644
> --- a/sysdeps/hppa/dl-machine.h
> +++ b/sysdeps/hppa/dl-machine.h
> @@ -488,6 +488,7 @@ asm ( \
>
> /* We only use RELA. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> /* Return the address of the entry point. */
> #define ELF_MACHINE_START_ADDRESS(map, start) \
> diff --git a/sysdeps/ia64/dl-machine.h b/sysdeps/ia64/dl-machine.h
> index 853e6fd..7d3be04 100644
> --- a/sysdeps/ia64/dl-machine.h
> +++ b/sysdeps/ia64/dl-machine.h
> @@ -320,6 +320,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
>
> /* According to the IA-64 specific documentation, Rela is always used. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> /* Return the address of the entry point. */
> #define ELF_MACHINE_START_ADDRESS(map, start) \
> diff --git a/sysdeps/m68k/dl-machine.h b/sysdeps/m68k/dl-machine.h
> index 3ec9862..4e7c7db 100644
> --- a/sysdeps/m68k/dl-machine.h
> +++ b/sysdeps/m68k/dl-machine.h
> @@ -178,6 +178,7 @@ _dl_start_user:\n\
>
> /* The m68k never uses Elf32_Rel relocations. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> static inline Elf32_Addr
> elf_machine_fixup_plt (struct link_map *map, lookup_t t,
> diff --git a/sysdeps/microblaze/dl-machine.h b/sysdeps/microblaze/dl-machine.h
> index 848e822..d230a1b 100644
> --- a/sysdeps/microblaze/dl-machine.h
> +++ b/sysdeps/microblaze/dl-machine.h
> @@ -170,6 +170,7 @@ _dl_start_user:\n\
>
> /* The microblaze never uses Elf32_Rel relocations. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> static inline Elf32_Addr
> elf_machine_fixup_plt (struct link_map *map, lookup_t t,
> diff --git a/sysdeps/mips/dl-machine.h b/sysdeps/mips/dl-machine.h
> index b5bf4ad..eef0384 100644
> --- a/sysdeps/mips/dl-machine.h
> +++ b/sysdeps/mips/dl-machine.h
> @@ -60,6 +60,8 @@
> | (((type) == R_MIPS_COPY) * ELF_RTYPE_CLASS_COPY))
>
> #define ELF_MACHINE_PLT_REL 1
> +#define ELF_MACHINE_NO_REL 0
> +#define ELF_MACHINE_NO_RELA 0
>
> /* Translate a processor specific dynamic tag to the index
> in l_info array. */
> diff --git a/sysdeps/powerpc/powerpc32/dl-machine.h b/sysdeps/powerpc/powerpc32/dl-machine.h
> index 23b610f..42fd374 100644
> --- a/sysdeps/powerpc/powerpc32/dl-machine.h
> +++ b/sysdeps/powerpc/powerpc32/dl-machine.h
> @@ -148,6 +148,7 @@ __elf_preferred_address(struct link_map *loader, size_t maplength,
>
> /* The PowerPC never uses REL relocations. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> /* Set up the loaded object described by MAP so its unrelocated PLT
> entries will jump to the on-demand fixup code in dl-runtime.c.
> diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h
> index bc99183..735a549 100644
> --- a/sysdeps/powerpc/powerpc64/dl-machine.h
> +++ b/sysdeps/powerpc/powerpc64/dl-machine.h
> @@ -294,6 +294,7 @@ BODY_PREFIX "_dl_start_user:\n" \
>
> /* The PowerPC never uses REL relocations. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> /* Stuff for the PLT. */
> #if _CALL_ELF != 2
> diff --git a/sysdeps/s390/s390-32/dl-machine.h b/sysdeps/s390/s390-32/dl-machine.h
> index 4fd2745..527233b 100644
> --- a/sysdeps/s390/s390-32/dl-machine.h
> +++ b/sysdeps/s390/s390-32/dl-machine.h
> @@ -226,6 +226,7 @@ _dl_start_user:\n\
>
> /* The S390 never uses Elf32_Rel relocations. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> /* We define an initialization functions. This is called very early in
> _dl_sysdep_start. */
> diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h
> index 2f37169..e48d355 100644
> --- a/sysdeps/s390/s390-64/dl-machine.h
> +++ b/sysdeps/s390/s390-64/dl-machine.h
> @@ -205,6 +205,7 @@ _dl_start_user:\n\
>
> /* The 64 bit S/390 never uses Elf64_Rel relocations. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> /* We define an initialization functions. This is called very early in
> _dl_sysdep_start. */
> diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h
> index 4f3db89..81a417d 100644
> --- a/sysdeps/sh/dl-machine.h
> +++ b/sysdeps/sh/dl-machine.h
> @@ -251,6 +251,7 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
>
> /* SH never uses Elf32_Rel relocations. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> #ifdef RESOLVE_MAP
>
> diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h
> index e7d31b4..4b79cd6 100644
> --- a/sysdeps/sparc/sparc32/dl-machine.h
> +++ b/sysdeps/sparc/sparc32/dl-machine.h
> @@ -197,6 +197,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
>
> /* The SPARC never uses Elf32_Rel relocations. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> /* Undo the sub %sp, 6*4, %sp; add %sp, 22*4, %o0 below to get at the
> value we want in __libc_stack_end. */
> diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
> index ef4ad4c..d6d263e 100644
> --- a/sysdeps/sparc/sparc64/dl-machine.h
> +++ b/sysdeps/sparc/sparc64/dl-machine.h
> @@ -119,6 +119,7 @@ elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc,
>
> /* The SPARC never uses Elf64_Rel relocations. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> /* Set up the loaded object described by L so its unrelocated PLT
> entries will jump to the on-demand fixup code in dl-runtime.c. */
> diff --git a/sysdeps/tile/dl-machine.h b/sysdeps/tile/dl-machine.h
> index d686a65..8be6758 100644
> --- a/sysdeps/tile/dl-machine.h
> +++ b/sysdeps/tile/dl-machine.h
> @@ -223,6 +223,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
>
> /* TILE never uses Elf32_Rel relocations. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> /* We define an initialization functions. This is called very early in
> _dl_sysdep_start. */
> diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
> index 8df04a9..f9ee1f7 100644
> --- a/sysdeps/x86_64/dl-machine.h
> +++ b/sysdeps/x86_64/dl-machine.h
> @@ -189,6 +189,7 @@ _dl_start_user:\n\
>
> /* The x86-64 never uses Elf64_Rel/Elf32_Rel relocations. */
> #define ELF_MACHINE_NO_REL 1
> +#define ELF_MACHINE_NO_RELA 0
>
> /* We define an initialization function. This is called very early in
> _dl_sysdep_start. */
@@ -29,7 +29,7 @@
#include <dl-irel.h>
-#if (!defined ELF_MACHINE_NO_RELA && !defined ELF_MACHINE_PLT_REL) \
+#if (!ELF_MACHINE_NO_RELA && !defined ELF_MACHINE_PLT_REL) \
|| ELF_MACHINE_NO_REL
# define PLTREL ElfW(Rela)
#else
@@ -198,6 +198,7 @@ _dl_start_user: \n\
/* AArch64 uses RELA not REL */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
static inline ElfW(Addr)
elf_machine_fixup_plt (struct link_map *map, lookup_t t,
@@ -488,6 +488,7 @@ asm ( \
/* We only use RELA. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
/* Return the address of the entry point. */
#define ELF_MACHINE_START_ADDRESS(map, start) \
@@ -320,6 +320,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
/* According to the IA-64 specific documentation, Rela is always used. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
/* Return the address of the entry point. */
#define ELF_MACHINE_START_ADDRESS(map, start) \
@@ -178,6 +178,7 @@ _dl_start_user:\n\
/* The m68k never uses Elf32_Rel relocations. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
static inline Elf32_Addr
elf_machine_fixup_plt (struct link_map *map, lookup_t t,
@@ -170,6 +170,7 @@ _dl_start_user:\n\
/* The microblaze never uses Elf32_Rel relocations. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
static inline Elf32_Addr
elf_machine_fixup_plt (struct link_map *map, lookup_t t,
@@ -60,6 +60,8 @@
| (((type) == R_MIPS_COPY) * ELF_RTYPE_CLASS_COPY))
#define ELF_MACHINE_PLT_REL 1
+#define ELF_MACHINE_NO_REL 0
+#define ELF_MACHINE_NO_RELA 0
/* Translate a processor specific dynamic tag to the index
in l_info array. */
@@ -148,6 +148,7 @@ __elf_preferred_address(struct link_map *loader, size_t maplength,
/* The PowerPC never uses REL relocations. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
/* Set up the loaded object described by MAP so its unrelocated PLT
entries will jump to the on-demand fixup code in dl-runtime.c.
@@ -294,6 +294,7 @@ BODY_PREFIX "_dl_start_user:\n" \
/* The PowerPC never uses REL relocations. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
/* Stuff for the PLT. */
#if _CALL_ELF != 2
@@ -226,6 +226,7 @@ _dl_start_user:\n\
/* The S390 never uses Elf32_Rel relocations. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
/* We define an initialization functions. This is called very early in
_dl_sysdep_start. */
@@ -205,6 +205,7 @@ _dl_start_user:\n\
/* The 64 bit S/390 never uses Elf64_Rel relocations. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
/* We define an initialization functions. This is called very early in
_dl_sysdep_start. */
@@ -251,6 +251,7 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
/* SH never uses Elf32_Rel relocations. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
#ifdef RESOLVE_MAP
@@ -197,6 +197,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
/* The SPARC never uses Elf32_Rel relocations. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
/* Undo the sub %sp, 6*4, %sp; add %sp, 22*4, %o0 below to get at the
value we want in __libc_stack_end. */
@@ -119,6 +119,7 @@ elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc,
/* The SPARC never uses Elf64_Rel relocations. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
/* Set up the loaded object described by L so its unrelocated PLT
entries will jump to the on-demand fixup code in dl-runtime.c. */
@@ -223,6 +223,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
/* TILE never uses Elf32_Rel relocations. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
/* We define an initialization functions. This is called very early in
_dl_sysdep_start. */
@@ -189,6 +189,7 @@ _dl_start_user:\n\
/* The x86-64 never uses Elf64_Rel/Elf32_Rel relocations. */
#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
/* We define an initialization function. This is called very early in
_dl_sysdep_start. */