This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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]

Re: [Patch, AArch64, ILP32] 2/5 Parametrize elfnn-aarch64.c and add basic support in ld and gas


On Fri, Jun 21, 2013 at 11:02 AM, Yufeng Zhang <Yufeng.Zhang@arm.com> wrote:
> Hi,
>
> This patch makes basic parametrization in bfd/elfnn-aarch64.c and adds basic
> support for ILP32 in ld and gas.
>
> OK for the trunk?
>
> Thanks,
> Yufeng
>
>
> bfd/
>
>         * Makefile.am (BFD64_BACKENDS): Add elf32-aarch64.lo.
>         (BUILD_CFILES): Add elf32-aarch64.c.
>         (elf32-aarch64.c): New rule for generating from elfnn-aarch64.c.
>         * Makefile.in: Re-generated.
>         * archures.c (bfd_mach_aarch64_ilp32): New define.
>         * bfd-in.h (bfd_elf32_aarch64_init_maps): New declaration.
>         (bfd_elf32_aarch64_set_options): Ditto.
>         (elf32_aarch64_setup_section_lists): Ditto.
>         (elf32_aarch64_next_input_section): Ditto.
>         (elf32_aarch64_size_stubs): Ditto.
>         (elf32_aarch64_build_stubs): Ditto.
>         * bfd-in2.h: Re-generated.
>         * config.bfd (aarch64-*-elf): Add bfd_elf32_littleaarch64_vec
>         and bfd_elf32_bigaarch64_vec.
>         (aarch64-*-linux*): Likewise.
>         (aarch64_be-*-elf): Likewise.
>         (aarch64_be-*-linux*): Likewise.
>         * configure.in (bfd_elf32_bigaarch64_vec)
>         (bfd_elf32_littleaarch64_vec): New.
>         * configure: Re-generated.
>         * cpu-aarch64.c (compatible): Don't allow mixing ilp32 objects with
>         lp64 ones.
>         (bfd_aarch64_arch_ilp32): New.
>         (bfd_aarch64_arch): Link to bfd_aarch64_arch_ilp32.
>         * elfnn-aarch64.c (ARCH_SIZE): New define.
>         (AARCH64_R, AARCH64_R_STR, LOG_FILE_ALIGN): New defines.
>         (GOT_ENTRY_SIZE): Re-define as (ARCH_SIZE / 8).
>         (elf64_aarch64_*): Rename to elfNN_aarch64_*.
>         (ELF64_R_*): Rename to ELFNN_R_*.
>         Plus other parametrization.
>         * targets.c (bfd_elf32_bigaarch64_vec, bfd_elf32_littleaarch64_vec):
>         New declarations.
>         (_bfd_target_vector): Add bfd_elf32_bigaarch64_vec and
>         bfd_elf32_littleaarch64_vec.
>
> gas/
>         * config/tc-aarch64.c (ilp32_p): New static variable.
>         (elf64_aarch64_target_format): Return the target according to the
>         value of 'ilp32_p'.
>         (md_begin): Determine 'mach' according to the value of 'ilp32_p'.
>         (aarch64_opts): Add support for options '-milp32' and '-mlp64'.
>         (aarch64_dwarf2_addr_size): New function.
>         * config/tc-aarch64.h (aarch64_dwarf2_addr_size): New declaration.
>         (DWARF2_ADDR_SIZE): New define.
>
> ld/
>
>         * Makefile.am (ALL_64_EMULATION_SOURCES): Add eaarch64elf32.c.
>         (eaarch64elf32.c): New dependency and rule.
>         * Makefile.in: Re-generated.
>         * configure.tgt (aarch64-*-elf): Add aarch64elf32.
>         (aarch64_be-*-elf, aarch64_be-*-linux*, aarch64-*-linux*): Likewise.
>         * emulparams/aarch64elf32.sh: New file.

Is there a reason why you don't have a big-endian ilp32 linker target here?

Thanks,
Andrew Pinski


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