X-Git-Url: http://git.pld-linux.org/?p=packages%2Felfutils.git;a=blobdiff_plain;f=elfutils-alpha.patch;h=175e47dbaa32da002be3c5c47e089c1f31f465b9;hp=edb939fa1cb9a7fb3377eff9e8b9ea41f3d9bc53;hb=340f60161d8e834a60a85d3ddabe078d3046813f;hpb=3532d28938ca08cdc8e053131bfd2c7384a1f5d8 diff --git a/elfutils-alpha.patch b/elfutils-alpha.patch index edb939f..175e47d 100644 --- a/elfutils-alpha.patch +++ b/elfutils-alpha.patch @@ -1,74 +1,17 @@ -2006-04-16 Jakub Bogusz +2007-03-16 Jakub Bogusz - * src/elflint.c (check_sections): Support arch-specific section flags. - * libelf/elf32_getshdr.c: Handle unaligned section header with same - endianess properly. - * backends/alpha_init.c: Add register_info hook. + * backends/alpha_init.c: Add register_info and machine_section_flag_check hooks. * backends/alpha_regs.c: New file. + * backends/alpha_symbol.c: (alpha_machine_section_flag_check) New function. * backends/Makefile.am: Add alpha_regs.c. ---- elfutils-0.116/src/elflint.c.orig 2005-11-26 10:28:00.000000000 +0100 -+++ elfutils-0.116/src/elflint.c 2005-11-26 14:01:18.000000000 +0100 -@@ -2744,9 +2744,30 @@ - cnt, section_name (ebl, cnt), - (int) shdr->sh_type); - --#define ALL_SH_FLAGS (SHF_WRITE | SHF_ALLOC | SHF_EXECINSTR | SHF_MERGE \ -+#define GALL_SH_FLAGS (SHF_WRITE | SHF_ALLOC | SHF_EXECINSTR | SHF_MERGE \ - | SHF_STRINGS | SHF_INFO_LINK | SHF_LINK_ORDER \ - | SHF_OS_NONCONFORMING | SHF_GROUP | SHF_TLS) -+ uint64_t ALL_SH_FLAGS = GALL_SH_FLAGS; /* generic */ -+ switch (ehdr->e_machine) { -+ case EM_MIPS: -+ ALL_SH_FLAGS |= SHF_MIPS_GPREL | SHF_MIPS_MERGE | SHF_MIPS_ADDR | -+ SHF_MIPS_STRINGS | SHF_MIPS_NOSTRIP | SHF_MIPS_LOCAL | -+ SHF_MIPS_NAMES | SHF_MIPS_NODUPE; -+ break; -+ case EM_PARISC: -+ ALL_SH_FLAGS |= SHF_PARISC_SHORT | SHF_PARISC_HUGE | SHF_PARISC_SBP; -+ break; -+ case EM_ALPHA: -+ ALL_SH_FLAGS |= SHF_ALPHA_GPREL; -+ break; -+ case EM_ARM: -+ ALL_SH_FLAGS |= SHF_ARM_ENTRYSECT | SHF_ARM_COMDEF; -+ break; -+ case EM_IA_64: -+ ALL_SH_FLAGS |= SHF_IA_64_SHORT | SHF_IA_64_NORECOV; -+ break; -+ } -+ - if (shdr->sh_flags & ~ALL_SH_FLAGS) - ERROR (gettext ("section [%2zu] '%s' contains unknown flag(s)" - " %#" PRIx64 "\n"), ---- elfutils-0.119/libelf/elf32_getshdr.c.orig 2006-02-05 18:17:07.948304250 +0100 -+++ elfutils-0.119/libelf/elf32_getshdr.c 2006-02-05 18:26:52.836857500 +0100 -@@ -107,7 +107,10 @@ - } - - /* Now copy the data and at the same time convert the byte -- order. */ -+ order, if needed. */ -+ if (ehdr->e_ident[EI_DATA] == MY_ELFDATA) -+ memcpy (shdr, ((char*) elf->map_address + elf->start_offset + ehdr->e_shoff), size); -+ else { - if (ALLOW_UNALIGNED - || (((uintptr_t) elf->map_address + elf->start_offset - + ehdr->e_shoff) -@@ -136,6 +139,7 @@ - CONVERT_TO (shdr[cnt].sh_addralign, notcvt[cnt].sh_addralign); - CONVERT_TO (shdr[cnt].sh_entsize, notcvt[cnt].sh_entsize); - } -+ } - } - else if (likely (elf->fildes != -1)) - { ---- elfutils-0.124/backends/alpha_init.c.orig 2006-07-05 06:09:28.000000000 +0200 -+++ elfutils-0.124/backends/alpha_init.c 2006-07-22 10:34:36.417909750 +0200 -@@ -54,6 +54,7 @@ +--- elfutils-0.126/backends/alpha_init.c.orig 2006-07-05 06:09:28.000000000 +0200 ++++ elfutils-0.126/backends/alpha_init.c 2006-07-22 10:34:36.417909750 +0200 +@@ -54,6 +54,8 @@ HOOK (eh, dynamic_tag_check); HOOK (eh, reloc_simple_type); HOOK (eh, return_value_location); ++ HOOK (eh, machine_section_flag_check); + HOOK (eh, register_info); eh->sysvhash_entrysize = sizeof (Elf64_Xword); @@ -167,6 +110,22 @@ + + return namelen; +} +--- elfutils-0.126/backends/alpha_symbol.c.orig 2006-04-13 17:04:56.000000000 +0200 ++++ elfutils-0.126/backends/alpha_symbol.c 2007-03-16 20:11:35.167246761 +0100 +@@ -55,6 +55,13 @@ + return tag == DT_ALPHA_PLTRO; + } + ++/* Check whether SHF_MASKPROC flags are valid. */ ++bool ++alpha_machine_section_flag_check (GElf_Xword sh_flags) ++{ ++ return (sh_flags &~ SHF_ALPHA_GPREL) == 0; ++} ++ + /* Check for the simple reloc types. */ + Elf_Type + alpha_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type) --- elfutils-0.120/backends/Makefile.am.orig 2006-04-16 13:15:56.425192000 +0200 +++ elfutils-0.120/backends/Makefile.am 2006-04-16 13:28:26.928096250 +0200 @@ -90,7 +90,7 @@