SHA256
1
0
forked from pool/binutils

Accepting request 209295 from devel:gcc

- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.

- Add cross-m68k-binutils

- pie-m68k.patch: Emit DT_DEBUG also for PIE

- Update to 2.23.90 prerelease, remove patches that
  are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
  aarch64-execstack.patch, aarch64-gc-section-support.patch,
  aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
  aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
  binutils-2.22-objalloc.patch,
  binutils-2.23.52.0.1-64-bit-thin-archives.patch,
  s390-machinemode.patch, warning-symbol-sections.patch).

OBS-URL: https://build.opensuse.org/request/show/209295
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/binutils?expand=0&rev=93
This commit is contained in:
Stephan Kulow 2013-12-05 05:48:28 +00:00 committed by Git OBS Bridge
commit fa2df03b9a
57 changed files with 6641 additions and 1762 deletions

View File

@ -1,38 +0,0 @@
Index: binutils-2.23.1/ld/emulparams/aarch64elf.sh
===================================================================
--- binutils-2.23.1.orig/ld/emulparams/aarch64elf.sh
+++ binutils-2.23.1/ld/emulparams/aarch64elf.sh
@@ -33,3 +33,14 @@ ATTRS_SECTIONS='.ARM.attributes 0 : { KE
# This sets the stack to the top of the simulator memory (2^19 bytes).
STACK_ADDR=0x80000
+
+# For Linux modify the default library search path
+# to first include a 64-bit specific directory.
+case "$target" in
+ aarch64*-linux*)
+ case "$EMULATION_NAME" in
+ *) LIBPATH_SUFFIX=64 ;;
+ esac
+ ;;
+esac
+
Index: binutils-2.23.1/ld/emulparams/aarch64linux.sh
===================================================================
--- binutils-2.23.1.orig/ld/emulparams/aarch64linux.sh
+++ binutils-2.23.1/ld/emulparams/aarch64linux.sh
@@ -34,3 +34,14 @@ OTHER_SECTIONS='.note.gnu.arm.ident 0 :
ATTRS_SECTIONS='.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }'
# Ensure each PLT entry is aligned to a cache line.
PLT=".plt ${RELOCATING-0} : ALIGN(16) { *(.plt)${IREL_IN_PLT+ *(.iplt)} }"
+
+# For Linux modify the default library search path
+# to first include a 64-bit specific directory.
+case "$target" in
+ aarch64*-linux*)
+ case "$EMULATION_NAME" in
+ *) LIBPATH_SUFFIX=64 ;;
+ esac
+ ;;
+esac
+

View File

@ -1,337 +0,0 @@
2013-07-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
* elf64-aarch64.c (aarch64_elf_create_got_section): New.
(elf64_aarch64_check_relocs): Use aarch64_elf_create_got_section.
(elf64_aarch64_create_dynamic_sections): Do not define
_GLOBAL_OFFSET_TABLE_; call aarch64_elf_create_got_section.
ld/testsuite/
* ld-aarch64/gc-plt-relocs.d: Adjust expected .got offsets.
* ld-aarch64/tls-desc-ie.d: Likewise.
* ld-aarch64/emit-relocs-311.d: Adjust expected symbol.
* ld-aarch64/tls-relax-all.d: Likewise.
* ld-aarch64/tls-relax-gd-ie.d: Likewise.
* ld-aarch64/tls-relax-gdesc-ie.d: Likewise.
* ld-aarch64/tls-relax-gdesc-ie-2.d: Likewise.
2013-07-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
* ld-aarch64/emit-relocs-309-low.d: Adjust .text address.
* ld-aarch64/emit-relocs-309-up.d: Adjust .got address.
* ld-aarch64/emit-relocs-312.d: Adjust offsets into .got.
* ld-aarch64/tls-relax-all.d: Likewise.
* ld-aarch64/gc-got-relocs.d: Adjust expected .got content.
* ld-aarch64/gc-tls-relocs.d: Likewise.
* ld-aarch64/tls-relax-gd-ie.d: Likewise.
* ld-aarch64/tls-relax-gdesc-ie-2.d: Likewise.
* ld-aarch64/tls-relax-gdesc-ie.d: Likewise.
2013-06-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
* elf64-aarch64.c (elf64_aarch64_check_relocs): Reserve one slot
in sgot.
(elf64_aarch64_finish_dynamic_sections): Place the &_DYNAMIC reference
in sgot[0] rather than sgotplt[0].
Index: binutils-2.23.2/bfd/elf64-aarch64.c
===================================================================
--- binutils-2.23.2.orig/bfd/elf64-aarch64.c
+++ binutils-2.23.2/bfd/elf64-aarch64.c
@@ -5077,6 +5077,70 @@ elf64_aarch64_allocate_local_symbols (bf
return TRUE;
}
+/* Create the .got section to hold the global offset table. */
+
+static bfd_boolean
+aarch64_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
+{
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ flagword flags;
+ asection *s;
+ struct elf_link_hash_entry *h;
+ struct elf_link_hash_table *htab = elf_hash_table (info);
+
+ /* This function may be called more than once. */
+ s = bfd_get_linker_section (abfd, ".got");
+ if (s != NULL)
+ return TRUE;
+
+ flags = bed->dynamic_sec_flags;
+
+ s = bfd_make_section_anyway_with_flags (abfd,
+ (bed->rela_plts_and_copies_p
+ ? ".rela.got" : ".rel.got"),
+ (bed->dynamic_sec_flags
+ | SEC_READONLY));
+ if (s == NULL
+ || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ return FALSE;
+ htab->srelgot = s;
+
+ s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
+ if (s == NULL
+ || !bfd_set_section_alignment (abfd, s, bed->s->log_file_align))
+ return FALSE;
+ htab->sgot = s;
+ htab->sgot->size += GOT_ENTRY_SIZE;
+
+ if (bed->want_got_sym)
+ {
+ /* Define the symbol _GLOBAL_OFFSET_TABLE_ at the start of the .got
+ (or .got.plt) section. We don't do this in the linker script
+ because we don't want to define the symbol if we are not creating
+ a global offset table. */
+ h = _bfd_elf_define_linkage_sym (abfd, info, s,
+ "_GLOBAL_OFFSET_TABLE_");
+ elf_hash_table (info)->hgot = h;
+ if (h == NULL)
+ return FALSE;
+ }
+
+ if (bed->want_got_plt)
+ {
+ s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
+ if (s == NULL
+ || !bfd_set_section_alignment (abfd, s,
+ bed->s->log_file_align))
+ return FALSE;
+ htab->sgotplt = s;
+ }
+
+ /* The first bit of the global offset table is the header. */
+ s->size += bed->got_header_size;
+
+ return TRUE;
+}
+
/* Look through the relocs for a section during the first phase. */
static bfd_boolean
@@ -5315,13 +5379,10 @@ elf64_aarch64_check_relocs (bfd *abfd, s
}
}
- if (htab->root.sgot == NULL)
- {
- if (htab->root.dynobj == NULL)
- htab->root.dynobj = abfd;
- if (!_bfd_elf_create_got_section (htab->root.dynobj, info))
- return FALSE;
- }
+ if (htab->root.dynobj == NULL)
+ htab->root.dynobj = abfd;
+ if (! aarch64_elf_create_got_section (htab->root.dynobj, info))
+ return FALSE;
break;
}
@@ -5908,7 +5969,10 @@ elf64_aarch64_create_dynamic_sections (b
struct bfd_link_info *info)
{
struct elf64_aarch64_link_hash_table *htab;
- struct elf_link_hash_entry *h;
+
+ /* We need to create .got section. */
+ if (!aarch64_elf_create_got_section (dynobj, info))
+ return FALSE;
if (!_bfd_elf_create_dynamic_sections (dynobj, info))
return FALSE;
@@ -5921,16 +5985,6 @@ elf64_aarch64_create_dynamic_sections (b
if (!htab->sdynbss || (!info->shared && !htab->srelbss))
abort ();
- /* Define the symbol _GLOBAL_OFFSET_TABLE_ at the start of the
- dynobj's .got section. We don't do this in the linker script
- because we don't want to define the symbol if we are not creating
- a global offset table. */
- h = _bfd_elf_define_linkage_sym (dynobj, info,
- htab->root.sgot, "_GLOBAL_OFFSET_TABLE_");
- elf_hash_table (info)->hgot = h;
- if (h == NULL)
- return FALSE;
-
return TRUE;
}
@@ -6939,15 +6993,8 @@ elf64_aarch64_finish_dynamic_sections (b
/* Fill in the first three entries in the global offset table. */
if (htab->root.sgotplt->size > 0)
{
- /* Set the first entry in the global offset table to the address of
- the dynamic section. */
- if (sdyn == NULL)
- bfd_put_64 (output_bfd, (bfd_vma) 0,
- htab->root.sgotplt->contents);
- else
- bfd_put_64 (output_bfd,
- sdyn->output_section->vma + sdyn->output_offset,
- htab->root.sgotplt->contents);
+ bfd_put_64 (output_bfd, (bfd_vma) 0, htab->root.sgotplt->contents);
+
/* Write GOT[1] and GOT[2], needed for the dynamic linker. */
bfd_put_64 (output_bfd,
(bfd_vma) 0,
@@ -6957,6 +7004,16 @@ elf64_aarch64_finish_dynamic_sections (b
htab->root.sgotplt->contents + GOT_ENTRY_SIZE * 2);
}
+ if (htab->root.sgot)
+ {
+ if (htab->root.sgot->size > 0)
+ {
+ bfd_vma addr =
+ sdyn ? sdyn->output_section->vma + sdyn->output_offset : 0;
+ bfd_put_64 (output_bfd, addr, htab->root.sgot->contents);
+ }
+ }
+
elf_section_data (htab->root.sgotplt->output_section)->
this_hdr.sh_entsize = GOT_ENTRY_SIZE;
}
Index: binutils-2.23.2/ld/testsuite/ld-aarch64/emit-relocs-311.d
===================================================================
--- binutils-2.23.2.orig/ld/testsuite/ld-aarch64/emit-relocs-311.d
+++ binutils-2.23.2/ld/testsuite/ld-aarch64/emit-relocs-311.d
@@ -10,5 +10,5 @@
+1000c: R_AARCH64_ADR_PREL_PG_HI21 tempy2
+10010: b0ffff91 adrp x17, 1000 <tempy3-0x234>
+10010: R_AARCH64_ADR_PREL_PG_HI21 tempy3
- +10014: 90000083 adrp x3, 20000 <tempy[+]0xf000>
+ +10014: 90000083 adrp x3, 20000 <_GLOBAL_OFFSET_TABLE_>
+10014: R_AARCH64_ADR_GOT_PAGE gempy
Index: binutils-2.23.2/ld/testsuite/ld-aarch64/emit-relocs-312.d
===================================================================
--- binutils-2.23.2.orig/ld/testsuite/ld-aarch64/emit-relocs-312.d
+++ binutils-2.23.2/ld/testsuite/ld-aarch64/emit-relocs-312.d
@@ -10,10 +10,10 @@
+1000c: R_AARCH64_LD_PREL_LO19 tempy2
+10010: 58f89131 ldr x17, 1234 <tempy3>
+10010: R_AARCH64_LD_PREL_LO19 tempy3
- +10014: f9400843 ldr x3, \[x2.*
+ +10014: f9400c43 ldr x3, \[x2.*
+10014: R_AARCH64_LD64_GOT_LO12_NC jempy
- +10018: f9400444 ldr x4, \[x2.*
+ +10018: f9400844 ldr x4, \[x2.*
+10018: R_AARCH64_LD64_GOT_LO12_NC gempy
- +1001c: f9400045 ldr x5, \[x2.*
+ +1001c: f9400445 ldr x5, \[x2.*
+1001c: R_AARCH64_LD64_GOT_LO12_NC lempy
Index: binutils-2.23.2/ld/testsuite/ld-aarch64/tls-desc-ie.d
===================================================================
--- binutils-2.23.2.orig/ld/testsuite/ld-aarch64/tls-desc-ie.d
+++ binutils-2.23.2/ld/testsuite/ld-aarch64/tls-desc-ie.d
@@ -3,18 +3,18 @@
#objdump: -dr
#...
+10000: 90000080 adrp x0, 20000 <_GLOBAL_OFFSET_TABLE_>
- +10004: 91002000 add x0, x0, #0x8
+ +10004: 91004000 add x0, x0, #0x10
+10008: 94000016 bl 10060 <v1\+0x10060>
+1000c: d503201f nop
+10010: 90000080 adrp x0, 20000 <_GLOBAL_OFFSET_TABLE_>
- +10014: f9400000 ldr x0, \[x0\]
+ +10014: f9400400 ldr x0, \[x0,#8\]
+10018: d503201f nop
+1001c: d503201f nop
+10020: d53bd041 mrs x1, tpidr_el0
+10024: 8b000020 add x0, x1, x0
+10028: d53bd042 mrs x2, tpidr_el0
+1002c: 90000080 adrp x0, 20000 <_GLOBAL_OFFSET_TABLE_>
- +10030: f9400000 ldr x0, \[x0\]
+ +10030: f9400400 ldr x0, \[x0,#8\]
+10034: 8b000040 add x0, x2, x0
+10038: b9400000 ldr w0, \[x0\]
+1003c: 0b000020 add w0, w1, w0
@@ -24,13 +24,13 @@ Disassembly of section .plt:
0000000000010040 <.plt>:
+10040: a9bf7bf0 stp x16, x30, \[sp,#-16\]!
+10044: 90000090 adrp x16, 20000 <_GLOBAL_OFFSET_TABLE_>
- +10048: f9401611 ldr x17, \[x16,#40\]
- +1004c: 9100a210 add x16, x16, #0x28
+ +10048: f9401a11 ldr x17, \[x16,#48\]
+ +1004c: 9100c210 add x16, x16, #0x30
+10050: d61f0220 br x17
+10054: d503201f nop
+10058: d503201f nop
+1005c: d503201f nop
+10060: 90000090 adrp x16, 20000 <_GLOBAL_OFFSET_TABLE_>
- +10064: f9401a11 ldr x17, \[x16,#48\]
- +10068: 9100c210 add x16, x16, #0x30
+ +10064: f9401e11 ldr x17, \[x16,#56\]
+ +10068: 9100e210 add x16, x16, #0x38
+1006c: d61f0220 br x17
Index: binutils-2.23.2/ld/testsuite/ld-aarch64/tls-relax-all.d
===================================================================
--- binutils-2.23.2.orig/ld/testsuite/ld-aarch64/tls-relax-all.d
+++ binutils-2.23.2/ld/testsuite/ld-aarch64/tls-relax-all.d
@@ -4,8 +4,8 @@
#...
+10000: a9bf7bfd stp x29, x30, \[sp,#-16\]!
+10004: 910003fd mov x29, sp
- +10008: 90000080 adrp x0, 20000 <ie_var\+0x1fff0>
- +1000c: f9400000 ldr x0, \[x0\]
+ +10008: 90000080 adrp x0, 20000 <_GLOBAL_OFFSET_TABLE_>
+ +1000c: f9400400 ldr x0, \[x0,#8\]
+10010: d503201f nop
+10014: d503201f nop
+10018: d53bd041 mrs x1, tpidr_el0
@@ -19,8 +19,8 @@
+10038: 8b000040 add x0, x2, x0
+1003c: b9400000 ldr w0, \[x0\]
+10040: 0b000021 add w1, w1, w0
- +10044: 90000080 adrp x0, 20000 <ie_var\+0x1fff0>
- +10048: f9400400 ldr x0, \[x0,#8\]
+ +10044: 90000080 adrp x0, 20000 <_GLOBAL_OFFSET_TABLE_>
+ +10048: f9400800 ldr x0, \[x0,#16\]
+1004c: d53bd041 mrs x1, tpidr_el0
+10050: 8b000020 add x0, x1, x0
+10054: b9400000 ldr w0, \[x0\]
Index: binutils-2.23.2/ld/testsuite/ld-aarch64/tls-relax-gd-ie.d
===================================================================
--- binutils-2.23.2.orig/ld/testsuite/ld-aarch64/tls-relax-gd-ie.d
+++ binutils-2.23.2/ld/testsuite/ld-aarch64/tls-relax-gd-ie.d
@@ -2,8 +2,8 @@
#ld: -T relocs.ld -e0
#objdump: -dr
#...
- +10000: 90000080 adrp x0, 20000 <var\+0x20000>
- +10004: f9400000 ldr x0, \[x0\]
+ +10000: 90000080 adrp x0, 20000 <_GLOBAL_OFFSET_TABLE_>
+ +10004: f9400400 ldr x0, \[x0,#8\]
+10008: d53bd041 mrs x1, tpidr_el0
+1000c: 8b000020 add x0, x1, x0
+10010: b9400000 ldr w0, \[x0\]
Index: binutils-2.23.2/ld/testsuite/ld-aarch64/tls-relax-gdesc-ie-2.d
===================================================================
--- binutils-2.23.2.orig/ld/testsuite/ld-aarch64/tls-relax-gdesc-ie-2.d
+++ binutils-2.23.2/ld/testsuite/ld-aarch64/tls-relax-gdesc-ie-2.d
@@ -2,9 +2,9 @@
#ld: -T relocs.ld -e0
#objdump: -dr
#...
- +10000: 90000080 adrp x0, 20000 <var\+0x20000>
+ +10000: 90000080 adrp x0, 20000 <_GLOBAL_OFFSET_TABLE_>
+10004: d503201f nop
- +10008: f9400000 ldr x0, \[x0\]
+ +10008: f9400400 ldr x0, \[x0,#8\]
+1000c: d503201f nop
+10010: d503201f nop
+10014: d503201f nop
Index: binutils-2.23.2/ld/testsuite/ld-aarch64/tls-relax-gdesc-ie.d
===================================================================
--- binutils-2.23.2.orig/ld/testsuite/ld-aarch64/tls-relax-gdesc-ie.d
+++ binutils-2.23.2/ld/testsuite/ld-aarch64/tls-relax-gdesc-ie.d
@@ -2,8 +2,8 @@
#ld: -T relocs.ld -e0
#objdump: -dr
#...
- +10000: 90000080 adrp x0, 20000 <var\+0x20000>
- +10004: f9400000 ldr x0, \[x0\]
+ +10000: 90000080 adrp x0, 20000 <_GLOBAL_OFFSET_TABLE_>
+ +10004: f9400400 ldr x0, \[x0,#8\]
+10008: d503201f nop
+1000c: d503201f nop
+10010: d53bd041 mrs x1, tpidr_el0

View File

@ -1,25 +0,0 @@
From 13cfe5d13f05b3887fb1e1827dd0834f6a109637 Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab@suse.de>
Date: Tue, 14 May 2013 17:12:55 +0200
Subject: [PATCH] Define elf_backend_default_execstack to 0 for aarch64
* elf64-aarch64.c (elf_backend_default_execstack): Define to 0.
---
bfd/elf64-aarch64.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/bfd/elf64-aarch64.c b/bfd/elf64-aarch64.c
index e3cae95..aef472f 100644
--- a/bfd/elf64-aarch64.c
+++ b/bfd/elf64-aarch64.c
@@ -7181,6 +7181,7 @@ const struct elf_size_info elf64_aarch64_size_info =
#define elf_backend_may_use_rela_p 1
#define elf_backend_default_use_rela_p 1
#define elf_backend_got_header_size (GOT_ENTRY_SIZE * 3)
+#define elf_backend_default_execstack 0
#undef elf_backend_obj_attrs_section
#define elf_backend_obj_attrs_section ".ARM.attributes"
--
1.8.2.3

View File

@ -1,166 +0,0 @@
Index: binutils-2.23.1/bfd/elf64-aarch64.c
===================================================================
--- binutils-2.23.1.orig/bfd/elf64-aarch64.c
+++ binutils-2.23.1/bfd/elf64-aarch64.c
@@ -4823,6 +4823,138 @@ elf64_aarch64_gc_sweep_hook (bfd *abfd A
const Elf_Internal_Rela *
relocs ATTRIBUTE_UNUSED)
{
+ struct elf64_aarch64_link_hash_table *htab;
+ Elf_Internal_Shdr *symtab_hdr;
+ struct elf_link_hash_entry **sym_hashes;
+ bfd_signed_vma *local_got_refcounts;
+ const Elf_Internal_Rela *rel, *relend;
+
+ if (info->relocatable)
+ return TRUE;
+
+ htab = elf64_aarch64_hash_table (info);
+
+ if (htab == NULL)
+ return FALSE;
+
+ elf_section_data (sec)->local_dynrel = NULL;
+
+ symtab_hdr = &elf_symtab_hdr (abfd);
+ sym_hashes = elf_sym_hashes (abfd);
+
+ local_got_refcounts = elf_local_got_refcounts (abfd);
+
+ relend = relocs + sec->reloc_count;
+ for (rel = relocs; rel < relend; rel++)
+ {
+ unsigned long r_symndx;
+ unsigned int r_type;
+ struct elf_link_hash_entry *h = NULL;
+
+ r_symndx = ELF64_R_SYM (rel->r_info);
+
+ if (r_symndx >= symtab_hdr->sh_info)
+ {
+ struct elf64_aarch64_link_hash_entry *eh;
+ struct elf_dyn_relocs **pp;
+ struct elf_dyn_relocs *p;
+
+ h = sym_hashes[r_symndx - symtab_hdr->sh_info];
+ while (h->root.type == bfd_link_hash_indirect
+ || h->root.type == bfd_link_hash_warning)
+ h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ eh = (struct elf64_aarch64_link_hash_entry *) h;
+
+ for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
+ {
+ if (p->sec == sec)
+ {
+ /* Everything must go for SEC. */
+ *pp = p->next;
+ break;
+ }
+ }
+ }
+ else
+ {
+ Elf_Internal_Sym *isym;
+
+ /* A local symbol. */
+ isym = bfd_sym_from_r_symndx (&htab->sym_cache,
+ abfd, r_symndx);
+ if (isym == NULL)
+ return FALSE;
+ }
+
+ r_type = ELF64_R_TYPE (rel->r_info);
+ r_type = aarch64_tls_transition (abfd,info, r_type, h ,r_symndx);
+ switch (r_type)
+ {
+ case R_AARCH64_LD64_GOT_LO12_NC:
+ case R_AARCH64_ADR_GOT_PAGE:
+ case R_AARCH64_TLSGD_ADR_PAGE21:
+ case R_AARCH64_TLSGD_ADD_LO12_NC:
+ case R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21:
+ case R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
+ case R_AARCH64_TLSLE_ADD_TPREL_LO12:
+ case R_AARCH64_TLSLE_ADD_TPREL_HI12:
+ case R_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
+ case R_AARCH64_TLSLE_MOVW_TPREL_G2:
+ case R_AARCH64_TLSLE_MOVW_TPREL_G1:
+ case R_AARCH64_TLSLE_MOVW_TPREL_G1_NC:
+ case R_AARCH64_TLSLE_MOVW_TPREL_G0:
+ case R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
+ case R_AARCH64_TLSDESC_ADR_PAGE:
+ case R_AARCH64_TLSDESC_ADD_LO12_NC:
+ case R_AARCH64_TLSDESC_LD64_LO12_NC:
+ if (h != NULL)
+ {
+ if (h->got.refcount > 0)
+ h->got.refcount -= 1;
+ }
+ else if (local_got_refcounts != NULL)
+ {
+ if (local_got_refcounts[r_symndx] > 0)
+ local_got_refcounts[r_symndx] -= 1;
+ }
+ break;
+
+ case R_AARCH64_ADR_PREL_PG_HI21_NC:
+ case R_AARCH64_ADR_PREL_PG_HI21:
+ case R_AARCH64_ADR_PREL_LO21:
+ if (h != NULL && info->executable)
+ {
+ if (h->plt.refcount > 0)
+ h->plt.refcount -= 1;
+ }
+ break;
+
+ case R_AARCH64_CALL26:
+ case R_AARCH64_JUMP26:
+ /* If this is a local symbol then we resolve it
+ directly without creating a PLT entry. */
+ if (h == NULL)
+ continue;
+
+ if (h->plt.refcount > 0)
+ h->plt.refcount -= 1;
+ break;
+
+ case R_AARCH64_ABS64:
+ if (h != NULL && info->executable)
+ {
+ if (h->plt.refcount > 0)
+ h->plt.refcount -= 1;
+ }
+ break;
+
+ default:
+ break;
+
+ }
+
+ }
+
return TRUE;
}
@@ -6994,7 +7127,7 @@ const struct elf_size_info elf64_aarch64
elf64_aarch64_size_info
#define elf_backend_can_refcount 1
-#define elf_backend_can_gc_sections 0
+#define elf_backend_can_gc_sections 1
#define elf_backend_plt_readonly 1
#define elf_backend_want_got_plt 1
#define elf_backend_want_plt_sym 0
Index: binutils-2.23.1/ld/testsuite/lib/ld-lib.exp
===================================================================
--- binutils-2.23.1.orig/ld/testsuite/lib/ld-lib.exp
+++ binutils-2.23.1/ld/testsuite/lib/ld-lib.exp
@@ -1500,8 +1500,7 @@ proc check_gc_sections_available { } {
if {![info exists gc_sections_available_saved]} {
# Some targets don't support gc-sections despite whatever's
# advertised by ld's options.
- if {[istarget aarch64*-*-*]
- || [istarget arc-*-*]
+ if {[istarget arc-*-*]
|| [istarget d30v-*-*]
|| [istarget dlx-*-*]
|| [istarget i960-*-*]

View File

@ -1,115 +0,0 @@
From: Yufeng Zhang <yufeng.zhang@arm.com>
Date: Mon, 13 May 2013 22:50:00 +0000 (+0000)
Subject: gas/
X-Git-Url: http://sourceware.org/git/?p=binutils.git;a=commitdiff_plain;h=1796bf893c4729d5c523502318d72cae78495d6c
gas/
Backport from mainline:
2013-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
* config/tc-aarch64.c (parse_sys_reg): Allow the full range of CRn
for system registers.
gas/testsuite/
Backport from mainline:
2013-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
* gas/aarch64/illegal.l: Delete the error message for
msr S3_1_C13_C15_1,x7.
* gas/aarch64/sysreg.s: Add new tests.
* gas/aarch64/sysreg.d: Update.
---
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 821acc9..3d09792 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
+
+ Backport from mainline:
+
+ 2013-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
+ * config/tc-aarch64.c (parse_sys_reg): Allow the full range of CRn
+ for system registers.
+
2013-03-05 Yufeng Zhang <yufeng.zhang@arm.com>
* config/tc-aarch64.c (aarch64_imm_float_p): Rename 'e' to 'pattern';
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 162c865..db28c71 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -3243,10 +3243,14 @@ parse_sys_reg (char **str, struct hash_control *sys_regs, int imple_defined_p)
unsigned int op0, op1, cn, cm, op2;
if (sscanf (buf, "s%u_%u_c%u_c%u_%u", &op0, &op1, &cn, &cm, &op2) != 5)
return PARSE_FAIL;
- /* Register access is encoded as follows:
+ /* The architecture specifies the encoding space for implementation
+ defined registers as:
op0 op1 CRn CRm op2
- 11 xxx 1x11 xxxx xxx. */
- if (op0 != 3 || op1 > 7 || (cn | 0x4) != 0xf || cm > 15 || op2 > 7)
+ 11 xxx 1x11 xxxx xxx
+ For convenience GAS accepts a wider encoding space, as follows:
+ op0 op1 CRn CRm op2
+ 11 xxx xxxx xxxx xxx */
+ if (op0 != 3 || op1 > 7 || cn > 15 || cm > 15 || op2 > 7)
return PARSE_FAIL;
value = (op0 << 14) | (op1 << 11) | (cn << 7) | (cm << 3) | op2;
}
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index d1ebc3b..8ee06c8 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
+
+ Backport from mainline:
+
+ 2013-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
+ * gas/aarch64/illegal.l: Delete the error message for
+ msr S3_1_C13_C15_1,x7.
+ * gas/aarch64/sysreg.s: Add new tests.
+ * gas/aarch64/sysreg.d: Update.
+
2013-03-08 Christian Groessler <chris@groessler.org>
Backport from mainline:
diff --git a/gas/testsuite/gas/aarch64/illegal.l b/gas/testsuite/gas/aarch64/illegal.l
index e17a1de..f7e4074 100644
--- a/gas/testsuite/gas/aarch64/illegal.l
+++ b/gas/testsuite/gas/aarch64/illegal.l
@@ -520,7 +520,6 @@
[^:]*:496: Error: .*`str x1,page_table_count'
[^:]*:498: Error: .*`prfm PLDL3KEEP,\[x9,x15,sxtx#2\]'
[^:]*:500: Error: .*`mrs x5,S1_0_C13_C8_0'
-[^:]*:501: Error: .*`msr S3_1_C13_C15_1,x7'
[^:]*:502: Error: .*`msr S3_1_C11_C15_-1,x7'
[^:]*:503: Error: .*`msr S3_1_11_15_1,x7'
[^:]*:506: Error: .*`movi w1,#15'
diff --git a/gas/testsuite/gas/aarch64/sysreg.d b/gas/testsuite/gas/aarch64/sysreg.d
index b83b270..c7cf00e 100644
--- a/gas/testsuite/gas/aarch64/sysreg.d
+++ b/gas/testsuite/gas/aarch64/sysreg.d
@@ -23,3 +23,6 @@ Disassembly of section \.text:
3c: d5380260 mrs x0, id_isar3_el1
40: d5380280 mrs x0, id_isar4_el1
44: d53802a0 mrs x0, id_isar5_el1
+ 48: d538cc00 mrs x0, s3_0_c12_c12_0
+ 4c: d5384600 mrs x0, s3_0_c4_c6_0
+ 50: d5184600 msr s3_0_c4_c6_0, x0
diff --git a/gas/testsuite/gas/aarch64/sysreg.s b/gas/testsuite/gas/aarch64/sysreg.s
index e6f770e..3287594 100644
--- a/gas/testsuite/gas/aarch64/sysreg.s
+++ b/gas/testsuite/gas/aarch64/sysreg.s
@@ -22,3 +22,7 @@
mrs x0, id_isar3_el1
mrs x0, id_isar4_el1
mrs x0, id_isar5_el1
+
+ mrs x0, s3_0_c12_c12_0
+ mrs x0, s3_0_c4_c6_0
+ msr s3_0_c4_c6_0, x0

View File

@ -1,142 +0,0 @@
From: Yufeng Zhang <yufeng.zhang@arm.com>
Date: Mon, 13 May 2013 23:09:51 +0000 (+0000)
Subject: gas/testsuite/
X-Git-Url: http://sourceware.org/git/?p=binutils.git;a=commitdiff_plain;h=f426901e1be0f58fe4e9386cada50ca57d0a4f3
gas/testsuite/
Backport from mainline:
2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
* gas/aarch64/diagnostic.s: Update.
* gas/aarch64/diagnostic.l: Ditto.
* gas/aarch64/movi.s: Add new tests.
* gas/aarch64/movi.d: Update.
opcodes/
Backport from mainline:
2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
* aarch64-asm.c (aarch64_ins_advsimd_imm_modified): Remove assertion.
* aarch64-opc.c (operand_general_constraint_met_p): Relax the range
check from [0, 255] to [-128, 255].
---
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 8ee06c8..475c93a 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
+
+ Backport from mainline:
+
+ 2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
+ * gas/aarch64/diagnostic.s: Update.
+ * gas/aarch64/diagnostic.l: Ditto.
+ * gas/aarch64/movi.s: Add new tests.
+ * gas/aarch64/movi.d: Update.
+
2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
Backport from mainline:
diff --git a/gas/testsuite/gas/aarch64/diagnostic.l b/gas/testsuite/gas/aarch64/diagnostic.l
index f37f11c..d7a1347 100644
--- a/gas/testsuite/gas/aarch64/diagnostic.l
+++ b/gas/testsuite/gas/aarch64/diagnostic.l
@@ -38,8 +38,8 @@
[^:]*:40: Error: invalid shift amount at operand 3 -- `shll v1.4s,v2.4h,#32'
[^:]*:41: Error: immediate value out of range 0 to 31 at operand 3 -- `shl v1.2s,v2.2s,32'
[^:]*:42: Error: immediate value out of range 1 to 8 at operand 3 -- `sqshrn2 v2.16b,v3.8h,#17'
-[^:]*:43: Error: immediate value out of range 0 to 255 at operand 2 -- `movi v1.4h,256'
-[^:]*:44: Error: immediate value out of range 0 to 255 at operand 2 -- `movi v1.4h,-1'
+[^:]*:43: Error: immediate value out of range -128 to 255 at operand 2 -- `movi v1.4h,256'
+[^:]*:44: Error: immediate value out of range -128 to 255 at operand 2 -- `movi v1.4h,-129'
[^:]*:45: Error: invalid shift operator at operand 2 -- `movi v1.4h,255,msl#8'
[^:]*:46: Error: invalid value for immediate at operand 2 -- `movi d0,256'
[^:]*:47: Error: immediate value should be a multiple of 8 at operand 2 -- `movi v1.4h,255,lsl#7'
diff --git a/gas/testsuite/gas/aarch64/diagnostic.s b/gas/testsuite/gas/aarch64/diagnostic.s
index 99ebf8f..e5443ab 100644
--- a/gas/testsuite/gas/aarch64/diagnostic.s
+++ b/gas/testsuite/gas/aarch64/diagnostic.s
@@ -41,7 +41,7 @@
shl v1.2s, v2.2s, 32
sqshrn2 v2.16b, v3.8h, #17
movi v1.4h, 256
- movi v1.4h, -1
+ movi v1.4h, -129
movi v1.4h, 255, msl #8
movi d0, 256
movi v1.4h, 255, lsl #7
diff --git a/gas/testsuite/gas/aarch64/movi.d b/gas/testsuite/gas/aarch64/movi.d
index 2c73cc4..c225b21 100644
--- a/gas/testsuite/gas/aarch64/movi.d
+++ b/gas/testsuite/gas/aarch64/movi.d
@@ -8201,3 +8201,6 @@ Disassembly of section \.text:
8004: 6f07e7e0 movi v0.2d, #0xffffffffffffffff
8008: 6f07e7e0 movi v0.2d, #0xffffffffffffffff
800c: 2f07e7ff movi d31, #0xffffffffffffffff
+ 8010: 0f04e403 movi v3.8b, #0x80
+ 8014: 0f04e423 movi v3.8b, #0x81
+ 8018: 0f07e7e3 movi v3.8b, #0xff
diff --git a/gas/testsuite/gas/aarch64/movi.s b/gas/testsuite/gas/aarch64/movi.s
index 99ca34a..76f2d47 100644
--- a/gas/testsuite/gas/aarch64/movi.s
+++ b/gas/testsuite/gas/aarch64/movi.s
@@ -102,3 +102,8 @@
movi v0.2d, bignum
movi d31, 18446744073709551615
.set bignum, 0xffffffffffffffff
+
+ // Allow -128 to 255 in #<imm8>
+ movi v3.8b, -128
+ movi v3.8b, -127
+ movi v3.8b, -1
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 96dfaeb..4adbc86 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,12 @@
+2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
+
+ Backport from mainline:
+
+ 2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
+ * aarch64-asm.c (aarch64_ins_advsimd_imm_modified): Remove assertion.
+ * aarch64-opc.c (operand_general_constraint_met_p): Relax the range
+ check from [0, 255] to [-128, 255].
+
2013-03-25 Tristan Gingold <gingold@adacore.com>
Backport of: 2013-03-08 Yann Sionneau <yann.sionneau@gmail.com>
diff --git a/opcodes/aarch64-asm.c b/opcodes/aarch64-asm.c
index 16cdaa9..ba463d9 100644
--- a/opcodes/aarch64-asm.c
+++ b/opcodes/aarch64-asm.c
@@ -369,7 +369,6 @@ aarch64_ins_advsimd_imm_modified (const aarch64_operand *self ATTRIBUTE_UNUSED,
imm = aarch64_shrink_expanded_imm8 (imm);
assert ((int)imm >= 0);
}
- assert (imm <= 255);
insert_fields (code, imm, 0, 2, FLD_defgh, FLD_abc);
if (kind == AARCH64_MOD_NONE)
diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c
index 73a760a..32f34c6 100644
--- a/opcodes/aarch64-opc.c
+++ b/opcodes/aarch64-opc.c
@@ -1724,10 +1724,10 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
assert (idx == 1);
if (aarch64_get_qualifier_esize (opnds[0].qualifier) != 8)
{
- /* uimm8 */
- if (!value_in_range_p (opnd->imm.value, 0, 255))
+ /* uimm8 or simm8 */
+ if (!value_in_range_p (opnd->imm.value, -128, 255))
{
- set_imm_out_of_range_error (mismatch_detail, idx, 0, 255);
+ set_imm_out_of_range_error (mismatch_detail, idx, -128, 255);
return 0;
}
}

View File

@ -1,104 +0,0 @@
This patches fixes an integer overflow in libiberty, which leads to
crashes in binutils. The long version of the objalloc_alloc macro
would have needed another conditional, so I removed that and replaced
it with a call to the actual implementation.
This has been compiled-tested only. We do not use this function in
GCC, therefore I want to commit this just to the trunk.
2012-08-29 Florian Weimer <fw@deneb.enyo.de>
PR other/54411
* objalloc.h (objalloc_alloc): Always use the simple definition of
the macro.
2012-08-29 Florian Weimer <fw@deneb.enyo.de>
PR other/54411
* objalloc.c (_objalloc_alloc): Add overflow check covering
alignment and CHUNK_HEADER_SIZE addition.
Index: include/objalloc.h
===================================================================
--- include/objalloc.h.orig
+++ include/objalloc.h
@@ -1,5 +1,5 @@
/* objalloc.h -- routines to allocate memory for objects
- Copyright 1997, 2001 Free Software Foundation, Inc.
+ Copyright 1997-2012 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Solutions.
This program is free software; you can redistribute it and/or modify it
@@ -71,38 +71,8 @@ extern struct objalloc *objalloc_create
extern void *_objalloc_alloc (struct objalloc *, unsigned long);
-/* The macro version of objalloc_alloc. We only define this if using
- gcc, because otherwise we would have to evaluate the arguments
- multiple times, or use a temporary field as obstack.h does. */
-
-#if defined (__GNUC__) && defined (__STDC__) && __STDC__
-
-/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
- does not implement __extension__. But that compiler doesn't define
- __GNUC_MINOR__. */
-#if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
-#define __extension__
-#endif
-
-#define objalloc_alloc(o, l) \
- __extension__ \
- ({ struct objalloc *__o = (o); \
- unsigned long __len = (l); \
- if (__len == 0) \
- __len = 1; \
- __len = (__len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1); \
- (__len <= __o->current_space \
- ? (__o->current_ptr += __len, \
- __o->current_space -= __len, \
- (void *) (__o->current_ptr - __len)) \
- : _objalloc_alloc (__o, __len)); })
-
-#else /* ! __GNUC__ */
-
#define objalloc_alloc(o, l) _objalloc_alloc ((o), (l))
-#endif /* ! __GNUC__ */
-
/* Free an entire objalloc structure. */
extern void objalloc_free (struct objalloc *);
Index: libiberty/objalloc.c
===================================================================
--- libiberty/objalloc.c.orig
+++ libiberty/objalloc.c
@@ -1,5 +1,5 @@
/* objalloc.c -- routines to allocate memory for objects
- Copyright 1997 Free Software Foundation, Inc.
+ Copyright 1997-2012 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Solutions.
This program is free software; you can redistribute it and/or modify it
@@ -112,8 +112,9 @@ objalloc_create (void)
/* Allocate space from an objalloc structure. */
PTR
-_objalloc_alloc (struct objalloc *o, unsigned long len)
+_objalloc_alloc (struct objalloc *o, unsigned long original_len)
{
+ unsigned long len = original_len;
/* We avoid confusion from zero sized objects by always allocating
at least 1 byte. */
if (len == 0)
@@ -121,6 +122,11 @@ _objalloc_alloc (struct objalloc *o, uns
len = (len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1);
+ /* Check for overflow in the alignment operator above and the malloc
+ argument below. */
+ if (len + CHUNK_HEADER_SIZE < original_len)
+ return NULL;
+
if (len <= o->current_space)
{
o->current_ptr += len;

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fe914e56fed7a9ec2eb45274b1f2e14b0d8b4f41906a5194eac6883cfe5c1097
size 21440347

View File

@ -1,25 +0,0 @@
*** ../binutils-2.23.52.0.1.orig/bfd/archive64.c 2013-03-01 17:20:39.873535502 +0000
--- bfd/archive64.c 2013-03-01 17:22:30.410538566 +0000
*************** bfd_elf64_archive_write_armap (bfd *arch
*** 210,218 ****
if (bfd_bwrite (buf, 8, arch) != 8)
return FALSE;
}
/* Add size of this archive entry */
! archive_member_file_ptr += (arelt_size (current)
! + sizeof (struct ar_hdr));
/* remember about the even alignment */
archive_member_file_ptr += archive_member_file_ptr % 2;
}
--- 210,220 ----
if (bfd_bwrite (buf, 8, arch) != 8)
return FALSE;
}
+
/* Add size of this archive entry */
! archive_member_file_ptr += sizeof (struct ar_hdr);
! if (! bfd_is_thin_archive (arch))
! archive_member_file_ptr += arelt_size (current);
/* remember about the even alignment */
archive_member_file_ptr += archive_member_file_ptr % 2;
}

3
binutils-2.23.92.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7fee1fb5e69eb398903558ce4b64e187ce30c7950387b01a4e8b4446e03a2558
size 23460261

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -35,7 +35,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -58,12 +58,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -94,19 +94,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -124,7 +115,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -170,17 +161,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -216,7 +198,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

2553
cross-m68k-binutils.changes Normal file

File diff suppressed because it is too large Load Diff

449
cross-m68k-binutils.spec Normal file
View File

@ -0,0 +1,449 @@
#
# spec file for package cross-m68k-binutils
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: cross-m68k-binutils
ExcludeArch: m68k
%define cross 1
%define TARGET m68k
BuildRequires: bison
BuildRequires: dejagnu
BuildRequires: flex
BuildRequires: gcc-c++
# for the testsuite
%if 0%{suse_version} >= 1210
BuildRequires: glibc-devel-static
%endif
%if 0%{suse_version} > 1220
BuildRequires: makeinfo
%endif
# for some gold tests
BuildRequires: bc
%if 0%{suse_version} > 1110
BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.92
Release: 0
#
# RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
# check the vanilla binutils, with no patches applied
# TEST_VANILLA
%define test_vanilla %(test ! -f %_sourcedir/TEST_VANILLA ; echo $?)
#
# handle test suite failures
#
%ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true
%else
# XXX check again
# XXX disabled because gold is seriously broken for now
%define make_check_handling true
%endif
# let make check fail anyway if RUN_TESTS was requested
%if %{run_tests}
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
Url: http://www.gnu.org/software/binutils/
PreReq: %{install_info_prereq}
# bug437293
%ifarch ppc64
Obsoletes: binutils-64bit
%endif
#
%define binutils_version %(echo %version | sed 's/\\.[0-9]\\{8\\}$//')
Summary: GNU Binutils
License: GFDL-1.3 and GPL-3.0+
Group: Development/Tools/Building
Source: binutils-%{binutils_version}.tar.bz2
Source1: pre_checkin.sh
Source2: README.First-for.SuSE.packagers
Source3: baselibs.conf
Patch3: binutils-skip-rpaths.patch
Patch4: s390-biarch.diff
Patch5: x86-64-biarch.patch
Patch6: unit-at-a-time.patch
Patch7: ld-dtags.diff
Patch8: ld-relro.diff
Patch9: testsuite.diff
Patch10: enable-targets-gold.diff
Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch22: binutils-bfd_h.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
size, strings, and strip. These utilities are needed whenever you want
to compile a program or kernel.
%package gold
Summary: The gold linker
License: GPL-3.0+
Group: Development/Tools/Building
Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
%description gold
gold is an ELF linker. It is intended to have complete support for ELF
and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker.
%package devel
Summary: GNU binutils (BFD development files)
License: GPL-3.0+
Group: Development/Libraries/C and C++
Requires: binutils = %{version}-%{release}
Requires: zlib-devel
Provides: binutils:/usr/include/bfd.h
%description devel
This package includes header files and static libraries necessary to
build programs which use the GNU BFD library, which is part of
binutils.
%ifarch %arm
%define HOST %{_target_cpu}-suse-linux-gnueabi
%else
%define HOST %(echo %{_target_cpu} | sed -e "s/parisc/hppa/" -e "s/i.86/i586/" -e "s/ppc/powerpc/" -e "s/sparc64v.*/sparc64/" -e "s/sparcv.*/sparc/")-suse-linux
%endif
%define DIST %(echo '%distribution' | sed 's/ (.*)//')
%prep
echo "make check will return with %{make_check_handling} in case of testsuite failures."
%setup -q -n binutils-%{binutils_version}
%if !%{test_vanilla}
%patch3
%patch4
%patch5
%patch6
%patch7 -p1
%patch8
%patch9
%patch10
%patch11
%patch12
%patch14
%patch18
%patch22
%patch23 -p1
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
%patch92
%endif
#
# test_vanilla
%endif
sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h
%build
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error"
%if 0%{!?cross:1}
# Building native binutils
echo "Building native binutils."
%if %build_multitarget
EXTRA_TARGETS="%(printf ,%%s-suse-linux %target_list)"
EXTRA_TARGETS="$EXTRA_TARGETS,powerpc-macos,powerpc-macos10,spu-elf,x86_64-pep"
%else
EXTRA_TARGETS=
%ifarch sparc
EXTRA_TARGETS="$EXTRA_TARGETS,sparc64-suse-linux"
%endif
%ifarch ppc
EXTRA_TARGETS="$EXTRA_TARGETS,powerpc64-suse-linux"
%endif
%ifarch s390
EXTRA_TARGETS="$EXTRA_TARGETS,s390x-suse-linux"
%endif
%ifarch s390x
EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%endif
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\
--infodir=%{_infodir} --mandir=%{_mandir} \\\
--with-bugurl=http://bugs.opensuse.org/ \\\
--with-pkgversion="GNU Binutils; %{DIST}" \\\
--with-separate-debug-dir=%{_prefix}/lib/debug \\\
--with-pic --build=%{HOST}
mkdir build-dir
cd build-dir
../configure %common_flags \
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} \
--enable-plugins \
%ifarch %gold_archs
--enable-gold \
--enable-threads \
%endif
--enable-shared
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# force reconfiguring (???)
rm bfd/Makefile
make %{?_smp_mflags}
%else
# building cross-TARGET-binutils
echo "Building cross binutils."
mkdir build-dir
cd build-dir
EXTRA_TARGETS=
%if "%{TARGET}" == "sparc"
EXTRA_TARGETS="$EXTRA_TARGETS,sparc64-suse-linux"
%endif
%if "%{TARGET}" == "powerpc"
EXTRA_TARGETS="$EXTRA_TARGETS,powerpc64-suse-linux"
%endif
%if "%{TARGET}" == "s390"
EXTRA_TARGETS="$EXTRA_TARGETS,s390x-suse-linux"
%endif
%if "%{TARGET}" == "s390x"
EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%endif
%if "%{TARGET}" == "i586"
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%if "%{TARGET}" == "hppa"
EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%endif
%if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET}
%else
%if "%{TARGET}" == "arm"
TARGET_OS=%{TARGET}-suse-linux-gnueabi
%else
TARGET_OS=%{TARGET}-suse-linux
%endif
%endif
../configure CFLAGS="${RPM_OPT_FLAGS}" \
--prefix=%{_prefix} \
--with-bugurl=http://bugs.opensuse.org/ \
--with-pkgversion="GNU Binutils; %{DIST}" \
--disable-nls \
--build=%{HOST} --target=$TARGET_OS \
%if "%{TARGET}" == "spu"
--with-sysroot=/usr/spu \
%else
--with-sysroot=%{_prefix}/$TARGET_OS/sys-root \
%endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags}
%if "%{TARGET}" == "avr"
# build an extra nesC version because nesC requires $'s in identifiers
cp -a gas gas-nesc
echo '#include "tc-%{TARGET}-nesc.h"' > gas-nesc/targ-cpu.h
make -C gas-nesc clean
make -C gas-nesc %{?_smp_mflags}
%endif
%endif
%check
unset SUSE_ASNEEDED
cd build-dir
%if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" || %{make_check_handling}
%else
make -k check CFLAGS="$RPM_OPT_FLAGS -Wno-unused -Wno-unprototyped-calls" || :
%endif
%install
cd build-dir
%if 0%{!?cross:1}
# installing native binutils
%ifarch %gold_archs
make DESTDIR=$RPM_BUILD_ROOT install-gold
ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
%endif
make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
mv "%buildroot/%_bindir"/{ld,ld.bfd};
else
rm -f "%buildroot/%_bindir/ld";
fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mv $RPM_BUILD_ROOT%{_prefix}/%{HOST}/lib/ldscripts $RPM_BUILD_ROOT%{_libdir}
ln -sf ../../%{_lib}/ldscripts $RPM_BUILD_ROOT%{_prefix}/%{HOST}/lib/ldscripts
# Install header files
make -C libiberty install_to_libdir target_header_dir=/usr/include DESTDIR=$RPM_BUILD_ROOT
# We want the PIC libiberty.a
install -m 644 libiberty/pic/libiberty.a $RPM_BUILD_ROOT%{_libdir}
#
chmod a+x $RPM_BUILD_ROOT%{_libdir}/libbfd-*
chmod a+x $RPM_BUILD_ROOT%{_libdir}/libopcodes-*
# No shared linking outside binutils
rm $RPM_BUILD_ROOT%{_libdir}/lib{bfd,opcodes}.so
rm $RPM_BUILD_ROOT%{_libdir}/lib{bfd,opcodes}.la
# Remove unwanted files to shut up rpm
rm $RPM_BUILD_ROOT%{_infodir}/configure* $RPM_BUILD_ROOT%{_infodir}/standards.info*
rm $RPM_BUILD_ROOT%{_mandir}/man1/dlltool.1 $RPM_BUILD_ROOT%{_mandir}/man1/windres.1 $RPM_BUILD_ROOT%{_mandir}/man1/windmc.1
cd ..
%find_lang binutils
%find_lang bfd binutils.lang
%find_lang gas binutils.lang
%find_lang ld binutils.lang
%find_lang opcodes binutils.lang
%find_lang gprof binutils.lang
%ifarch %gold_archs
%find_lang gold binutils-gold.lang
%endif
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}
install -m 644 binutils/NEWS $RPM_BUILD_ROOT%{_docdir}/%{name}/NEWS-binutils
install -m 644 gas/NEWS $RPM_BUILD_ROOT%{_docdir}/%{name}/NEWS-gas
install -m 644 ld/NEWS $RPM_BUILD_ROOT%{_docdir}/%{name}/NEWS-ld
%else
# installing cross-TARGET-binutils and TARGET-binutils
make DESTDIR=$RPM_BUILD_ROOT install
# Replace hard links by symlinks, so that rpmlint doesn't complain
T=$(basename %buildroot/usr/%{TARGET}*)
for f in %buildroot/usr/$T/bin/* ; do
ln -sf /usr/bin/$T-$(basename $f) $f
done
%if "%{TARGET}" == "avr"
install -c gas-nesc/as-new $RPM_BUILD_ROOT%{_prefix}/bin/%{TARGET}-nesc-as
ln -sf ../../bin/%{TARGET}-nesc-as $RPM_BUILD_ROOT%{_prefix}/%{TARGET}/bin/nesc-as
%endif
rm -rf $RPM_BUILD_ROOT%{_mandir}
rm -rf $RPM_BUILD_ROOT%{_infodir}
rm -rf $RPM_BUILD_ROOT%{_prefix}/lib*
rm -rf $RPM_BUILD_ROOT%{_prefix}/include
rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang
%endif
%if 0%{!?cross:1}
%post
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%preun
if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%preun gold
if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%files -f binutils.lang
%defattr(-,root,root)
%if 0%{!?cross:1}
%{_docdir}/%{name}
%{_prefix}/%{HOST}/bin/*
%{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts
%{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs
%exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold
%endif
%doc %{_infodir}/*.gz
%{_libdir}/lib*-%{version}*.so
%doc %{_mandir}/man1/*.1.gz
%else
%{_prefix}/%{TARGET}*
%{_prefix}/bin/*
%endif
%ifarch %gold_archs
%files gold -f binutils-gold.lang
%defattr(-,root,root)
%doc gold/NEWS gold/README
%{_bindir}/gold
%{_bindir}/ld.gold
%endif
%if 0%{!?cross:1}
%files devel
%defattr(-,root,root)
%{_prefix}/include/*.h
%{_libdir}/lib*.*a
%endif
%changelog

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

File diff suppressed because it is too large Load Diff

449
cross-ppc64le-binutils.spec Normal file
View File

@ -0,0 +1,449 @@
#
# spec file for package cross-ppc64le-binutils
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: cross-ppc64le-binutils
ExcludeArch: ppc64le
%define cross 1
%define TARGET powerpc64le
BuildRequires: bison
BuildRequires: dejagnu
BuildRequires: flex
BuildRequires: gcc-c++
# for the testsuite
%if 0%{suse_version} >= 1210
BuildRequires: glibc-devel-static
%endif
%if 0%{suse_version} > 1220
BuildRequires: makeinfo
%endif
# for some gold tests
BuildRequires: bc
%if 0%{suse_version} > 1110
BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.92
Release: 0
#
# RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
# check the vanilla binutils, with no patches applied
# TEST_VANILLA
%define test_vanilla %(test ! -f %_sourcedir/TEST_VANILLA ; echo $?)
#
# handle test suite failures
#
%ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true
%else
# XXX check again
# XXX disabled because gold is seriously broken for now
%define make_check_handling true
%endif
# let make check fail anyway if RUN_TESTS was requested
%if %{run_tests}
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
Url: http://www.gnu.org/software/binutils/
PreReq: %{install_info_prereq}
# bug437293
%ifarch ppc64
Obsoletes: binutils-64bit
%endif
#
%define binutils_version %(echo %version | sed 's/\\.[0-9]\\{8\\}$//')
Summary: GNU Binutils
License: GFDL-1.3 and GPL-3.0+
Group: Development/Tools/Building
Source: binutils-%{binutils_version}.tar.bz2
Source1: pre_checkin.sh
Source2: README.First-for.SuSE.packagers
Source3: baselibs.conf
Patch3: binutils-skip-rpaths.patch
Patch4: s390-biarch.diff
Patch5: x86-64-biarch.patch
Patch6: unit-at-a-time.patch
Patch7: ld-dtags.diff
Patch8: ld-relro.diff
Patch9: testsuite.diff
Patch10: enable-targets-gold.diff
Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch22: binutils-bfd_h.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
size, strings, and strip. These utilities are needed whenever you want
to compile a program or kernel.
%package gold
Summary: The gold linker
License: GPL-3.0+
Group: Development/Tools/Building
Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
%description gold
gold is an ELF linker. It is intended to have complete support for ELF
and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker.
%package devel
Summary: GNU binutils (BFD development files)
License: GPL-3.0+
Group: Development/Libraries/C and C++
Requires: binutils = %{version}-%{release}
Requires: zlib-devel
Provides: binutils:/usr/include/bfd.h
%description devel
This package includes header files and static libraries necessary to
build programs which use the GNU BFD library, which is part of
binutils.
%ifarch %arm
%define HOST %{_target_cpu}-suse-linux-gnueabi
%else
%define HOST %(echo %{_target_cpu} | sed -e "s/parisc/hppa/" -e "s/i.86/i586/" -e "s/ppc/powerpc/" -e "s/sparc64v.*/sparc64/" -e "s/sparcv.*/sparc/")-suse-linux
%endif
%define DIST %(echo '%distribution' | sed 's/ (.*)//')
%prep
echo "make check will return with %{make_check_handling} in case of testsuite failures."
%setup -q -n binutils-%{binutils_version}
%if !%{test_vanilla}
%patch3
%patch4
%patch5
%patch6
%patch7 -p1
%patch8
%patch9
%patch10
%patch11
%patch12
%patch14
%patch18
%patch22
%patch23 -p1
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
%patch92
%endif
#
# test_vanilla
%endif
sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h
%build
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error"
%if 0%{!?cross:1}
# Building native binutils
echo "Building native binutils."
%if %build_multitarget
EXTRA_TARGETS="%(printf ,%%s-suse-linux %target_list)"
EXTRA_TARGETS="$EXTRA_TARGETS,powerpc-macos,powerpc-macos10,spu-elf,x86_64-pep"
%else
EXTRA_TARGETS=
%ifarch sparc
EXTRA_TARGETS="$EXTRA_TARGETS,sparc64-suse-linux"
%endif
%ifarch ppc
EXTRA_TARGETS="$EXTRA_TARGETS,powerpc64-suse-linux"
%endif
%ifarch s390
EXTRA_TARGETS="$EXTRA_TARGETS,s390x-suse-linux"
%endif
%ifarch s390x
EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%endif
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\
--infodir=%{_infodir} --mandir=%{_mandir} \\\
--with-bugurl=http://bugs.opensuse.org/ \\\
--with-pkgversion="GNU Binutils; %{DIST}" \\\
--with-separate-debug-dir=%{_prefix}/lib/debug \\\
--with-pic --build=%{HOST}
mkdir build-dir
cd build-dir
../configure %common_flags \
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} \
--enable-plugins \
%ifarch %gold_archs
--enable-gold \
--enable-threads \
%endif
--enable-shared
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# force reconfiguring (???)
rm bfd/Makefile
make %{?_smp_mflags}
%else
# building cross-TARGET-binutils
echo "Building cross binutils."
mkdir build-dir
cd build-dir
EXTRA_TARGETS=
%if "%{TARGET}" == "sparc"
EXTRA_TARGETS="$EXTRA_TARGETS,sparc64-suse-linux"
%endif
%if "%{TARGET}" == "powerpc"
EXTRA_TARGETS="$EXTRA_TARGETS,powerpc64-suse-linux"
%endif
%if "%{TARGET}" == "s390"
EXTRA_TARGETS="$EXTRA_TARGETS,s390x-suse-linux"
%endif
%if "%{TARGET}" == "s390x"
EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%endif
%if "%{TARGET}" == "i586"
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%if "%{TARGET}" == "hppa"
EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%endif
%if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET}
%else
%if "%{TARGET}" == "arm"
TARGET_OS=%{TARGET}-suse-linux-gnueabi
%else
TARGET_OS=%{TARGET}-suse-linux
%endif
%endif
../configure CFLAGS="${RPM_OPT_FLAGS}" \
--prefix=%{_prefix} \
--with-bugurl=http://bugs.opensuse.org/ \
--with-pkgversion="GNU Binutils; %{DIST}" \
--disable-nls \
--build=%{HOST} --target=$TARGET_OS \
%if "%{TARGET}" == "spu"
--with-sysroot=/usr/spu \
%else
--with-sysroot=%{_prefix}/$TARGET_OS/sys-root \
%endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags}
%if "%{TARGET}" == "avr"
# build an extra nesC version because nesC requires $'s in identifiers
cp -a gas gas-nesc
echo '#include "tc-%{TARGET}-nesc.h"' > gas-nesc/targ-cpu.h
make -C gas-nesc clean
make -C gas-nesc %{?_smp_mflags}
%endif
%endif
%check
unset SUSE_ASNEEDED
cd build-dir
%if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" || %{make_check_handling}
%else
make -k check CFLAGS="$RPM_OPT_FLAGS -Wno-unused -Wno-unprototyped-calls" || :
%endif
%install
cd build-dir
%if 0%{!?cross:1}
# installing native binutils
%ifarch %gold_archs
make DESTDIR=$RPM_BUILD_ROOT install-gold
ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
%endif
make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
mv "%buildroot/%_bindir"/{ld,ld.bfd};
else
rm -f "%buildroot/%_bindir/ld";
fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mv $RPM_BUILD_ROOT%{_prefix}/%{HOST}/lib/ldscripts $RPM_BUILD_ROOT%{_libdir}
ln -sf ../../%{_lib}/ldscripts $RPM_BUILD_ROOT%{_prefix}/%{HOST}/lib/ldscripts
# Install header files
make -C libiberty install_to_libdir target_header_dir=/usr/include DESTDIR=$RPM_BUILD_ROOT
# We want the PIC libiberty.a
install -m 644 libiberty/pic/libiberty.a $RPM_BUILD_ROOT%{_libdir}
#
chmod a+x $RPM_BUILD_ROOT%{_libdir}/libbfd-*
chmod a+x $RPM_BUILD_ROOT%{_libdir}/libopcodes-*
# No shared linking outside binutils
rm $RPM_BUILD_ROOT%{_libdir}/lib{bfd,opcodes}.so
rm $RPM_BUILD_ROOT%{_libdir}/lib{bfd,opcodes}.la
# Remove unwanted files to shut up rpm
rm $RPM_BUILD_ROOT%{_infodir}/configure* $RPM_BUILD_ROOT%{_infodir}/standards.info*
rm $RPM_BUILD_ROOT%{_mandir}/man1/dlltool.1 $RPM_BUILD_ROOT%{_mandir}/man1/windres.1 $RPM_BUILD_ROOT%{_mandir}/man1/windmc.1
cd ..
%find_lang binutils
%find_lang bfd binutils.lang
%find_lang gas binutils.lang
%find_lang ld binutils.lang
%find_lang opcodes binutils.lang
%find_lang gprof binutils.lang
%ifarch %gold_archs
%find_lang gold binutils-gold.lang
%endif
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}
install -m 644 binutils/NEWS $RPM_BUILD_ROOT%{_docdir}/%{name}/NEWS-binutils
install -m 644 gas/NEWS $RPM_BUILD_ROOT%{_docdir}/%{name}/NEWS-gas
install -m 644 ld/NEWS $RPM_BUILD_ROOT%{_docdir}/%{name}/NEWS-ld
%else
# installing cross-TARGET-binutils and TARGET-binutils
make DESTDIR=$RPM_BUILD_ROOT install
# Replace hard links by symlinks, so that rpmlint doesn't complain
T=$(basename %buildroot/usr/%{TARGET}*)
for f in %buildroot/usr/$T/bin/* ; do
ln -sf /usr/bin/$T-$(basename $f) $f
done
%if "%{TARGET}" == "avr"
install -c gas-nesc/as-new $RPM_BUILD_ROOT%{_prefix}/bin/%{TARGET}-nesc-as
ln -sf ../../bin/%{TARGET}-nesc-as $RPM_BUILD_ROOT%{_prefix}/%{TARGET}/bin/nesc-as
%endif
rm -rf $RPM_BUILD_ROOT%{_mandir}
rm -rf $RPM_BUILD_ROOT%{_infodir}
rm -rf $RPM_BUILD_ROOT%{_prefix}/lib*
rm -rf $RPM_BUILD_ROOT%{_prefix}/include
rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang
%endif
%if 0%{!?cross:1}
%post
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%preun
if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%preun gold
if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%files -f binutils.lang
%defattr(-,root,root)
%if 0%{!?cross:1}
%{_docdir}/%{name}
%{_prefix}/%{HOST}/bin/*
%{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts
%{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs
%exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold
%endif
%doc %{_infodir}/*.gz
%{_libdir}/lib*-%{version}*.so
%doc %{_mandir}/man1/*.1.gz
%else
%{_prefix}/%{TARGET}*
%{_prefix}/bin/*
%endif
%ifarch %gold_archs
%files gold -f binutils-gold.lang
%defattr(-,root,root)
%doc gold/NEWS gold/README
%{_bindir}/gold
%{_bindir}/ld.gold
%endif
%if 0%{!?cross:1}
%files devel
%defattr(-,root,root)
%{_prefix}/include/*.h
%{_libdir}/lib*.*a
%endif
%changelog

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Nov 29 14:59:52 UTC 2013 - matz@suse.de
- Update to 2.23.92 prerelease, mostly for ppc64le support.
- Add cross-ppc64le-binutils.
-------------------------------------------------------------------
Mon Oct 28 15:53:03 UTC 2013 - schwab@suse.de
- Add cross-m68k-binutils
-------------------------------------------------------------------
Wed Oct 9 08:55:16 UTC 2013 - schwab@suse.de
- pie-m68k.patch: Emit DT_DEBUG also for PIE
-------------------------------------------------------------------
Fri Sep 20 15:53:55 UTC 2013 - matz@suse.de
- Update to 2.23.90 prerelease, remove patches that
are upstream ( aarch64-biarch.patch, aarch64-dynamic-placement.patch,
aarch64-execstack.patch, aarch64-gc-section-support.patch,
aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff,
aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff,
binutils-2.22-objalloc.patch,
binutils-2.23.52.0.1-64-bit-thin-archives.patch,
s390-machinemode.patch, warning-symbol-sections.patch).
-------------------------------------------------------------------
Sat Aug 31 13:11:36 UTC 2013 - idonmez@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else
BuildRequires: zlib-devel
%endif
Version: 2.23.2
Version: 2.23.92
Release: 0
#
# RUN_TESTS
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
@ -97,19 +97,10 @@ Patch11: use-hashtype-both-by-default.diff
Patch12: s390-pic-dso.diff
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch22: binutils-bfd_h.patch
Patch23: warning-symbol-sections.patch
Patch23: pie-m68k.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.patch
Patch102: aarch64-gc-section-support.patch
Patch103: aarch64-execstack.patch
Patch201: s390-machinemode.patch
Patch202: aarch64-support-1796bf893c4729d5c523502318d72cae78495d6c.diff
Patch203: aarch64-support-f426901e1be0f58fe4e9386cada50ca57d0a4f36.diff
Patch204: aarch64-dynamic-placement.patch
Patch205: binutils-2.23.52.0.1-64-bit-thin-archives.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
@ -127,7 +118,7 @@ Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif
@ -173,17 +164,8 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch12
%patch14
%patch18
%patch21
%patch22
%patch23 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
@ -219,7 +201,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm

View File

@ -1,20 +1,20 @@
Index: Makefile.def
===================================================================
--- Makefile.def.orig
+++ Makefile.def
@@ -404,6 +404,7 @@ dependencies = { module=configure-gold;
--- Makefile.def.orig 2013-08-12 13:36:35.000000000 +0200
+++ Makefile.def 2013-09-20 16:13:38.000000000 +0200
@@ -423,6 +423,7 @@ dependencies = { module=configure-gold;
dependencies = { module=all-gold; on=all-libiberty; };
dependencies = { module=all-gold; on=all-intl; };
dependencies = { module=all-gold; on=all-bfd; };
+dependencies = { module=all-gold; on=all-opcodes; };
dependencies = { module=all-gold; on=all-build-bison; };
dependencies = { module=all-gold; on=all-gas; };
dependencies = { module=check-gold; on=all-binutils; };
dependencies = { module=check-gold; on=all-gas; };
Index: Makefile.in
===================================================================
--- Makefile.in.orig
+++ Makefile.in
@@ -42851,6 +42851,14 @@ all-stage3-gold: maybe-all-stage3-bfd
--- Makefile.in.orig 2013-09-18 13:57:35.000000000 +0200
+++ Makefile.in 2013-09-20 16:13:38.000000000 +0200
@@ -47061,6 +47061,14 @@ all-stage3-gold: maybe-all-stage3-bfd
all-stage4-gold: maybe-all-stage4-bfd
all-stageprofile-gold: maybe-all-stageprofile-bfd
all-stagefeedback-gold: maybe-all-stagefeedback-bfd

View File

@ -1,21 +1,21 @@
Index: binutils-2.23.1/ld/ld.texinfo
Index: binutils-2.23.90/ld/ld.texinfo
===================================================================
--- binutils-2.23.1.orig/ld/ld.texinfo
+++ binutils-2.23.1/ld/ld.texinfo
@@ -2089,7 +2089,7 @@ This linker can create the new dynamic t
systems may not understand them. If you specify
@option{--enable-new-dtags}, the dynamic tags will be created as needed.
--- binutils-2.23.90.orig/ld/ld.texinfo 2013-08-28 11:17:35.000000000 +0200
+++ binutils-2.23.90/ld/ld.texinfo 2013-09-20 15:31:49.000000000 +0200
@@ -2117,7 +2117,7 @@ systems may not understand them. If you
@option{--enable-new-dtags}, the new dynamic tags will be created as needed
and older dynamic tags will be omitted.
If you specify @option{--disable-new-dtags}, no new dynamic tags will be
-created. By default, the new dynamic tags are not created. Note that
+created. By default, the new dynamic tags are created. Note that
those options are only available for ELF systems.
@kindex --hash-size=@var{number}
Index: binutils-2.23.1/ld/ldmain.c
Index: binutils-2.23.90/ld/ldmain.c
===================================================================
--- binutils-2.23.1.orig/ld/ldmain.c
+++ binutils-2.23.1/ld/ldmain.c
@@ -275,6 +275,7 @@ main (int argc, char **argv)
--- binutils-2.23.90.orig/ld/ldmain.c 2013-06-22 18:44:15.000000000 +0200
+++ binutils-2.23.90/ld/ldmain.c 2013-09-20 15:31:49.000000000 +0200
@@ -276,6 +276,7 @@ main (int argc, char **argv)
link_info.allow_undefined_version = TRUE;
link_info.keep_memory = TRUE;

18
pie-m68k.patch Normal file
View File

@ -0,0 +1,18 @@
2013-10-08 Andreas Schwab <schwab@suse.de>
* elf32-m68k.c (elf_m68k_size_dynamic_sections): Add DT_DEBUG also
for PIE executables.
diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index a46efb9..34dc75f 100644
--- a/bfd/elf32-m68k.c
+++ b/bfd/elf32-m68k.c
@@ -3367,7 +3367,7 @@ elf_m68k_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
#define add_dynamic_entry(TAG, VAL) \
_bfd_elf_add_dynamic_entry (info, TAG, VAL)
- if (!info->shared)
+ if (info->executable)
{
if (!add_dynamic_entry (DT_DEBUG, 0))
return FALSE;

View File

@ -5,7 +5,7 @@
rm -f cross-*-binutils.spec cross-*-binutils.changes
# sh4 is stuck in the testsuite
for arch in aarch64 hppa hppa64 arm i386 x86_64 s390 s390x ppc ppc64 ia64 sparc sparc64 spu avr mips; do
for arch in aarch64 hppa hppa64 arm i386 x86_64 s390 s390x ppc ppc64 ppc64le ia64 sparc sparc64 spu avr mips m68k; do
echo -n "Building package for $arch --> cross-$arch-binutils ..."

View File

@ -1,7 +1,7 @@
Index: ld/emulparams/elf_s390.sh
===================================================================
--- ld/emulparams/elf_s390.sh.orig
+++ ld/emulparams/elf_s390.sh
--- ld/emulparams/elf_s390.sh.orig 2013-01-10 21:08:02.000000000 +0100
+++ ld/emulparams/elf_s390.sh 2013-09-20 15:20:48.000000000 +0200
@@ -12,3 +12,18 @@ GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes

View File

@ -1,203 +0,0 @@
binutils:e593ec3bee996af0d129eb53b2039d409e6e1d42
2012-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/tc-s390.c (set_highgprs_p): New variable.
(s390_machinemode): New function.
(md_pseudo_table): Add new pseudo command machinemode.
(md_parse_option): Set set_highgprs_p to TRUE if -mzarch was
specified on command line.
(s390_elf_final_processing): Set the highgprs flag in the ELF
header depending on set_highgprs_p.
* doc/c-s390.texi: Document new pseudo machinemode.
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index 9bc582f..47ec175 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -44,6 +44,10 @@ static int s390_arch_size = 0;
static unsigned int current_cpu = S390_OPCODE_MAXCPU - 1;
static unsigned int current_mode_mask = 0;
+/* Set to TRUE if the highgprs flag in the ELF header needs to be set
+ for the output file. */
+static bfd_boolean set_highgprs_p = FALSE;
+
/* Whether to use user friendly register names. Default is TRUE. */
#ifndef TARGET_REG_NAMES_P
#define TARGET_REG_NAMES_P TRUE
@@ -86,22 +90,24 @@ static void s390_bss (int);
static void s390_insn (int);
static void s390_literals (int);
static void s390_machine (int);
+static void s390_machinemode (int);
const pseudo_typeS md_pseudo_table[] =
{
- { "align", s_align_bytes, 0 },
+ { "align", s_align_bytes, 0 },
/* Pseudo-ops which must be defined. */
- { "bss", s390_bss, 0 },
- { "insn", s390_insn, 0 },
+ { "bss", s390_bss, 0 },
+ { "insn", s390_insn, 0 },
/* Pseudo-ops which must be overridden. */
- { "byte", s390_byte, 0 },
- { "short", s390_elf_cons, 2 },
- { "long", s390_elf_cons, 4 },
- { "quad", s390_elf_cons, 8 },
- { "ltorg", s390_literals, 0 },
- { "string", stringer, 8 + 1 },
- { "machine", s390_machine, 0 },
- { NULL, NULL, 0 }
+ { "byte", s390_byte, 0 },
+ { "short", s390_elf_cons, 2 },
+ { "long", s390_elf_cons, 4 },
+ { "quad", s390_elf_cons, 8 },
+ { "ltorg", s390_literals, 0 },
+ { "string", stringer, 8 + 1 },
+ { "machine", s390_machine, 0 },
+ { "machinemode", s390_machinemode, 0 },
+ { NULL, NULL, 0 }
};
@@ -409,7 +415,11 @@ md_parse_option (int c, char *arg)
current_mode_mask = 1 << S390_OPCODE_ESA;
else if (arg != NULL && strcmp (arg, "zarch") == 0)
- current_mode_mask = 1 << S390_OPCODE_ZARCH;
+ {
+ if (s390_arch_size == 32)
+ set_highgprs_p = TRUE;
+ current_mode_mask = 1 << S390_OPCODE_ZARCH;
+ }
else if (arg != NULL && strncmp (arg, "arch=", 5) == 0)
{
@@ -1799,7 +1809,7 @@ s390_literals (int ignore ATTRIBUTE_UNUSED)
/* The .machine pseudo op allows to switch to a different CPU level in
the asm listing. The current CPU setting can be stored on a stack
- with .machine push and restored with .machined pop. */
+ with .machine push and restored with .machine pop. */
static void
s390_machine (int ignore ATTRIBUTE_UNUSED)
@@ -1863,6 +1873,83 @@ s390_machine (int ignore ATTRIBUTE_UNUSED)
demand_empty_rest_of_line ();
}
+/* The .machinemode pseudo op allows to switch to a different
+ architecture mode in the asm listing. The current architecture
+ mode setting can be stored on a stack with .machinemode push and
+ restored with .machinemode pop. */
+
+static void
+s390_machinemode (int ignore ATTRIBUTE_UNUSED)
+{
+ char *mode_string;
+#define MAX_HISTORY 100
+ static unsigned int *mode_history;
+ static int curr_hist;
+
+ SKIP_WHITESPACE ();
+
+ if (*input_line_pointer == '"')
+ {
+ int len;
+ mode_string = demand_copy_C_string (&len);
+ }
+ else
+ {
+ char c;
+ mode_string = input_line_pointer;
+ c = get_symbol_end ();
+ mode_string = xstrdup (mode_string);
+ *input_line_pointer = c;
+ }
+
+ if (mode_string != NULL)
+ {
+ unsigned int old_mode_mask = current_mode_mask;
+ char *p;
+
+ for (p = mode_string; *p != 0; p++)
+ *p = TOLOWER (*p);
+
+ if (strcmp (mode_string, "push") == 0)
+ {
+ if (mode_history == NULL)
+ mode_history = xmalloc (MAX_HISTORY * sizeof (*mode_history));
+
+ if (curr_hist >= MAX_HISTORY)
+ as_bad (_(".machinemode stack overflow"));
+ else
+ mode_history[curr_hist++] = current_mode_mask;
+ }
+ else if (strcmp (mode_string, "pop") == 0)
+ {
+ if (curr_hist <= 0)
+ as_bad (_(".machinemode stack underflow"));
+ else
+ current_mode_mask = mode_history[--curr_hist];
+ }
+ else
+ {
+ if (strcmp (mode_string, "esa") == 0)
+ current_mode_mask = 1 << S390_OPCODE_ESA;
+ else if (strcmp (mode_string, "zarch") == 0)
+ {
+ if (s390_arch_size == 32)
+ set_highgprs_p = TRUE;
+ current_mode_mask = 1 << S390_OPCODE_ZARCH;
+ }
+ else if (strcmp (mode_string, "zarch_nohighgprs") == 0)
+ current_mode_mask = 1 << S390_OPCODE_ZARCH;
+ else
+ as_bad (_("invalid machine `%s'"), mode_string);
+ }
+
+ if (current_mode_mask != old_mode_mask)
+ s390_setup_opcodes ();
+ }
+
+ demand_empty_rest_of_line ();
+}
+
char *
md_atof (int type, char *litp, int *sizep)
{
@@ -2381,6 +2468,6 @@ tc_s390_regname_to_dw2regnum (char *regname)
void
s390_elf_final_processing (void)
{
- if (s390_arch_size == 32 && (current_mode_mask & (1 << S390_OPCODE_ZARCH)))
+ if (set_highgprs_p)
elf_elfheader (stdoutput)->e_flags |= EF_S390_HIGH_GPRS;
}
diff --git a/gas/doc/c-s390.texi b/gas/doc/c-s390.texi
index 7971327..76dc144 100644
--- a/gas/doc/c-s390.texi
+++ b/gas/doc/c-s390.texi
@@ -873,6 +873,19 @@ restored with @code{.machine pop}. Be aware that the cpu string has
to be put into double quotes in case it contains characters not
appropriate for identifiers. So you have to write @code{"z9-109"}
instead of just @code{z9-109}.
+
+@cindex @code{.machinemode} directive, s390
+@item .machinemode string
+This directive allows to change the architecture mode for which code
+is being generated. @code{string} may be @code{esa}, @code{zarch},
+@code{zarch_nohighgprs}, @code{push}, or @code{pop}.
+@code{.machinemode zarch_nohighgprs} can be used to prevent the
+@code{highgprs} flag from being set in the ELF header of the output
+file. This is useful in situations where the code is gated with a
+runtime check which makes sure that the code is only executed on
+kernels providing the @code{highgprs} feature.
+@code{.machinemode push} saves the currently selected mode, which may
+be restored with @code{.machinemode pop}.
@end table
@node s390 Floating Point

View File

@ -1,6 +1,8 @@
--- bfd/elf32-s390.c.orig 2013-04-03 15:04:56.274458632 +0200
+++ bfd/elf32-s390.c 2013-04-03 15:06:35.071564928 +0200
@@ -2649,13 +2649,34 @@
Index: bfd/elf32-s390.c
===================================================================
--- bfd/elf32-s390.c.orig 2013-09-20 16:04:50.000000000 +0200
+++ bfd/elf32-s390.c 2013-09-20 16:10:02.000000000 +0200
@@ -2707,15 +2707,36 @@ elf_s390_relocate_section (bfd *output_b
unresolved_reloc = FALSE;
break;
@ -8,7 +10,9 @@
- case R_390_16:
- case R_390_32:
case R_390_PC16:
case R_390_PC12DBL:
case R_390_PC16DBL:
case R_390_PC24DBL:
case R_390_PC32DBL:
case R_390_PC32:
+ /* This is strictly required only for PC32DBL, which

View File

@ -1,161 +0,0 @@
2013-07-25 Alan Modra <amodra@gmail.com>
PR ld/15762
PR ld/12761
* elflink.c (elf_link_add_object_symbols): Correct test in
last patch. Remove unnecessary code.
2013-07-20 Alan Modra <amodra@gmail.com>
PR ld/15762
PR ld/12761
* elflink.c (elf_link_add_object_symbols): Don't clobber
.gnu.warning.symbol sections when shared.
Index: binutils-2.23.2/bfd/elflink.c
===================================================================
--- binutils-2.23.2.orig/bfd/elflink.c
+++ binutils-2.23.2/bfd/elflink.c
@@ -3368,6 +3368,7 @@ elf_link_add_object_symbols (bfd *abfd,
bfd_size_type old_dynstr_size = 0;
size_t tabsize = 0;
size_t hashsize = 0;
+ asection *s;
htab = elf_hash_table (info);
bed = get_elf_backend_data (abfd);
@@ -3409,75 +3410,64 @@ elf_link_add_object_symbols (bfd *abfd,
symbol. This differs from .gnu.warning sections, which generate
warnings when they are included in an output file. */
/* PR 12761: Also generate this warning when building shared libraries. */
- if (info->executable || info->shared)
+ for (s = abfd->sections; s != NULL; s = s->next)
{
- asection *s;
+ const char *name;
- for (s = abfd->sections; s != NULL; s = s->next)
+ name = bfd_get_section_name (abfd, s);
+ if (CONST_STRNEQ (name, ".gnu.warning."))
{
- const char *name;
+ char *msg;
+ bfd_size_type sz;
- name = bfd_get_section_name (abfd, s);
- if (CONST_STRNEQ (name, ".gnu.warning."))
+ name += sizeof ".gnu.warning." - 1;
+
+ /* If this is a shared object, then look up the symbol
+ in the hash table. If it is there, and it is already
+ been defined, then we will not be using the entry
+ from this shared object, so we don't need to warn.
+ FIXME: If we see the definition in a regular object
+ later on, we will warn, but we shouldn't. The only
+ fix is to keep track of what warnings we are supposed
+ to emit, and then handle them all at the end of the
+ link. */
+ if (dynamic)
{
- char *msg;
- bfd_size_type sz;
+ struct elf_link_hash_entry *h;
+
+ h = elf_link_hash_lookup (htab, name, FALSE, FALSE, TRUE);
+
+ /* FIXME: What about bfd_link_hash_common? */
+ if (h != NULL
+ && (h->root.type == bfd_link_hash_defined
+ || h->root.type == bfd_link_hash_defweak))
+ continue;
+ }
- name += sizeof ".gnu.warning." - 1;
+ sz = s->size;
+ msg = (char *) bfd_alloc (abfd, sz + 1);
+ if (msg == NULL)
+ goto error_return;
- /* If this is a shared object, then look up the symbol
- in the hash table. If it is there, and it is already
- been defined, then we will not be using the entry
- from this shared object, so we don't need to warn.
- FIXME: If we see the definition in a regular object
- later on, we will warn, but we shouldn't. The only
- fix is to keep track of what warnings we are supposed
- to emit, and then handle them all at the end of the
- link. */
- if (dynamic)
- {
- struct elf_link_hash_entry *h;
-
- h = elf_link_hash_lookup (htab, name, FALSE, FALSE, TRUE);
-
- /* FIXME: What about bfd_link_hash_common? */
- if (h != NULL
- && (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak))
- {
- /* We don't want to issue this warning. Clobber
- the section size so that the warning does not
- get copied into the output file. */
- s->size = 0;
- continue;
- }
- }
-
- sz = s->size;
- msg = (char *) bfd_alloc (abfd, sz + 1);
- if (msg == NULL)
- goto error_return;
-
- if (! bfd_get_section_contents (abfd, s, msg, 0, sz))
- goto error_return;
-
- msg[sz] = '\0';
-
- if (! (_bfd_generic_link_add_one_symbol
- (info, abfd, name, BSF_WARNING, s, 0, msg,
- FALSE, bed->collect, NULL)))
- goto error_return;
-
- if (! info->relocatable)
- {
- /* Clobber the section size so that the warning does
- not get copied into the output file. */
- s->size = 0;
-
- /* Also set SEC_EXCLUDE, so that symbols defined in
- the warning section don't get copied to the output. */
- s->flags |= SEC_EXCLUDE;
- }
+ if (! bfd_get_section_contents (abfd, s, msg, 0, sz))
+ goto error_return;
+
+ msg[sz] = '\0';
+
+ if (! (_bfd_generic_link_add_one_symbol
+ (info, abfd, name, BSF_WARNING, s, 0, msg,
+ FALSE, bed->collect, NULL)))
+ goto error_return;
+
+ if (!info->relocatable && info->executable)
+ {
+ /* Clobber the section size so that the warning does
+ not get copied into the output file. */
+ s->size = 0;
+
+ /* Also set SEC_EXCLUDE, so that symbols defined in
+ the warning section don't get copied to the output. */
+ s->flags |= SEC_EXCLUDE;
}
}
}
@@ -3503,7 +3493,6 @@ elf_link_add_object_symbols (bfd *abfd,
goto error_return;
else
{
- asection *s;
const char *soname = NULL;
char *audit = NULL;
struct bfd_link_needed_list *rpath = NULL, *runpath = NULL;

View File

@ -1,13 +1,12 @@
Index: ld/emulparams/elf_i386.sh
===================================================================
--- ld/emulparams/elf_i386.sh.orig 2012-06-11 15:23:50.000000000 +0200
+++ ld/emulparams/elf_i386.sh 2012-09-14 14:00:17.501168779 +0200
@@ -13,3 +13,8 @@ GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
IREL_IN_PLT=
+
+# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first.
+case "$EMULATION_NAME" in
--- ld/emulparams/elf_i386.sh.orig 2013-09-20 15:29:51.000000000 +0200
+++ ld/emulparams/elf_i386.sh 2013-09-20 15:30:48.000000000 +0200
@@ -20,6 +20,7 @@ case "$target" in
x86_64*-linux* | i[3-7]86*-linux*)
case "$EMULATION_NAME" in
*i386*) LIBPATH_SUFFIX=32 ;;
+ *64*) LIBPATH_SUFFIX=64 ;;
+esac
esac
;;
esac