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]

[GOLD][PATCH] Set ARM ABI information in ELF file header.


Hi,

    This patch adds code to set proper flags in the processor-specific
flags in the ELF file header.  Previously we always set e_flags to 0
on all target.  This patch add methods processor_specific_flags and
set_processor_specific_flags in Target so that Output_file_header can
get the flags.   For targets that merge processor-specific flags from
input objects,  we also track whether the flags have been set at least
once.  Currently only the ARM target sets the flags correctly.

2009-10-26  Doug Kwan  <dougkwan@google.com>

elfcpp/ChangeLog:

        * arm.h (EF_ARM_RELEXEC, EF_ARM_HASENTRY, EF_ARM_INTERWORK,
        EF_ARM_APCS_26, EF_ARM_APCS_FLOAT, EF_ARM_PIC, EF_ARM_ALIGN8,
        EF_ARM_NEW_ABI, EF_ARM_OLD_ABI, EF_ARM_SOFT_FLOAT, EF_ARM_VFP_FLOAT,
        EF_ARM_MAVERICK_FLOAT, EF_ARM_EABIMASK, EF_ARM_BE8, EF_ARM_LE8,
        EF_ARM_EABI_UNKNOWN, EF_ARM_EABI_VER1, EF_ARM_EABI_VER2,
        EF_ARM_EABI_VER3, EF_ARM_EABI_VER4, EF_ARM_EABI_VER5): New enums
        for processor-specific flags in ELF file header.
        (arm_eabi_version): New inline function.

gold/ChangeLog:

        * arm.cc (Target_arm::do_adjust_elf_header): New method declaration.
        (Target_arm::are_eabi_versions_compatible): Same.
        (Target_arm::do_make_elf_object): New overloaded method declaration
        and definitions.
        (Target_arm::are_eabi_versions_compatible,
        Target_arm::merge_processor_specific_flags,
        Target_arm::do_adjust_elf_header, Target_arm::do_make_elf_object):
        New method definitions.
        * output.cc (Output_file_header::do_sized_write): Set e_flags using
        values from target.
        * target.h (Target::processor_specific_flags,
        Target::are_processor_specific_flags_set): New method definitions.
        (Target::Target): Initialize processor_specific_flags_ and
        are_processor_specific_flags_set_.
        (set_processor_specific_flags): New method definition.
        (processor_specific_flags_, are_processor_specific_flags_set_):
        New data member declarations.

-Doug

Attachment: patch.txt
Description: Text document


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