[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [ARM/FDPIC v2 2/4] linux-user: ARM-FDPIC: Identify ARM
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [ARM/FDPIC v2 2/4] linux-user: ARM-FDPIC: Identify ARM FDPIC binaries |
Date: |
Mon, 23 Apr 2018 13:17:08 +0100 |
On 23 April 2018 at 08:51, Christophe Lyon <address@hidden> wrote:
> Define an ARM-specific version of elf_is_fdpic:
> FDPIC ELF objects are identified with e_ident[EI_OSABI] ==
> ELFOSABI_ARM_FDPIC.
>
> Co-Authored-By: Mickaël Guêné <address@hidden>
> Signed-off-by: Christophe Lyon <address@hidden>
>
> diff --git a/include/elf.h b/include/elf.h
> index c0dc9bb..934dbbd 100644
> --- a/include/elf.h
> +++ b/include/elf.h
> @@ -1483,6 +1483,7 @@ typedef struct elf64_shdr {
> #define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */
> #define ELFOSABI_MODESTO 11 /* Novell Modesto. */
> #define ELFOSABI_OPENBSD 12 /* OpenBSD. */
> +#define ELFOSABI_ARM_FDPIC 65 /* ARM FDPIC */
> #define ELFOSABI_ARM 97 /* ARM */
> #define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application
> */
>
> diff --git a/linux-user/elfload.c b/linux-user/elfload.c
> index bbe93b0..76d7718 100644
> --- a/linux-user/elfload.c
> +++ b/linux-user/elfload.c
> @@ -1681,11 +1681,18 @@ static void zero_bss(abi_ulong elf_bss, abi_ulong
> last_bss, int prot)
> }
> }
>
> +#ifdef TARGET_ARM
> +static int elf_is_fdpic(struct elfhdr *exec)
> +{
> + return exec->e_ident[EI_OSABI] == ELFOSABI_ARM_FDPIC;
> +}
> +#else
> /* Default implementation, always false. */
> static int elf_is_fdpic(struct elfhdr *exec)
> {
> return 0;
> }
> +#endif
I have a strong dislike for per-target ifdef ladders. Can we instead
put the target's implementation of elf_is_fdpic() into
linux-user/$ARCH/target_elf.h
and also have that header do
#define TARGET_HAS_ELF_FDPIC
and then in the generic code we can protect the default elf_is_fdpic()
with #ifndef TARGET_HAS_ELF_FDPIC.
thanks
-- PMM
[Qemu-devel] [ARM/FDPIC v2 4/4] linux-user: ARM-FDPIC: Add support for signals for FDPIC targets, Christophe Lyon, 2018/04/23