build with --enable-plugins [release 2.24-2mamba;Fri May 02 2014]
This commit is contained in:
parent
d60e96f7ac
commit
f29b8a1970
12
README.md
12
README.md
@ -1,2 +1,14 @@
|
||||
# binutils
|
||||
|
||||
Binutils is a collection of binary utilities, including:
|
||||
* ar: creating modifying and extracting from archives
|
||||
* nm: for listing symbols from object files
|
||||
* objcopy: for copying and translating object files
|
||||
* objdump: for displaying information from object files
|
||||
* ranlib: for generating an index for the contents of an archive
|
||||
* size: for listing the section sizes of an object or archive file
|
||||
* strings: for listing printable strings from files
|
||||
* strip: for discarding symbols (a filter for demangling encoded C++ symbols
|
||||
* addr2line: for converting addresses to file and line
|
||||
* nlmconv: for converting object code into an NLM
|
||||
|
||||
|
14
binutils-2.16.1-native-lib-dirs.patch
Normal file
14
binutils-2.16.1-native-lib-dirs.patch
Normal file
@ -0,0 +1,14 @@
|
||||
diff -Nru binutils-2.16.1.orig/ld/configure.tgt binutils-2.16.1/ld/configure.tgt
|
||||
--- binutils-2.16.1.orig/ld/configure.tgt 2005-08-01 18:25:53.000000000 +0200
|
||||
+++ binutils-2.16.1/ld/configure.tgt 2005-08-01 18:28:12.000000000 +0200
|
||||
@@ -620,6 +620,10 @@
|
||||
NATIVE_LIB_DIRS='/usr/lib /usr/lib/w32api'
|
||||
;;
|
||||
|
||||
+ppc-*-linux* | powerpc-*-linux*)
|
||||
+ NATIVE_LIB_DIRS='/usr/local/lib /lib/ppc /lib /usr/lib'
|
||||
+ ;;
|
||||
+
|
||||
*-*-linux*)
|
||||
;;
|
||||
|
12
binutils-2.18-makeinfo_check.patch
Normal file
12
binutils-2.18-makeinfo_check.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -Nru binutils-2.18.orig/configure binutils-2.18/configure
|
||||
--- binutils-2.18.orig/configure 2007-08-06 22:29:40.000000000 +0200
|
||||
+++ binutils-2.18/configure 2007-11-28 18:40:18.000000000 +0100
|
||||
@@ -6128,7 +6128,7 @@
|
||||
# For an installed makeinfo, we require it to be from texinfo 4.4 or
|
||||
# higher, else we use the "missing" dummy.
|
||||
if ${MAKEINFO} --version \
|
||||
- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
|
||||
+ | egrep 'texinfo[^0-9]*(4\.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
|
||||
:
|
||||
else
|
||||
MAKEINFO="$MISSING makeinfo"
|
22
binutils-2.19-readelf-CAN-2005-1704.patch
Normal file
22
binutils-2.19-readelf-CAN-2005-1704.patch
Normal file
@ -0,0 +1,22 @@
|
||||
--- binutils-2.16.1/binutils/readelf.c.orig 2005-06-16 12:25:11.000000000 +0200
|
||||
+++ binutils-2.16.1/binutils/readelf.c 2005-06-16 12:33:37.000000000 +0200
|
||||
@@ -4123,6 +4123,19 @@ process_section_groups (FILE *file)
|
||||
entry = byte_get (indices, 4);
|
||||
indices += 4;
|
||||
|
||||
+ if (entry >= elf_header.e_shnum)
|
||||
+ {
|
||||
+ error (_("section [%5u] in group section [%5u] > maximum section [%5u]\n"),
|
||||
+ entry, i, elf_header.e_shnum - 1);
|
||||
+ continue;
|
||||
+ }
|
||||
+ else if (entry >= SHN_LORESERVE && entry <= SHN_HIRESERVE)
|
||||
+ {
|
||||
+ error (_("invalid section [%5u] in group section [%5u]\n"),
|
||||
+ entry, i);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
if (do_section_groups)
|
||||
{
|
||||
printf ("\n%s group section [%5u] `%s' [%s] contains %u sections:\n",
|
@ -0,0 +1,34 @@
|
||||
diff -Nru binutils-2.20.1.orig//binutils/Makefile.in binutils-2.20.1/binutils/Makefile.in
|
||||
--- binutils-2.20.1.orig//binutils/Makefile.in 2010-03-03 14:59:46.000000000 +0100
|
||||
+++ binutils-2.20.1/binutils/Makefile.in 2010-04-13 00:54:33.841153767 +0200
|
||||
@@ -1193,24 +1193,24 @@
|
||||
./sysinfo$(EXEEXT_FOR_BUILD) -d <$(srcdir)/sysroff.info >sysroff.h
|
||||
|
||||
sysinfo$(EXEEXT_FOR_BUILD): sysinfo.o syslex.o
|
||||
- $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o
|
||||
+ LD_LIBRARY_PATH= $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o
|
||||
|
||||
syslex.o: syslex.c sysinfo.h config.h
|
||||
if [ -r syslex.c ]; then \
|
||||
- $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) syslex.c ; \
|
||||
+ LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) syslex.c ; \
|
||||
else \
|
||||
- $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/syslex.c ;\
|
||||
+ LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/syslex.c ;\
|
||||
fi
|
||||
|
||||
sysinfo.o: sysinfo.c
|
||||
if [ -r sysinfo.c ]; then \
|
||||
- $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) sysinfo.c ; \
|
||||
+ LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) sysinfo.c ; \
|
||||
else \
|
||||
- $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/sysinfo.c ; \
|
||||
+ LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/sysinfo.c ; \
|
||||
fi
|
||||
|
||||
bin2c$(EXEEXT_FOR_BUILD):
|
||||
- $(CC_FOR_BUILD) -o $@ $(AM_CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(srcdir)/bin2c.c $(srcdir)/version.c
|
||||
+ LD_LIBRARY_PATH= $(CC_FOR_BUILD) -o $@ $(AM_CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(srcdir)/bin2c.c $(srcdir)/version.c
|
||||
|
||||
embedspu: embedspu.sh
|
||||
sed "s@^program_transform_name=@program_transform_name=$(program_transform_name)@" < $< > $@
|
47
binutils-2.22-build-id.patch
Normal file
47
binutils-2.22-build-id.patch
Normal file
@ -0,0 +1,47 @@
|
||||
--- bfd/compress.c.jj 2010-12-24 11:40:19.000000000 +0100
|
||||
+++ bfd/compress.c 2011-01-28 15:40:19.869777126 +0100
|
||||
@@ -174,7 +174,7 @@ bfd_get_full_section_contents (bfd *abfd
|
||||
case COMPRESS_SECTION_NONE:
|
||||
if (p == NULL)
|
||||
{
|
||||
- p = (bfd_byte *) bfd_malloc (sz);
|
||||
+ p = (bfd_byte *) bfd_zmalloc (sz);
|
||||
if (p == NULL)
|
||||
return FALSE;
|
||||
}
|
||||
@@ -214,7 +214,7 @@ bfd_get_full_section_contents (bfd *abfd
|
||||
if (!ret)
|
||||
goto fail_compressed;
|
||||
|
||||
- uncompressed_buffer = (bfd_byte *) bfd_malloc (uncompressed_size);
|
||||
+ uncompressed_buffer = (bfd_byte *) bfd_zmalloc (uncompressed_size);
|
||||
if (uncompressed_buffer == NULL)
|
||||
goto fail_compressed;
|
||||
|
||||
--- bfd/elfcode.h.jj 2010-12-31 03:43:21.000000000 +0100
|
||||
+++ bfd/elfcode.h 2011-01-28 15:34:39.055388479 +0100
|
||||
@@ -1158,6 +1158,24 @@ elf_checksum_contents (bfd *abfd,
|
||||
|
||||
if (i_shdr.contents)
|
||||
(*process) (i_shdr.contents, i_shdr.sh_size, arg);
|
||||
+ else
|
||||
+ {
|
||||
+ asection *sec;
|
||||
+
|
||||
+ sec = bfd_section_from_elf_index (abfd, count);
|
||||
+ if (sec != NULL)
|
||||
+ {
|
||||
+ if (sec->contents == NULL)
|
||||
+ {
|
||||
+ /* Force rereading from file. */
|
||||
+ sec->flags &= ~SEC_IN_MEMORY;
|
||||
+ if (! bfd_malloc_and_get_section (abfd, sec, & sec->contents))
|
||||
+ continue;
|
||||
+ }
|
||||
+ if (sec->contents != NULL)
|
||||
+ (*process) (sec->contents, i_shdr.sh_size, arg);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
return TRUE;
|
263
binutils-2.22-gcc-4.7-gold-casts.patch
Normal file
263
binutils-2.22-gcc-4.7-gold-casts.patch
Normal file
@ -0,0 +1,263 @@
|
||||
diff -cp ../binutils-2.22.orig/gold/dwarf_reader.cc gold/dwarf_reader.cc
|
||||
*** ../binutils-2.22.orig/gold/dwarf_reader.cc 2012-01-13 12:20:00.279690374 +0000
|
||||
--- gold/dwarf_reader.cc 2012-01-13 12:22:26.500694442 +0000
|
||||
*************** Sized_dwarf_line_info<size, big_endian>:
|
||||
*** 491,498 ****
|
||||
&& (shndx == -1U || lsm.shndx == -1U || shndx == lsm.shndx))
|
||||
{
|
||||
Offset_to_lineno_entry entry
|
||||
! = { lsm.address, this->current_header_index_,
|
||||
! lsm.file_num, true, lsm.line_num };
|
||||
std::vector<Offset_to_lineno_entry>&
|
||||
map(this->line_number_map_[lsm.shndx]);
|
||||
// If we see two consecutive entries with the same
|
||||
--- 491,498 ----
|
||||
&& (shndx == -1U || lsm.shndx == -1U || shndx == lsm.shndx))
|
||||
{
|
||||
Offset_to_lineno_entry entry
|
||||
! = { (off_t) lsm.address, this->current_header_index_,
|
||||
! (unsigned int) lsm.file_num, true, lsm.line_num };
|
||||
std::vector<Offset_to_lineno_entry>&
|
||||
map(this->line_number_map_[lsm.shndx]);
|
||||
// If we see two consecutive entries with the same
|
||||
Common subdirectories: ../binutils-2.22.orig/gold/gcctestdir1 and gold/gcctestdir1
|
||||
Common subdirectories: ../binutils-2.22.orig/gold/gcctestdir2 and gold/gcctestdir2
|
||||
Common subdirectories: ../binutils-2.22.orig/gold/gcctestdir2-r and gold/gcctestdir2-r
|
||||
diff -cp ../binutils-2.22.orig/gold/i386.cc gold/i386.cc
|
||||
*** ../binutils-2.22.orig/gold/i386.cc 2012-01-13 12:20:00.355690373 +0000
|
||||
--- gold/i386.cc 2012-01-13 12:23:48.407696800 +0000
|
||||
*************** Target_i386::do_code_fill(section_size_t
|
||||
*** 3480,3529 ****
|
||||
}
|
||||
|
||||
// Nop sequences of various lengths.
|
||||
! const char nop1[1] = { 0x90 }; // nop
|
||||
! const char nop2[2] = { 0x66, 0x90 }; // xchg %ax %ax
|
||||
! const char nop3[3] = { 0x8d, 0x76, 0x00 }; // leal 0(%esi),%esi
|
||||
! const char nop4[4] = { 0x8d, 0x74, 0x26, 0x00}; // leal 0(%esi,1),%esi
|
||||
! const char nop5[5] = { 0x90, 0x8d, 0x74, 0x26, // nop
|
||||
0x00 }; // leal 0(%esi,1),%esi
|
||||
! const char nop6[6] = { 0x8d, 0xb6, 0x00, 0x00, // leal 0L(%esi),%esi
|
||||
0x00, 0x00 };
|
||||
! const char nop7[7] = { 0x8d, 0xb4, 0x26, 0x00, // leal 0L(%esi,1),%esi
|
||||
0x00, 0x00, 0x00 };
|
||||
! const char nop8[8] = { 0x90, 0x8d, 0xb4, 0x26, // nop
|
||||
0x00, 0x00, 0x00, 0x00 }; // leal 0L(%esi,1),%esi
|
||||
! const char nop9[9] = { 0x89, 0xf6, 0x8d, 0xbc, // movl %esi,%esi
|
||||
0x27, 0x00, 0x00, 0x00, // leal 0L(%edi,1),%edi
|
||||
0x00 };
|
||||
! const char nop10[10] = { 0x8d, 0x76, 0x00, 0x8d, // leal 0(%esi),%esi
|
||||
0xbc, 0x27, 0x00, 0x00, // leal 0L(%edi,1),%edi
|
||||
0x00, 0x00 };
|
||||
! const char nop11[11] = { 0x8d, 0x74, 0x26, 0x00, // leal 0(%esi,1),%esi
|
||||
0x8d, 0xbc, 0x27, 0x00, // leal 0L(%edi,1),%edi
|
||||
0x00, 0x00, 0x00 };
|
||||
! const char nop12[12] = { 0x8d, 0xb6, 0x00, 0x00, // leal 0L(%esi),%esi
|
||||
0x00, 0x00, 0x8d, 0xbf, // leal 0L(%edi),%edi
|
||||
0x00, 0x00, 0x00, 0x00 };
|
||||
! const char nop13[13] = { 0x8d, 0xb6, 0x00, 0x00, // leal 0L(%esi),%esi
|
||||
0x00, 0x00, 0x8d, 0xbc, // leal 0L(%edi,1),%edi
|
||||
0x27, 0x00, 0x00, 0x00,
|
||||
0x00 };
|
||||
! const char nop14[14] = { 0x8d, 0xb4, 0x26, 0x00, // leal 0L(%esi,1),%esi
|
||||
0x00, 0x00, 0x00, 0x8d, // leal 0L(%edi,1),%edi
|
||||
0xbc, 0x27, 0x00, 0x00,
|
||||
0x00, 0x00 };
|
||||
! const char nop15[15] = { 0xeb, 0x0d, 0x90, 0x90, // jmp .+15
|
||||
0x90, 0x90, 0x90, 0x90, // nop,nop,nop,...
|
||||
0x90, 0x90, 0x90, 0x90,
|
||||
0x90, 0x90, 0x90 };
|
||||
|
||||
! const char* nops[16] = {
|
||||
NULL,
|
||||
nop1, nop2, nop3, nop4, nop5, nop6, nop7,
|
||||
nop8, nop9, nop10, nop11, nop12, nop13, nop14, nop15
|
||||
};
|
||||
|
||||
! return std::string(nops[length], length);
|
||||
}
|
||||
|
||||
// Return the value to use for the base of a DW_EH_PE_datarel offset
|
||||
--- 3480,3529 ----
|
||||
}
|
||||
|
||||
// Nop sequences of various lengths.
|
||||
! const unsigned char nop1[1] = { 0x90 }; // nop
|
||||
! const unsigned char nop2[2] = { 0x66, 0x90 }; // xchg %ax %ax
|
||||
! const unsigned char nop3[3] = { 0x8d, 0x76, 0x00 }; // leal 0(%esi),%esi
|
||||
! const unsigned char nop4[4] = { 0x8d, 0x74, 0x26, 0x00}; // leal 0(%esi,1),%esi
|
||||
! const unsigned char nop5[5] = { 0x90, 0x8d, 0x74, 0x26, // nop
|
||||
0x00 }; // leal 0(%esi,1),%esi
|
||||
! const unsigned char nop6[6] = { 0x8d, 0xb6, 0x00, 0x00, // leal 0L(%esi),%esi
|
||||
0x00, 0x00 };
|
||||
! const unsigned char nop7[7] = { 0x8d, 0xb4, 0x26, 0x00, // leal 0L(%esi,1),%esi
|
||||
0x00, 0x00, 0x00 };
|
||||
! const unsigned char nop8[8] = { 0x90, 0x8d, 0xb4, 0x26, // nop
|
||||
0x00, 0x00, 0x00, 0x00 }; // leal 0L(%esi,1),%esi
|
||||
! const unsigned char nop9[9] = { 0x89, 0xf6, 0x8d, 0xbc, // movl %esi,%esi
|
||||
0x27, 0x00, 0x00, 0x00, // leal 0L(%edi,1),%edi
|
||||
0x00 };
|
||||
! const unsigned char nop10[10] = { 0x8d, 0x76, 0x00, 0x8d, // leal 0(%esi),%esi
|
||||
0xbc, 0x27, 0x00, 0x00, // leal 0L(%edi,1),%edi
|
||||
0x00, 0x00 };
|
||||
! const unsigned char nop11[11] = { 0x8d, 0x74, 0x26, 0x00, // leal 0(%esi,1),%esi
|
||||
0x8d, 0xbc, 0x27, 0x00, // leal 0L(%edi,1),%edi
|
||||
0x00, 0x00, 0x00 };
|
||||
! const unsigned char nop12[12] = { 0x8d, 0xb6, 0x00, 0x00, // leal 0L(%esi),%esi
|
||||
0x00, 0x00, 0x8d, 0xbf, // leal 0L(%edi),%edi
|
||||
0x00, 0x00, 0x00, 0x00 };
|
||||
! const unsigned char nop13[13] = { 0x8d, 0xb6, 0x00, 0x00, // leal 0L(%esi),%esi
|
||||
0x00, 0x00, 0x8d, 0xbc, // leal 0L(%edi,1),%edi
|
||||
0x27, 0x00, 0x00, 0x00,
|
||||
0x00 };
|
||||
! const unsigned char nop14[14] = { 0x8d, 0xb4, 0x26, 0x00, // leal 0L(%esi,1),%esi
|
||||
0x00, 0x00, 0x00, 0x8d, // leal 0L(%edi,1),%edi
|
||||
0xbc, 0x27, 0x00, 0x00,
|
||||
0x00, 0x00 };
|
||||
! const unsigned char nop15[15] = { 0xeb, 0x0d, 0x90, 0x90, // jmp .+15
|
||||
0x90, 0x90, 0x90, 0x90, // nop,nop,nop,...
|
||||
0x90, 0x90, 0x90, 0x90,
|
||||
0x90, 0x90, 0x90 };
|
||||
|
||||
! const unsigned char* nops[16] = {
|
||||
NULL,
|
||||
nop1, nop2, nop3, nop4, nop5, nop6, nop7,
|
||||
nop8, nop9, nop10, nop11, nop12, nop13, nop14, nop15
|
||||
};
|
||||
|
||||
! return std::string((const char *) nops[length], length);
|
||||
}
|
||||
|
||||
// Return the value to use for the base of a DW_EH_PE_datarel offset
|
||||
Common subdirectories: ../binutils-2.22.orig/gold/po and gold/po
|
||||
diff -cp ../binutils-2.22.orig/gold/resolve.cc gold/resolve.cc
|
||||
*** ../binutils-2.22.orig/gold/resolve.cc 2012-01-13 12:20:00.288690373 +0000
|
||||
--- gold/resolve.cc 2012-01-13 12:24:29.576697764 +0000
|
||||
*************** Symbol_table::resolve(Sized_symbol<size>
|
||||
*** 336,344 ****
|
||||
&& to->name()[0] == '_' && to->name()[1] == 'Z')
|
||||
{
|
||||
Symbol_location fromloc
|
||||
! = { object, orig_st_shndx, sym.get_st_value() };
|
||||
Symbol_location toloc = { to->object(), to->shndx(&to_is_ordinary),
|
||||
! to->value() };
|
||||
this->candidate_odr_violations_[to->name()].insert(fromloc);
|
||||
this->candidate_odr_violations_[to->name()].insert(toloc);
|
||||
}
|
||||
--- 336,344 ----
|
||||
&& to->name()[0] == '_' && to->name()[1] == 'Z')
|
||||
{
|
||||
Symbol_location fromloc
|
||||
! = { object, orig_st_shndx, (off_t) sym.get_st_value() };
|
||||
Symbol_location toloc = { to->object(), to->shndx(&to_is_ordinary),
|
||||
! (off_t) to->value() };
|
||||
this->candidate_odr_violations_[to->name()].insert(fromloc);
|
||||
this->candidate_odr_violations_[to->name()].insert(toloc);
|
||||
}
|
||||
Common subdirectories: ../binutils-2.22.orig/gold/testsuite and gold/testsuite
|
||||
diff -cp ../binutils-2.22.orig/gold/x86_64.cc gold/x86_64.cc
|
||||
*** ../binutils-2.22.orig/gold/x86_64.cc 2012-01-13 12:21:24.880692697 +0000
|
||||
--- gold/x86_64.cc 2012-01-13 12:25:36.219699685 +0000
|
||||
*************** Target_x86_64::do_code_fill(section_size
|
||||
*** 3867,3916 ****
|
||||
}
|
||||
|
||||
// Nop sequences of various lengths.
|
||||
! const char nop1[1] = { 0x90 }; // nop
|
||||
! const char nop2[2] = { 0x66, 0x90 }; // xchg %ax %ax
|
||||
! const char nop3[3] = { 0x0f, 0x1f, 0x00 }; // nop (%rax)
|
||||
! const char nop4[4] = { 0x0f, 0x1f, 0x40, 0x00}; // nop 0(%rax)
|
||||
! const char nop5[5] = { 0x0f, 0x1f, 0x44, 0x00, // nop 0(%rax,%rax,1)
|
||||
0x00 };
|
||||
! const char nop6[6] = { 0x66, 0x0f, 0x1f, 0x44, // nopw 0(%rax,%rax,1)
|
||||
0x00, 0x00 };
|
||||
! const char nop7[7] = { 0x0f, 0x1f, 0x80, 0x00, // nopl 0L(%rax)
|
||||
0x00, 0x00, 0x00 };
|
||||
! const char nop8[8] = { 0x0f, 0x1f, 0x84, 0x00, // nopl 0L(%rax,%rax,1)
|
||||
0x00, 0x00, 0x00, 0x00 };
|
||||
! const char nop9[9] = { 0x66, 0x0f, 0x1f, 0x84, // nopw 0L(%rax,%rax,1)
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00 };
|
||||
! const char nop10[10] = { 0x66, 0x2e, 0x0f, 0x1f, // nopw %cs:0L(%rax,%rax,1)
|
||||
0x84, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00 };
|
||||
! const char nop11[11] = { 0x66, 0x66, 0x2e, 0x0f, // data16
|
||||
0x1f, 0x84, 0x00, 0x00, // nopw %cs:0L(%rax,%rax,1)
|
||||
0x00, 0x00, 0x00 };
|
||||
! const char nop12[12] = { 0x66, 0x66, 0x66, 0x2e, // data16; data16
|
||||
0x0f, 0x1f, 0x84, 0x00, // nopw %cs:0L(%rax,%rax,1)
|
||||
0x00, 0x00, 0x00, 0x00 };
|
||||
! const char nop13[13] = { 0x66, 0x66, 0x66, 0x66, // data16; data16; data16
|
||||
0x2e, 0x0f, 0x1f, 0x84, // nopw %cs:0L(%rax,%rax,1)
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00 };
|
||||
! const char nop14[14] = { 0x66, 0x66, 0x66, 0x66, // data16; data16; data16
|
||||
0x66, 0x2e, 0x0f, 0x1f, // data16
|
||||
0x84, 0x00, 0x00, 0x00, // nopw %cs:0L(%rax,%rax,1)
|
||||
0x00, 0x00 };
|
||||
! const char nop15[15] = { 0x66, 0x66, 0x66, 0x66, // data16; data16; data16
|
||||
0x66, 0x66, 0x2e, 0x0f, // data16; data16
|
||||
0x1f, 0x84, 0x00, 0x00, // nopw %cs:0L(%rax,%rax,1)
|
||||
0x00, 0x00, 0x00 };
|
||||
|
||||
! const char* nops[16] = {
|
||||
NULL,
|
||||
nop1, nop2, nop3, nop4, nop5, nop6, nop7,
|
||||
nop8, nop9, nop10, nop11, nop12, nop13, nop14, nop15
|
||||
};
|
||||
|
||||
! return std::string(nops[length], length);
|
||||
}
|
||||
|
||||
// Return the addend to use for a target specific relocation. The
|
||||
--- 3867,3916 ----
|
||||
}
|
||||
|
||||
// Nop sequences of various lengths.
|
||||
! const unsigned char nop1[1] = { 0x90 }; // nop
|
||||
! const unsigned char nop2[2] = { 0x66, 0x90 }; // xchg %ax %ax
|
||||
! const unsigned char nop3[3] = { 0x0f, 0x1f, 0x00 }; // nop (%rax)
|
||||
! const unsigned char nop4[4] = { 0x0f, 0x1f, 0x40, 0x00}; // nop 0(%rax)
|
||||
! const unsigned char nop5[5] = { 0x0f, 0x1f, 0x44, 0x00, // nop 0(%rax,%rax,1)
|
||||
0x00 };
|
||||
! const unsigned char nop6[6] = { 0x66, 0x0f, 0x1f, 0x44, // nopw 0(%rax,%rax,1)
|
||||
0x00, 0x00 };
|
||||
! const unsigned char nop7[7] = { 0x0f, 0x1f, 0x80, 0x00, // nopl 0L(%rax)
|
||||
0x00, 0x00, 0x00 };
|
||||
! const unsigned char nop8[8] = { 0x0f, 0x1f, 0x84, 0x00, // nopl 0L(%rax,%rax,1)
|
||||
0x00, 0x00, 0x00, 0x00 };
|
||||
! const unsigned char nop9[9] = { 0x66, 0x0f, 0x1f, 0x84, // nopw 0L(%rax,%rax,1)
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00 };
|
||||
! const unsigned char nop10[10] = { 0x66, 0x2e, 0x0f, 0x1f, // nopw %cs:0L(%rax,%rax,1)
|
||||
0x84, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00 };
|
||||
! const unsigned char nop11[11] = { 0x66, 0x66, 0x2e, 0x0f, // data16
|
||||
0x1f, 0x84, 0x00, 0x00, // nopw %cs:0L(%rax,%rax,1)
|
||||
0x00, 0x00, 0x00 };
|
||||
! const unsigned char nop12[12] = { 0x66, 0x66, 0x66, 0x2e, // data16; data16
|
||||
0x0f, 0x1f, 0x84, 0x00, // nopw %cs:0L(%rax,%rax,1)
|
||||
0x00, 0x00, 0x00, 0x00 };
|
||||
! const unsigned char nop13[13] = { 0x66, 0x66, 0x66, 0x66, // data16; data16; data16
|
||||
0x2e, 0x0f, 0x1f, 0x84, // nopw %cs:0L(%rax,%rax,1)
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00 };
|
||||
! const unsigned char nop14[14] = { 0x66, 0x66, 0x66, 0x66, // data16; data16; data16
|
||||
0x66, 0x2e, 0x0f, 0x1f, // data16
|
||||
0x84, 0x00, 0x00, 0x00, // nopw %cs:0L(%rax,%rax,1)
|
||||
0x00, 0x00 };
|
||||
! const unsigned char nop15[15] = { 0x66, 0x66, 0x66, 0x66, // data16; data16; data16
|
||||
0x66, 0x66, 0x2e, 0x0f, // data16; data16
|
||||
0x1f, 0x84, 0x00, 0x00, // nopw %cs:0L(%rax,%rax,1)
|
||||
0x00, 0x00, 0x00 };
|
||||
|
||||
! const unsigned char* nops[16] = {
|
||||
NULL,
|
||||
nop1, nop2, nop3, nop4, nop5, nop6, nop7,
|
||||
nop8, nop9, nop10, nop11, nop12, nop13, nop14, nop15
|
||||
};
|
||||
|
||||
! return std::string((const char *) nops[length], length);
|
||||
}
|
||||
|
||||
// Return the addend to use for a target specific relocation. The
|
12
binutils-2.22-gold-fix_pointer_reference.patch
Normal file
12
binutils-2.22-gold-fix_pointer_reference.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -Nru binutils-2.22.orig/gold/options.cc binutils-2.22/gold/options.cc
|
||||
--- binutils-2.22.orig/gold/options.cc 2011-07-11 16:19:51.000000000 +0000
|
||||
+++ binutils-2.22/gold/options.cc 2012-07-31 14:52:22.178701142 +0000
|
||||
@@ -198,7 +198,7 @@
|
||||
{
|
||||
char* endptr;
|
||||
*retval = strtol(arg, &endptr, 0);
|
||||
- if (*endptr != '\0' || retval < 0)
|
||||
+ if (*endptr != '\0' || *retval < 0)
|
||||
gold_fatal(_("%s: invalid option value (expected an integer): %s"),
|
||||
option_name, arg);
|
||||
}
|
131
binutils-2.22-x86_64-add_support_for_delayed_load_feature.patch
Normal file
131
binutils-2.22-x86_64-add_support_for_delayed_load_feature.patch
Normal file
@ -0,0 +1,131 @@
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/binutils/dlltool.c,v
|
||||
retrieving revision 1.104
|
||||
retrieving revision 1.105
|
||||
diff -u -r1.104 -r1.105
|
||||
--- src/binutils/dlltool.c 2012/02/09 04:51:44 1.104
|
||||
+++ src/binutils/dlltool.c 2012/02/21 16:10:12 1.105
|
||||
@@ -515,6 +515,14 @@
|
||||
0xE9, 0x00, 0x00, 0x00, 0x00 /* jmp __tailMerge__dllname */
|
||||
};
|
||||
|
||||
+static const unsigned char i386_x64_dljtab[] =
|
||||
+{
|
||||
+ 0xFF, 0x25, 0x00, 0x00, 0x00, 0x00, /* jmp __imp__function */
|
||||
+ 0x48, 0x8d, 0x05, /* leaq rax, (__imp__function) */
|
||||
+ 0x00, 0x00, 0x00, 0x00,
|
||||
+ 0xE9, 0x00, 0x00, 0x00, 0x00 /* jmp __tailMerge__dllname */
|
||||
+};
|
||||
+
|
||||
static const unsigned char arm_jtab[] =
|
||||
{
|
||||
0x00, 0xc0, 0x9f, 0xe5, /* ldr ip, [pc] */
|
||||
@@ -591,6 +599,22 @@
|
||||
"\tpopl %%ecx\n"
|
||||
"\tjmp *%%eax\n";
|
||||
|
||||
+static const char i386_x64_trampoline[] =
|
||||
+ "\tpushq %%rcx\n"
|
||||
+ "\tpushq %%rdx\n"
|
||||
+ "\tpushq %%r8\n"
|
||||
+ "\tpushq %%r9\n"
|
||||
+ "\tsubq $40, %%rsp\n"
|
||||
+ "\tmovq %%rax, %%rdx\n"
|
||||
+ "\tleaq __DELAY_IMPORT_DESCRIPTOR_%s(%%rip), %%rcx\n"
|
||||
+ "\tcall __delayLoadHelper2\n"
|
||||
+ "\taddq $40, %%rsp\n"
|
||||
+ "\tpopq %%r9\n"
|
||||
+ "\tpopq %%r8\n"
|
||||
+ "\tpopq %%rdx\n"
|
||||
+ "\tpopq %%rcx\n"
|
||||
+ "\tjmp *%%rax\n";
|
||||
+
|
||||
struct mac
|
||||
{
|
||||
const char *type;
|
||||
@@ -735,7 +759,7 @@
|
||||
"jmp *", ".global", ".space", ".align\t2",".align\t4", "",
|
||||
"pe-x86-64",bfd_arch_i386,
|
||||
i386_jtab, sizeof (i386_jtab), 2,
|
||||
- i386_dljtab, sizeof (i386_dljtab), 2, 7, 12, i386_trampoline
|
||||
+ i386_x64_dljtab, sizeof (i386_x64_dljtab), 2, 9, 14, i386_x64_trampoline
|
||||
}
|
||||
,
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||
@@ -2609,9 +2633,14 @@
|
||||
|
||||
if (delay)
|
||||
{
|
||||
- rel2->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32);
|
||||
+ if (machine == MX86)
|
||||
+ rel2->howto = bfd_reloc_type_lookup (abfd,
|
||||
+ BFD_RELOC_32_PCREL);
|
||||
+ else
|
||||
+ rel2->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32);
|
||||
rel2->sym_ptr_ptr = rel->sym_ptr_ptr;
|
||||
- rel3->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32_PCREL);
|
||||
+ rel3->howto = bfd_reloc_type_lookup (abfd,
|
||||
+ BFD_RELOC_32_PCREL);
|
||||
rel3->sym_ptr_ptr = iname_lab_pp;
|
||||
}
|
||||
|
||||
@@ -2623,10 +2652,11 @@
|
||||
case IDATA5:
|
||||
if (delay)
|
||||
{
|
||||
- si->data = xmalloc (4);
|
||||
- si->size = 4;
|
||||
+ si->size = create_for_pep ? 8 : 4;
|
||||
+ si->data = xmalloc (si->size);
|
||||
sec->reloc_count = 1;
|
||||
memset (si->data, 0, si->size);
|
||||
+ /* Point after jmp [__imp_...] instruction. */
|
||||
si->data[0] = 6;
|
||||
rel = xmalloc (sizeof (arelent));
|
||||
rpp = xmalloc (sizeof (arelent *) * 2);
|
||||
@@ -2634,7 +2664,10 @@
|
||||
rpp[1] = 0;
|
||||
rel->address = 0;
|
||||
rel->addend = 0;
|
||||
- rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32);
|
||||
+ if (create_for_pep)
|
||||
+ rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_64);
|
||||
+ else
|
||||
+ rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32);
|
||||
rel->sym_ptr_ptr = secdata[TEXT].sympp;
|
||||
sec->orelocation = rpp;
|
||||
break;
|
||||
@@ -3005,6 +3038,8 @@
|
||||
fprintf (f, "\n.section .data\n");
|
||||
fprintf (f, "__DLL_HANDLE_%s:\n", imp_name_lab);
|
||||
fprintf (f, "\t%s\t0\t%s Handle\n", ASM_LONG, ASM_C);
|
||||
+ if (create_for_pep)
|
||||
+ fprintf (f, "\t%s\t0\n", ASM_LONG);
|
||||
fprintf (f, "\n");
|
||||
|
||||
fprintf (f, "%sStuff for compatibility\n", ASM_C);
|
||||
@@ -3013,11 +3048,10 @@
|
||||
{
|
||||
fprintf (f, "\t.section\t.idata$5\n");
|
||||
/* NULL terminating list. */
|
||||
-#ifdef DLLTOOL_MX86_64
|
||||
- fprintf (f,"\t%s\t0\n\t%s\t0\n", ASM_LONG, ASM_LONG);
|
||||
-#else
|
||||
- fprintf (f,"\t%s\t0\n", ASM_LONG);
|
||||
-#endif
|
||||
+ if (create_for_pep)
|
||||
+ fprintf (f,"\t%s\t0\n\t%s\t0\n", ASM_LONG, ASM_LONG);
|
||||
+ else
|
||||
+ fprintf (f,"\t%s\t0\n", ASM_LONG);
|
||||
fprintf (f, "__IAT_%s:\n", imp_name_lab);
|
||||
}
|
||||
|
||||
@@ -3025,6 +3059,8 @@
|
||||
{
|
||||
fprintf (f, "\t.section\t.idata$4\n");
|
||||
fprintf (f, "\t%s\t0\n", ASM_LONG);
|
||||
+ if (create_for_pep)
|
||||
+ fprintf (f, "\t%s\t0\n", ASM_LONG);
|
||||
fprintf (f, "\t.section\t.idata$4\n");
|
||||
fprintf (f, "__INT_%s:\n", imp_name_lab);
|
||||
}
|
42
binutils-2.23.2-texinfo-5.1.patch
Normal file
42
binutils-2.23.2-texinfo-5.1.patch
Normal file
@ -0,0 +1,42 @@
|
||||
diff -Nru binutils-2.23.2.orig/bfd/doc/bfd.texinfo binutils-2.23.2/bfd/doc/bfd.texinfo
|
||||
--- binutils-2.23.2.orig/bfd/doc/bfd.texinfo 2010-10-28 13:40:25.000000000 +0200
|
||||
+++ binutils-2.23.2/bfd/doc/bfd.texinfo 2013-03-27 13:45:34.100572691 +0100
|
||||
@@ -322,7 +322,7 @@
|
||||
@printindex cp
|
||||
|
||||
@tex
|
||||
-% I think something like @colophon should be in texinfo. In the
|
||||
+% I think something like @@colophon should be in texinfo. In the
|
||||
% meantime:
|
||||
\long\def\colophon{\hbox to0pt{}\vfill
|
||||
\centerline{The body of this manual is set in}
|
||||
@@ -333,7 +333,7 @@
|
||||
\centerline{{\sl\fontname\tensl\/}}
|
||||
\centerline{are used for emphasis.}\vfill}
|
||||
\page\colophon
|
||||
-% Blame: doc@cygnus.com, 28mar91.
|
||||
+% Blame: doc@@cygnus.com, 28mar91.
|
||||
@end tex
|
||||
|
||||
@bye
|
||||
diff -Nru binutils-2.23.2.orig/ld/ld.texinfo binutils-2.23.2/ld/ld.texinfo
|
||||
--- binutils-2.23.2.orig/ld/ld.texinfo 2013-03-25 09:06:23.000000000 +0100
|
||||
+++ binutils-2.23.2/ld/ld.texinfo 2013-03-27 13:47:43.387364956 +0100
|
||||
@@ -7863,7 +7863,7 @@
|
||||
@printindex cp
|
||||
|
||||
@tex
|
||||
-% I think something like @colophon should be in texinfo. In the
|
||||
+% I think something like @@colophon should be in texinfo. In the
|
||||
% meantime:
|
||||
\long\def\colophon{\hbox to0pt{}\vfill
|
||||
\centerline{The body of this manual is set in}
|
||||
@@ -7874,7 +7874,7 @@
|
||||
\centerline{{\sl\fontname\tensl\/}}
|
||||
\centerline{are used for emphasis.}\vfill}
|
||||
\page\colophon
|
||||
-% Blame: doc@cygnus.com, 28mar91.
|
||||
+% Blame: doc@@cygnus.com, 28mar91.
|
||||
@end tex
|
||||
|
||||
@bye
|
524
binutils.spec
Normal file
524
binutils.spec
Normal file
@ -0,0 +1,524 @@
|
||||
# cross platform binutils specfile
|
||||
|
||||
%define target_cpu %(echo %{_target_platform} | cut -d- -f1)
|
||||
%define gprof 1
|
||||
%define pkgver %(echo %version | sed "s|[a-z]*$||")
|
||||
|
||||
Name: binutils
|
||||
Version: 2.24
|
||||
Release: 2mamba
|
||||
Summary: GNU Binary Utility Development Utilities
|
||||
Group: Development/Tools
|
||||
Vendor: openmamba
|
||||
Distribution: openmamba
|
||||
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
Source: http://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.bz2
|
||||
URL: http://www.gnu.org/software/binutils/binutils.html
|
||||
Patch0: %{name}-2.19-readelf-CAN-2005-1704.patch
|
||||
Patch1: %{name}-2.16.1-native-lib-dirs.patch
|
||||
Patch2: %{name}-2.18-makeinfo_check.patch
|
||||
Patch3: %{name}-2.20.1-unexport_LD_LIBRARY_PATH_for_CC_FOR_BUILD.patch
|
||||
Patch4: %{name}-2.22-x86_64-add_support_for_delayed_load_feature.patch
|
||||
Patch5: %{name}-2.22-gcc-4.7-gold-casts.patch
|
||||
Patch6: %{name}-2.22-build-id.patch
|
||||
Patch7: %{name}-2.22-gold-fix_pointer_reference.patch
|
||||
Patch8: binutils-2.23.2-texinfo-5.1.patch
|
||||
License: GPL
|
||||
## AUTOBUILDREQ-BEGIN
|
||||
BuildRequires: bash
|
||||
BuildRequires: glibc-devel
|
||||
BuildRequires: texinfo
|
||||
## AUTOBUILDREQ-END
|
||||
BuildRequires: bison >= 2.5
|
||||
Requires: libbinutils = %{version}-%{release}
|
||||
BuildRoot: %{_tmppath}/binutils-%{version}-build
|
||||
Requires(post):%{__install_info}
|
||||
|
||||
%description
|
||||
Binutils is a collection of binary utilities, including:
|
||||
* ar: creating modifying and extracting from archives
|
||||
* nm: for listing symbols from object files
|
||||
* objcopy: for copying and translating object files
|
||||
* objdump: for displaying information from object files
|
||||
* ranlib: for generating an index for the contents of an archive
|
||||
* size: for listing the section sizes of an object or archive file
|
||||
* strings: for listing printable strings from files
|
||||
* strip: for discarding symbols (a filter for demangling encoded C++ symbols
|
||||
* addr2line: for converting addresses to file and line
|
||||
* nlmconv: for converting object code into an NLM
|
||||
|
||||
%package -n libbinutils
|
||||
Summary: Main library for binutils
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libbinutils
|
||||
This package contains the library needed to run programs dynamically
|
||||
linked with binutils.
|
||||
|
||||
%package -n libbinutils-devel
|
||||
Summary: Main library for binutils
|
||||
Group: System/Libraries
|
||||
Requires: libbinutils = %{version}-%{release}
|
||||
|
||||
%description -n libbinutils-devel
|
||||
This package contains the library needed to run programs dynamically
|
||||
linked with binutils.
|
||||
|
||||
%package -n cross-%{_target_platform}-%{name}
|
||||
Summary: Cross Platform Binutils for %{_target_platform}
|
||||
Group: Development/Tools
|
||||
AutoReqProv: no
|
||||
|
||||
%description -n cross-%{_target_platform}-%{name}
|
||||
Binutils is a collection of binary utilities, including:
|
||||
* ar: creating modifying and extracting from archives
|
||||
* nm: for listing symbols from object files
|
||||
* objcopy: for copying and translating object files
|
||||
* objdump: for displaying information from object files
|
||||
* ranlib: for generating an index for the contents of an archive
|
||||
* size: for listing the section sizes of an object or archive file
|
||||
* strings: for listing printable strings from files
|
||||
* strip: for discarding symbols (a filter for demangling encoded C++ symbols
|
||||
* addr2line: for converting addresses to file and line
|
||||
* nlmconv: for converting object code into an NLM
|
||||
|
||||
Use this package if you need cross platform builds for %{_target_platform} target.
|
||||
|
||||
%prep
|
||||
%setup -q -n binutils-%{pkgver}
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
#%patch2 -p1
|
||||
#%patch3 -p1
|
||||
#%patch4 -p1
|
||||
#%patch5 -p0
|
||||
#%patch6 -p0
|
||||
#%patch7 -p1
|
||||
#%patch8 -p1
|
||||
|
||||
%build
|
||||
install -d binutils-build
|
||||
CONFIGURE_ADD="--enable-gold=default --enable-plugins --enable-ld --enable-shared"
|
||||
case %{target_cpu} in
|
||||
i*86 | athlon*)
|
||||
TARGETS="\
|
||||
--enable-64bit-bfd \
|
||||
--enable-targets=x86_64-linux,powerpc-linux,powerpc64-linux,arm-linux,armelf-linux-eabi"
|
||||
;;
|
||||
ppc | powerpc)
|
||||
# disable shared build for cross platform binutils because it is a big-endian platform and complain about
|
||||
# glibc not being little-endian
|
||||
TARGETS="\
|
||||
--enable-64bit-bfd \
|
||||
--enable-targets=powerpc64-linux,i386-linux,x86_64-linux,arm-linux,armelf-linux-eabi"
|
||||
# gold is not well supported for ppc, gcc build fails. Use bfd as default
|
||||
CONFIGURE_ADD="--enable-gold=yes --enable-ld=default"
|
||||
%if "%{_target_platform}" != "%{_host}"
|
||||
CONFIGURE_ADD="$CONFIGURE_ADD --disable-shared"
|
||||
%endif
|
||||
;;
|
||||
arm)
|
||||
TARGETS="\
|
||||
--enable-targets=powerpc-linux,powerpc64-linux,i386-linux,x86_64-linux,arm-linux,armelf-linux-eabi"
|
||||
#--with-lib-path=%{_prefix}/%{_target_platform}/lib:%{_prefix}/%{_target_platform}/lib/be:%{_prefix}/%{_target_platform}/lib/soft-float:%{_prefix}/%{_target_platform}/lib/be/soft-float"
|
||||
;;
|
||||
avr)
|
||||
TARGETS=""
|
||||
CONFIGURE_ADD="--enable-ld --disable-shared"
|
||||
;;
|
||||
x86_64)
|
||||
TARGETS="\
|
||||
--enable-64bit-bfd \
|
||||
--enable-targets=i386-linux,powerpc-linux,powerpc64-linux,arm-linux,armelf-linux-eabi"
|
||||
;;
|
||||
*)
|
||||
TARGETS="\
|
||||
--enable-targets=powerpc64-linux,i386-linux,x86_64-linux,arm-linux,armelf-linux-eabi"
|
||||
;;
|
||||
esac
|
||||
|
||||
cd binutils-build
|
||||
../configure \
|
||||
--prefix=%{_prefix} \
|
||||
--libdir=%{_libdir} \
|
||||
--mandir=%{_mandir} \
|
||||
--infodir=%{_infodir} \
|
||||
--build=%{_build} \
|
||||
--target=%{_target_platform} \
|
||||
$TARGETS \
|
||||
--host=%{_host} \
|
||||
$CONFIGURE_ADD
|
||||
|
||||
%make all tooldir=%{_prefix}
|
||||
%make info tooldir=%{_prefix}
|
||||
# tooldir=%{_prefix}/%{_target_platform}
|
||||
|
||||
# \
|
||||
# LIB_PATH=%{?addlibdir}
|
||||
|
||||
#\
|
||||
# NATIVE_LIB_DIRS="/usr/local/lib %{addlibdirs} /lib /usr/lib"
|
||||
|
||||
%install
|
||||
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||
# FIXME: bfd and opcodes are installed under
|
||||
# /usr/%host_noncanonical/%_target_platform dir instead of
|
||||
# /usr/%_target_platform, why ?
|
||||
sed -i "s|host_noncanonical =.*|host_noncanonical = \"\"|" \
|
||||
binutils-build/bfd/Makefile \
|
||||
binutils-build/opcodes/Makefile
|
||||
|
||||
%makeinstall install-info -C binutils-build host_noncanonical=""
|
||||
|
||||
%if "%{?_target_platform}" == "%{_host}"
|
||||
install -D include/libiberty.h %{buildroot}%{_includedir}/libiberty.h
|
||||
|
||||
# create platform specific symlinks
|
||||
for i in addr2line ar as c++filt ld nm objcopy objdump ranlib readelf \
|
||||
size strings strip; do
|
||||
ln -sf $i %{buildroot}%{_bindir}/%{_target_platform}-$i
|
||||
done
|
||||
|
||||
# remove c++filt (which conflict with gcc package)
|
||||
#rm -f %{buildroot}%{_bindir}/c++filt
|
||||
#rm -f %{buildroot}%{_mandir}/man1/c++filt.*
|
||||
|
||||
cp ./ld/NEWS NEWS.ld
|
||||
cp ./gas/NEWS NEWS.gas
|
||||
cp ./binutils/NEWS NEWS.binutils
|
||||
|
||||
%find_lang bfd
|
||||
%find_lang binutils
|
||||
%find_lang gas
|
||||
%find_lang gold
|
||||
%if "%gprof" == "1"
|
||||
%find_lang gprof
|
||||
%endif
|
||||
%find_lang ld
|
||||
%find_lang opcodes
|
||||
|
||||
> %{name}-all.lang
|
||||
|
||||
%if "%gprof" == "1"
|
||||
extralang=gprof
|
||||
%endif
|
||||
|
||||
for i in bfd binutils gas gold ld opcodes $extralang; do
|
||||
cat ${i}.lang >> %{name}-all.lang
|
||||
done
|
||||
%endif
|
||||
|
||||
|
||||
%if "%{_target_platform}" != "%{_host}"
|
||||
# recreate platform specific symlinks, instead of copies
|
||||
for i in ar as ld ld.bfd ld.gold nm objcopy objdump ranlib strip; do
|
||||
if [ -f %{buildroot}%{_bindir}/%{_target_platform}-$i ]; then
|
||||
rm -f %{buildroot}%{_bindir}/%{_target_platform}-$i
|
||||
ln -sf ../%{_target_platform}/bin/$i %{buildroot}%{_bindir}/%{_target_platform}-$i
|
||||
fi
|
||||
done
|
||||
rm -rf %{buildroot}%{_datadir}/locale
|
||||
rm -rf %{buildroot}%{_datadir}/info
|
||||
rm -rf %{buildroot}%{_libdir}/libiberty.a
|
||||
%else
|
||||
# recreate platform specific symlinks, instead of copies
|
||||
for i in ar as ld ld.bfd ld.gold nm objcopy objdump ranlib strip; do
|
||||
if [ -f %{buildroot}%{_bindir}/$i ]; then
|
||||
rm -f %{buildroot}%{_bindir}/$i
|
||||
ln -sf ../%{_target_platform}/bin/$i %{buildroot}%{_bindir}/$i
|
||||
fi
|
||||
done
|
||||
%endif
|
||||
# use alternatives for %_bindir/ld
|
||||
rm -f %{buildroot}%{_prefix}/%{_target_platform}/bin/ld
|
||||
|
||||
%clean
|
||||
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||
|
||||
%post
|
||||
if [ $1 -ge 1 ]; then
|
||||
%if "%gprof" == "1"
|
||||
extralang=gprof
|
||||
%endif
|
||||
for i in as bfd binutils configure ld standards $extralang; do
|
||||
%install_info ${i}.info
|
||||
done
|
||||
# remove legacy alternatives
|
||||
/usr/sbin/update-alternatives --remove ld %{_bindir}/ld.bfd 2>/dev/null
|
||||
/usr/sbin/update-alternatives --remove ld %{_bindir}/ld.gold 2>/dev/null
|
||||
[ -L %{_prefix}/%{_target_platform}/bin/ld ] || rm -f %{_prefix}/%{_target_platform}/bin/ld
|
||||
/usr/sbin/update-alternatives \
|
||||
--install %{_prefix}/%{_target_platform}/bin/ld ld \
|
||||
%{_prefix}/%{_target_platform}/bin/ld.bfd 20
|
||||
/usr/sbin/update-alternatives \
|
||||
--install %{_prefix}/%{_target_platform}/bin/ld ld \
|
||||
%{_prefix}/%{_target_platform}/bin/ld.gold 10
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%preun
|
||||
if [ $1 -eq 0 ]; then
|
||||
%if "%gprof" == "1"
|
||||
extralang=gprof
|
||||
%endif
|
||||
for i in as bfd binutils configure ld standards $extralang; do
|
||||
%uninstall_info ${i}.info
|
||||
done
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%postun
|
||||
if [ $1 -eq 0 ]; then
|
||||
# remove legacy alternatives /usr/bin/ld
|
||||
/usr/sbin/update-alternatives --remove ld %{_bindir}/ld.bfd 2>/dev/null
|
||||
/usr/sbin/update-alternatives --remove ld %{_bindir}/ld.gold 2>/dev/null
|
||||
|
||||
/usr/sbin/update-alternatives --remove ld \
|
||||
%{_prefix}/%{_target_platform}/bin/ld.bfd
|
||||
/usr/sbin/update-alternatives --remove ld \
|
||||
%{_prefix}/%{_target_platform}/bin/ld.gold
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%posttrans
|
||||
[ -e %{_prefix}/%{_target_platform}/bin/ld ] || ln -s /etc/alternatives/ld %{_prefix}/%{_target_platform}/bin/ld
|
||||
exit 0
|
||||
|
||||
%post -n cross-%{_target_platform}-%{name}
|
||||
if [ $1 -ge 1 ]; then
|
||||
[ -L %{_prefix}/%{_target_platform}/bin/ld ] || rm -f %{_prefix}/%{_target_platform}/bin/ld
|
||||
/usr/sbin/update-alternatives \
|
||||
--install %{_prefix}/%{_target_platform}/bin/ld %{_target_platform}-ld \
|
||||
%{_prefix}/%{_target_platform}/bin/ld.bfd 20
|
||||
/usr/sbin/update-alternatives \
|
||||
--install %{_prefix}/%{_target_platform}/bin/ld %{_target_platform}-ld \
|
||||
%{_prefix}/%{_target_platform}/bin/ld.gold 10
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%postun -n cross-%{_target_platform}-%{name}
|
||||
if [ $1 -eq 0 ]; then
|
||||
/usr/sbin/update-alternatives --remove %{_target_platform}-ld \
|
||||
%{_prefix}/%{_target_platform}/bin/ld.bfd
|
||||
/usr/sbin/update-alternatives --remove %{_target_platform}-ld \
|
||||
%{_prefix}/%{_target_platform}/bin/ld.gold
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%posttrans -n cross-%{_target_platform}-%{name}
|
||||
[ -e %{_prefix}/%{_target_platform}/bin/ld ] || ln -s /etc/alternatives/ld %{_prefix}/%{_target_platform}/bin/ld
|
||||
exit 0
|
||||
|
||||
%if "%{_target_platform}" == "%{_host}"
|
||||
%files -f %{name}-all.lang
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/addr2line
|
||||
%{_bindir}/ar
|
||||
%{_bindir}/as
|
||||
%{_bindir}/c++filt
|
||||
%{_bindir}/dwp
|
||||
%{_bindir}/elfedit
|
||||
%{_bindir}/embedspu
|
||||
%if "%gprof" == "1"
|
||||
%{_bindir}/gprof
|
||||
%endif
|
||||
%{_bindir}/ld
|
||||
%{_bindir}/ld.bfd
|
||||
%{_bindir}/ld.gold
|
||||
%{_bindir}/nm
|
||||
%{_bindir}/objcopy
|
||||
%{_bindir}/objdump
|
||||
%{_bindir}/ranlib
|
||||
%{_bindir}/readelf
|
||||
%{_bindir}/size
|
||||
%{_bindir}/strings
|
||||
%{_bindir}/strip
|
||||
%{_bindir}/%{_target_platform}-*
|
||||
%{_prefix}/%{_host}/bin/*
|
||||
%{_prefix}/%{_host}/lib/*
|
||||
%{_mandir}/man1/addr2line.1.gz
|
||||
%{_mandir}/man1/ar.1.gz
|
||||
%{_mandir}/man1/as.1.gz
|
||||
%{_mandir}/man1/c++filt.1.gz
|
||||
%{_mandir}/man1/dlltool.1.gz
|
||||
%{_mandir}/man1/elfedit.1.gz
|
||||
%if "%gprof" == "1"
|
||||
%{_mandir}/man1/gprof.1.gz
|
||||
%endif
|
||||
%{_mandir}/man1/ld.1.gz
|
||||
%{_mandir}/man1/nlmconv.1.gz
|
||||
%{_mandir}/man1/nm.1.gz
|
||||
%{_mandir}/man1/objcopy.1.gz
|
||||
%{_mandir}/man1/objdump.1.gz
|
||||
%{_mandir}/man1/ranlib.1.gz
|
||||
%{_mandir}/man1/readelf.1.gz
|
||||
%{_mandir}/man1/size.1.gz
|
||||
%{_mandir}/man1/strings.1.gz
|
||||
%{_mandir}/man1/strip.1.gz
|
||||
%{_mandir}/man1/windmc.1.gz
|
||||
%{_mandir}/man1/windres.1.gz
|
||||
%{_infodir}/*
|
||||
%doc COPYING* README NEWS*
|
||||
|
||||
%files -n libbinutils
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/libbfd-%{version}.so
|
||||
%{_libdir}/libopcodes-%{version}.so
|
||||
|
||||
%files -n libbinutils-devel
|
||||
%defattr(-,root,root)
|
||||
%{_includedir}/*
|
||||
%{_libdir}/libbfd.*a
|
||||
%{_libdir}/libbfd.so
|
||||
%{_libdir}/libopcodes.*a
|
||||
%{_libdir}/libopcodes.so
|
||||
#%{_libdir}/libiberty.a
|
||||
|
||||
%else
|
||||
%files -n cross-%{_target_platform}-%{name}
|
||||
%defattr(-,root,root)
|
||||
%{_prefix}/bin/%{_target_platform}-*
|
||||
%{_prefix}/%{_target_platform}/bin/*
|
||||
%{_prefix}/%{_target_platform}/lib/*
|
||||
%if "%{target_cpu}" != "avr"
|
||||
%if "%{target_cpu}" != "ppc"
|
||||
%{_prefix}/%{_target_platform}/include/*
|
||||
%endif
|
||||
%endif
|
||||
%{_mandir}/man1/%{_target_platform}*
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri May 02 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 2.24-2mamba
|
||||
- build with --enable-plugins
|
||||
|
||||
* Mon Dec 09 2013 Automatic Build System <autodist@mambasoft.it> 2.24-1mamba
|
||||
- automatic version update by autodist
|
||||
|
||||
* Wed Mar 27 2013 Automatic Build System <autodist@mambasoft.it> 2.23.2-1mamba
|
||||
- automatic version update by autodist
|
||||
|
||||
* Wed Nov 14 2012 Automatic Build System <autodist@mambasoft.it> 2.23.1-1mamba
|
||||
- automatic version update by autodist
|
||||
- source edit: cross-*-ld: set %{target_platform}-ld alternatives for bfd/gold
|
||||
|
||||
* Tue Oct 23 2012 Automatic Build System <autodist@mambasoft.it> 2.23-1mamba
|
||||
- automatic version update by autodist
|
||||
|
||||
* Tue Jul 31 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 2.22-7mamba
|
||||
- x86_64: add support for delayed-load feature required by valgrind 3.7.0
|
||||
- added gold cast patch ti fix gold build with gcc 4.7
|
||||
- alternatives: revert to bfd as default linker
|
||||
|
||||
* Sun Apr 15 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 2.22-6mamba
|
||||
- make %_bindir files symlink to /usr/%_host/bin
|
||||
- move %{_prefix}/%{_host}/bin/* from libbinutils-devel to binutils
|
||||
- change ld alternative destination from /usr/bin/ld to %{_prefix}/%{_host}/bin/ld
|
||||
|
||||
* Mon Apr 02 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 2.22-5mamba
|
||||
- rebuilt
|
||||
|
||||
* Fri Mar 23 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 2.22-4mamba
|
||||
- make symlinks instead of copies in %_bindir to platform bin directory
|
||||
|
||||
* Sat Feb 18 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 2.22-3mamba
|
||||
- install /usr/bin/ld alternative for ld.bfd and ld.gold (default: ld.gold)
|
||||
|
||||
* Fri Jan 06 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 2.22-2mamba
|
||||
- rebuilt with "--enable-gold=default --enable-ld" (i.e. switch to new gold linker as default)
|
||||
|
||||
* Mon Nov 21 2011 Automatic Build System <autodist@mambasoft.it> 2.22-1mamba
|
||||
- automatic version update by autodist
|
||||
|
||||
* Fri Aug 26 2011 Automatic Build System <autodist@mambasoft.it> 2.21.1a-1mamba
|
||||
- automatic version update by autodist
|
||||
|
||||
* Sat Jul 16 2011 Automatic Build System <autodist@mambasoft.it> 2.21.1-1mamba
|
||||
- automatic update by autodist
|
||||
|
||||
* Sun Dec 12 2010 Automatic Build System <autodist@mambasoft.it> 2.21-1mamba
|
||||
- automatic update to 2.21 by autodist
|
||||
|
||||
* Fri Apr 16 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 2.20.1-2mamba
|
||||
- use full target_platform in packages name
|
||||
- added support for additional target arm-linux-eabi
|
||||
- removed use on cross_platform_cpu, use more standard %_target_platform
|
||||
|
||||
* Fri Mar 05 2010 Automatic Build System <autodist@mambasoft.it> 2.20.1-1mamba
|
||||
- automatic update to 2.20.1 by autodist
|
||||
|
||||
* Sat Oct 17 2009 Automatic Build System <autodist@mambasoft.it> 2.20-1mamba
|
||||
- automatic update to 2.20 by autodist
|
||||
|
||||
* Tue Feb 03 2009 Silvan Calarco <silvan.calarco@mambasoft.it> 2.19.1-1mamba
|
||||
- automatic update to 2.19.1 by autodist
|
||||
|
||||
* Tue Oct 28 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 2.19-1mamba
|
||||
- automatic update to 2.19 by autodist
|
||||
|
||||
* Wed Nov 28 2007 Silvan Calarco <silvan.calarco@mambasoft.it> 2.18-1mamba
|
||||
- update to 2.18
|
||||
|
||||
* Thu Mar 08 2007 Silvan Calarco <silvan.calarco@mambasoft.it> 2.17-3qilnx
|
||||
- build for openmamba distribution
|
||||
|
||||
* Fri Dec 29 2006 Silvan Calarco <silvan.calarco@mambasoft.it> 2.17-2qilnx
|
||||
- added x86_64 target
|
||||
|
||||
* Wed Aug 30 2006 Silvan Calarco <silvan.calarco@mambasoft.it> 2.17-1qilnx
|
||||
- new version build
|
||||
- add support for multilib with ARM
|
||||
|
||||
* Sun Jun 11 2006 Silvan Calarco <silvan.calarco@mambasoft.it> 2.16.93-1qilnx
|
||||
- update to version 2.16.93 by autospec
|
||||
|
||||
* Thu Jun 08 2006 Silvan Calarco <silvan.calarco@mambasoft.it> 2.16.1-10qilnx
|
||||
- rebuilt
|
||||
|
||||
* Mon Sep 05 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 2.16.1-9qilnx
|
||||
- add specific target symlink for host target
|
||||
|
||||
* Sat Aug 27 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 2.16.1-8qilnx
|
||||
- rebuilt with multime targets support for tools
|
||||
- 64 bits support
|
||||
|
||||
* Mon Aug 01 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 2.16.1-7qilnx
|
||||
- cross builds: use /lib/<platform_cpu> as additional native libdir
|
||||
|
||||
* Tue Jul 22 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 2.16.1-6qilnx
|
||||
- add correct cross target files in proper dirs (fixme: should be done automatically)
|
||||
|
||||
* Tue Jul 21 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 2.16.1-5qilnx
|
||||
- added support for --define='cross_target_cpu xxx' build option
|
||||
|
||||
* Tue Jul 12 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 2.16.1-4qilnx
|
||||
- added --target command line support for cross releases build
|
||||
|
||||
* Fri Jul 08 2005 Davide Madrisan <davide.madrisan@qilinux.it> 2.16.1-3qilnx
|
||||
- modified to support cross compilation
|
||||
|
||||
* Wed Jun 15 2005 Davide Madrisan <davide.madrisan@qilinux.it> 2.16.1-2qilnx
|
||||
- security fix QSA-2005-077 (CAN-2005-1704)
|
||||
|
||||
* Wed Jun 15 2005 Davide Madrisan <davide.madrisan@qilinux.it> 2.16.1-1qilnx
|
||||
- update to version 2.16.1 by autospec
|
||||
|
||||
* Tue May 10 2005 Davide Madrisan <davide.madrisan@qilinux.it> 2.16-1qilnx
|
||||
- update to version 2.16 by autospec
|
||||
- added missing scripts
|
||||
|
||||
* Tue Jun 29 2004 Silvan Calarco <silvan.calarco@mambasoft.it> 2.15-2qilnx
|
||||
- (re)added libiberty.a removed from gcc
|
||||
|
||||
* Wed May 19 2004 Davide Madrisan <davide.madrisan@qilinux.it> 2.15-1qilnx
|
||||
- new version rebuild
|
||||
|
||||
* Mon Jun 16 2003 Silvan Calarco <silvan.calarco@qinet.it> 2.14-1qilnx
|
||||
- rebuild without c++filt (conflicting with gcc)
|
||||
- build with gcc 3.2.3
|
||||
|
||||
* Thu Apr 18 2003 Alessandro Ramazzina <alessandro.ramazzina@qinet.it> 2.13.2.1-2qilnx
|
||||
- rebuild after install modifications
|
||||
|
||||
* Thu Apr 17 2003 Alessandro Ramazzina <alessandro.ramazzina@qinet.it> 2.13.2.1-1qilnx
|
||||
- creation of binutils package
|
Loading…
Reference in New Issue
Block a user