From 55786da2bf93d65fb63444a25bf68e8e73a1f5ed Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Thu, 21 Jan 2010 11:40:28 +0000 Subject: [PATCH] 2010-01-21 Andreas Krebbel * readelf.c (get_machine_flags): Handle EF_S390_HIGH_GPRS. 2010-01-21 Andreas Krebbel * s390.h (EF_S390_HIGH_GPRS): Added macro definition. 2010-01-21 Andreas Krebbel * config/tc-s390.c (s390_elf_final_processing): New function. * config/tc-s390.h (elf_tc_final_processing): New macro definition. (s390_elf_final_processing): Added prototype. 2010-01-21 Andreas Krebbel * elf32-s390.c (elf32_s390_merge_private_bfd_data): New function. (bfd_elf32_bfd_merge_private_bfd_data): New macro definition. --- bfd/ChangeLog | 5 +++++ bfd/elf32-s390.c | 9 +++++++++ binutils/ChangeLog | 4 ++++ binutils/readelf.c | 4 ++++ gas/ChangeLog | 7 +++++++ gas/config/tc-s390.c | 7 +++++++ gas/config/tc-s390.h | 4 ++++ include/ChangeLog | 4 ++++ include/elf/s390.h | 4 ++++ 9 files changed, 48 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 75574a7fc59..470610ee8da 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2010-01-21 Andreas Krebbel + + * elf32-s390.c (elf32_s390_merge_private_bfd_data): New function. + (bfd_elf32_bfd_merge_private_bfd_data): New macro definition. + 2010-01-19 Cary Coutant * dwarf2.c (read_attribute_value): Add DW_FORM_ref_sig8. diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c index 094a8dc38dc..41178d68331 100644 --- a/bfd/elf32-s390.c +++ b/bfd/elf32-s390.c @@ -3483,6 +3483,13 @@ elf_s390_plt_sym_val (bfd_vma i, const asection *plt, return plt->vma + PLT_FIRST_ENTRY_SIZE + i * PLT_ENTRY_SIZE; } +static bfd_boolean +elf32_s390_merge_private_bfd_data (bfd *ibfd, bfd *obfd) +{ + elf_elfheader (obfd)->e_flags |= elf_elfheader (ibfd)->e_flags; + return TRUE; +} + #define TARGET_BIG_SYM bfd_elf32_s390_vec #define TARGET_BIG_NAME "elf32-s390" @@ -3506,6 +3513,8 @@ elf_s390_plt_sym_val (bfd_vma i, const asection *plt, #define bfd_elf32_bfd_reloc_type_lookup elf_s390_reloc_type_lookup #define bfd_elf32_bfd_reloc_name_lookup elf_s390_reloc_name_lookup +#define bfd_elf32_bfd_merge_private_bfd_data elf32_s390_merge_private_bfd_data + #define elf_backend_adjust_dynamic_symbol elf_s390_adjust_dynamic_symbol #define elf_backend_check_relocs elf_s390_check_relocs #define elf_backend_copy_indirect_symbol elf_s390_copy_indirect_symbol diff --git a/binutils/ChangeLog b/binutils/ChangeLog index c980f858cb7..52645fef379 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,7 @@ +2010-01-21 Andreas Krebbel + + * readelf.c (get_machine_flags): Handle EF_S390_HIGH_GPRS. + 2010-01-19 Ian Lance Taylor * objcopy.c (copy_main): Rewrite OPTION_ADD_SECTION code to work diff --git a/binutils/readelf.c b/binutils/readelf.c index 8c9edce232e..b9de73a116a 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -2508,6 +2508,10 @@ get_machine_flags (unsigned e_flags, unsigned e_machine) strcat (buf, ", 64-bit doubles"); if (e_flags & E_FLAG_RX_DSP) strcat (buf, ", dsp"); + + case EM_S390: + if (e_flags & EF_S390_HIGH_GPRS) + strcat (buf, ", highgprs"); } } diff --git a/gas/ChangeLog b/gas/ChangeLog index a1195e8087a..ea20cf61163 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2010-01-21 Andreas Krebbel + + * config/tc-s390.c (s390_elf_final_processing): New function. + * config/tc-s390.h (elf_tc_final_processing): New macro definition. + (s390_elf_final_processing): Added prototype. + + 2010-01-20 Nick Clifton PR 11109 diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c index b0c453a5c24..70a1adcdb48 100644 --- a/gas/config/tc-s390.c +++ b/gas/config/tc-s390.c @@ -2265,3 +2265,10 @@ tc_s390_regname_to_dw2regnum (char *regname) regnum = 33; return regnum; } + +void +s390_elf_final_processing (void) +{ + if (s390_arch_size == 32 && (current_mode_mask & (1 << S390_OPCODE_ZARCH))) + elf_elfheader (stdoutput)->e_flags |= EF_S390_HIGH_GPRS; +} diff --git a/gas/config/tc-s390.h b/gas/config/tc-s390.h index f8fe581b2e3..f896e44775f 100644 --- a/gas/config/tc-s390.h +++ b/gas/config/tc-s390.h @@ -95,3 +95,7 @@ extern int s390_cie_data_alignment; #define DWARF2_LINE_MIN_INSN_LENGTH 1 #define DWARF2_DEFAULT_RETURN_COLUMN 14 #define DWARF2_CIE_DATA_ALIGNMENT s390_cie_data_alignment + +extern void s390_elf_final_processing (void); + +#define elf_tc_final_processing s390_elf_final_processing diff --git a/include/ChangeLog b/include/ChangeLog index db4665407f4..18d8e1000c4 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2010-01-21 Andreas Krebbel + + * s390.h (EF_S390_HIGH_GPRS): Added macro definition. + 2010-01-13 Joel Brobecker Add new DW_AT_use_GNAT_descriptive_type CU attribute. diff --git a/include/elf/s390.h b/include/elf/s390.h index c62b110166a..17c4abfe1f5 100644 --- a/include/elf/s390.h +++ b/include/elf/s390.h @@ -33,6 +33,10 @@ #include "elf/reloc-macros.h" +/* Processor specific flags for the ELF header e_flags field. */ + +#define EF_S390_HIGH_GPRS 0x00000001 + /* Relocation types. */ START_RELOC_NUMBERS (elf_s390_reloc_type) -- 2.30.2