[svn] r6350 - in branches/rpms/brian: . i386-pc-minix-binutils
i386-pc-minix-gcc-static noarch-novendor-nosystem-binutils
noarch-novendor-nosystem-gcc noarch-novendor-nosystem-glibc
noarch-novendor-nosystem-linux-kernel-headers
packagers at lists.rpmforge.net
packagers at lists.rpmforge.net
Tue Jun 10 01:18:27 CEST 2008
Author: bschueler
Date: 2008-06-10 00:18:27 +0100 (Tue, 10 Jun 2008)
New Revision: 6350
Added:
branches/rpms/brian/i386-pc-minix-binutils/
branches/rpms/brian/i386-pc-minix-binutils/README-binutils.fedora
branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16-posix-1.patch
branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-build-fixes.patch
branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-elfvsb-test.patch
branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-ltconfig-multilib.patch
branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-place-orphan.patch
branches/rpms/brian/i386-pc-minix-binutils/cross-binutils.spec
branches/rpms/brian/i386-pc-minix-gcc-static/
branches/rpms/brian/i386-pc-minix-gcc-static/README-gcc.fedora
branches/rpms/brian/i386-pc-minix-gcc-static/arm-linux-soft-float.patch
branches/rpms/brian/i386-pc-minix-gcc-static/cross-gcc.spec
branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.1-cross_search_paths-1.patch
branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.1-minix-install.patch
branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.2-gcc_eh.patch
branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.2-version.patch
branches/rpms/brian/i386-pc-minix-gcc-static/gcc40-cross-build-fixes.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/
branches/rpms/brian/noarch-novendor-nosystem-binutils/README-binutils.fedora
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17-posix-1.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-build-fixes.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-bz4267.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-elfvsb-test.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-fixsyms.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-gas-debug-ranges-revert.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ia64-lib64.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-kept-section.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ltconfig-multilib.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-place-orphan.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-popcnt.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-power6-insns.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ppc-relbrlt-test.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ppc64-pie.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ppc64-version-script.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-rh223181.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-rh235221.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-rh241252.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-sse4.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-standards.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-target-minix.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-tekhex.patch
branches/rpms/brian/noarch-novendor-nosystem-binutils/cross-binutils.spec
branches/rpms/brian/noarch-novendor-nosystem-gcc/
branches/rpms/brian/noarch-novendor-nosystem-gcc/README-gcc.fedora
branches/rpms/brian/noarch-novendor-nosystem-gcc/arm-linux-soft-float.patch
branches/rpms/brian/noarch-novendor-nosystem-gcc/cross-gcc.spec
branches/rpms/brian/noarch-novendor-nosystem-gcc/gcc-4.1.1-cross_search_paths-1.patch
branches/rpms/brian/noarch-novendor-nosystem-gcc/gcc-4.1.2-gcc_eh.patch
branches/rpms/brian/noarch-novendor-nosystem-gcc/gcc-4.1.2-version.patch
branches/rpms/brian/noarch-novendor-nosystem-gcc/gcc40-cross-build-fixes.patch
branches/rpms/brian/noarch-novendor-nosystem-glibc/
branches/rpms/brian/noarch-novendor-nosystem-glibc/README-glibc.fedora
branches/rpms/brian/noarch-novendor-nosystem-glibc/cross-glibc.spec
branches/rpms/brian/noarch-novendor-nosystem-glibc/glibc-2.5-libgcc_eh-1.patch
branches/rpms/brian/noarch-novendor-nosystem-glibc/glibc-2.5-localedef_segfault-1.patch
branches/rpms/brian/noarch-novendor-nosystem-glibc/glibc-2.5-mips_fixes-1.patch
branches/rpms/brian/noarch-novendor-nosystem-linux-kernel-headers/
branches/rpms/brian/noarch-novendor-nosystem-linux-kernel-headers/cross-kernel-headers.spec
Log:
Added configurable cross-toolchain generating pseudo specs
Added: branches/rpms/brian/i386-pc-minix-binutils/README-binutils.fedora
===================================================================
--- branches/rpms/brian/i386-pc-minix-binutils/README-binutils.fedora (rev 0)
+++ branches/rpms/brian/i386-pc-minix-binutils/README-binutils.fedora 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,4 @@
+This package does not include the gnu texinfo documentation because this would
+conflict with the native binutils. If you've installed the native binutils,
+you can find the info documentation there, notice that this might be for a
+different version though!
Added: branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16-posix-1.patch
===================================================================
--- branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16-posix-1.patch (rev 0)
+++ branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16-posix-1.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,98 @@
+Submitted By: Jim Gifford (patches at jg555 dot com)
+Date: 2005-05-06
+Initial Package Version: 2.16
+Origin: http://ttervo.vectorstar.net/nptl/posix-patches/binutils-2.14.90.0.7-posix-head-tail.patch
+Upstream Status: Accepted/but Suspended
+Description: Makes Posix Compliant
+ Rediffed against 2.16 by Jeremy Huntwork
+
+diff -Naur binutils-2.16-ORIG/gas/Makefile.am binutils-2.16/gas/Makefile.am
+--- binutils-2.16-ORIG/gas/Makefile.am 2005-03-22 10:31:44.000000000 -0500
++++ binutils-2.16/gas/Makefile.am 2005-05-06 17:08:11.859876859 -0400
+@@ -762,13 +762,13 @@
+ against=stage2
+
+ # This rule is derived from corresponding code in the Makefile.in for gcc.
+-# The "tail +16c" is to bypass headers which may include timestamps or
++# The "tail -c +16" is to bypass headers which may include timestamps or
+ # temporary assembly file names.
+ comparison:
+ x=0 ; \
+ for file in *.o ; do \
+- tail +16c ./$$file > tmp-foo1; \
+- if tail +16c ${against}/$$file > tmp-foo2 2>/dev/null ; then \
++ tail -c +16 ./$$file > tmp-foo1; \
++ if tail -c +16 ${against}/$$file > tmp-foo2 2>/dev/null ; then \
+ if cmp tmp-foo1 tmp-foo2 ; then \
+ true ; \
+ else \
+diff -Naur binutils-2.16-ORIG/gas/Makefile.in binutils-2.16/gas/Makefile.in
+--- binutils-2.16-ORIG/gas/Makefile.in 2005-04-29 09:57:16.000000000 -0400
++++ binutils-2.16/gas/Makefile.in 2005-05-06 17:08:11.868875659 -0400
+@@ -3164,13 +3164,13 @@
+ if [ -f stage3/as-new$(EXEEXT) -a ! -f stage3/as$(EXEEXT) ] ; then (cd stage3 ; ln -s as-new as$(EXEEXT)) ; fi
+
+ # This rule is derived from corresponding code in the Makefile.in for gcc.
+-# The "tail +16c" is to bypass headers which may include timestamps or
++# The "tail -c +16" is to bypass headers which may include timestamps or
+ # temporary assembly file names.
+ comparison:
+ x=0 ; \
+ for file in *.o ; do \
+- tail +16c ./$$file > tmp-foo1; \
+- if tail +16c ${against}/$$file > tmp-foo2 2>/dev/null ; then \
++ tail -c +16 ./$$file > tmp-foo1; \
++ if tail -c +16 ${against}/$$file > tmp-foo2 2>/dev/null ; then \
+ if cmp tmp-foo1 tmp-foo2 ; then \
+ true ; \
+ else \
+diff -Naur binutils-2.16-ORIG/ld/testsuite/ld-bootstrap/bootstrap.exp binutils-2.16/ld/testsuite/ld-bootstrap/bootstrap.exp
+--- binutils-2.16-ORIG/ld/testsuite/ld-bootstrap/bootstrap.exp 2005-03-03 06:52:06.000000000 -0500
++++ binutils-2.16/ld/testsuite/ld-bootstrap/bootstrap.exp 2005-05-06 17:08:11.870875393 -0400
+@@ -149,8 +149,8 @@
+ # Although this works, a way to set the date would be better.
+ # Removing or zeroing the date stamp in the binary produced by
+ # the linker is not possible as it is required by the target OS.
+- exec tail +140 tmpdir/ld2 >tmpdir/ld2tail
+- exec tail +140 tmpdir/ld3 >tmpdir/ld3tail
++ exec tail -n +140 tmpdir/ld2 >tmpdir/ld2tail
++ exec tail -n +140 tmpdir/ld3 >tmpdir/ld3tail
+ catch "exec cmp tmpdir/ld2tail tmpdir/ld3tail" exec_output
+ exec rm tmpdir/ld2tail tmpdir/ld3tail
+ } else {
+diff -Naur binutils-2.16-ORIG/ltcf-c.sh binutils-2.16/ltcf-c.sh
+--- binutils-2.16-ORIG/ltcf-c.sh 2004-10-05 09:34:42.000000000 -0400
++++ binutils-2.16/ltcf-c.sh 2005-05-06 17:08:11.873874993 -0400
+@@ -153,7 +153,7 @@
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is.
+ # If DATA tags from a recent dlltool are present, honour them!
+- archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
++ archive_expsym_cmds='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname-def;
+ else
+ echo EXPORTS > $output_objdir/$soname-def;
+diff -Naur binutils-2.16-ORIG/ltcf-gcj.sh binutils-2.16/ltcf-gcj.sh
+--- binutils-2.16-ORIG/ltcf-gcj.sh 2004-07-21 15:21:41.000000000 -0400
++++ binutils-2.16/ltcf-gcj.sh 2005-05-06 17:08:11.876874593 -0400
+@@ -156,7 +156,7 @@
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is.
+ # If DATA tags from a recent dlltool are present, honour them!
+- archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
++ archive_expsym_cmds='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname-def;
+ else
+ echo EXPORTS > $output_objdir/$soname-def;
+diff -Naur binutils-2.16-ORIG/src-release binutils-2.16/src-release
+--- binutils-2.16-ORIG/src-release 2004-12-03 05:30:06.000000000 -0500
++++ binutils-2.16/src-release 2005-05-06 17:08:11.878874327 -0400
+@@ -69,7 +69,7 @@
+ elif grep AM_INIT_AUTOMAKE $(TOOL)/configure.in >/dev/null 2>&1; then \
+ sed < $(TOOL)/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'; \
+ elif test -f $(TOOL)/version.in; then \
+- head -1 $(TOOL)/version.in; \
++ head -n 1 $(TOOL)/version.in; \
+ elif grep VERSION $(TOOL)/Makefile.in > /dev/null 2>&1; then \
+ sed < $(TOOL)/Makefile.in -n 's/^VERSION *= *//p'; \
+ else \
Property changes on: branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16-posix-1.patch
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-build-fixes.patch
===================================================================
--- branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-build-fixes.patch (rev 0)
+++ branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-build-fixes.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,29 @@
+2006-02-14 Jakub Jelinek <jakub at redhat.com>
+
+ld/testsuite/
+ * ld-shared/main.c (main): Prevent warnings about unused p.
+ * ld-elfcomm/common1b.c (dummy1): Add __attribute__((__used__)) for
+ GCC 3.3+.
+
+--- ld/testsuite/ld-shared/main.c.jj 2001-07-11 15:48:54.000000000 +0200
++++ ld/testsuite/ld-shared/main.c 2006-02-14 10:07:08.000000000 +0100
+@@ -40,6 +40,8 @@ main ()
+ {
+ int (*p) ();
+
++ p = (void *) 0;
++ (void) p;
+ printf ("mainvar == %d\n", mainvar);
+ printf ("overriddenvar == %d\n", overriddenvar);
+ printf ("shlibvar1 == %d\n", shlibvar1);
+--- ld/testsuite/ld-elfcomm/common1b.c.jj 2003-04-15 11:38:10.000000000 +0200
++++ ld/testsuite/ld-elfcomm/common1b.c 2006-02-14 10:11:19.000000000 +0100
+@@ -1,3 +1,7 @@
+-static char dummy1 = 'X';
++static char dummy1
++#if defined __GNUC__ && (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
++ __attribute__((__used__))
++#endif
++ = 'X';
+ char foo1 [] = "Aligned at odd byte.";
+ char foo2 [4];
Added: branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-elfvsb-test.patch
===================================================================
--- branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-elfvsb-test.patch (rev 0)
+++ branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-elfvsb-test.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,85 @@
+2004-08-03 Jakub Jelinek <jakub at redhat.com>
+
+ * ld-elfvsb/sh1.c (overriddenvar, shlib_overriddencall2): If
+ !SHARED, move to...
+ * ld-elfvsb/sh2.c: ... here.
+ * ld-elfvsb/elfvsb.exp: Add -DSHARED to compiler options when building
+ {sh[123],main}.c with $picflag.
+
+--- ld/testsuite/ld-elfvsb/sh1.c.jj 2003-05-05 17:46:50.000000000 -0400
++++ ld/testsuite/ld-elfvsb/sh1.c 2004-08-03 13:15:48.000000000 -0400
+@@ -13,7 +13,11 @@ extern int mainvar;
+ /* This variable is defined in the shared library, and overridden by
+ the main program. */
+ #ifndef XCOFF_TEST
++#ifdef SHARED
+ int overriddenvar = -1;
++#else
++extern int overriddenvar;
++#endif
+ #endif
+
+ /* This variable is defined in the shared library. */
+@@ -76,12 +80,14 @@ shlib_shlibcall2 ()
+ return shlib_overriddencall2 ();
+ }
+
++#ifdef SHARED
+ int
+ shlib_overriddencall2 ()
+ {
+ return 7;
+ }
+ #endif
++#endif
+
+ /* This function calls a function defined by the main program. */
+
+--- ld/testsuite/ld-elfvsb/elfvsb.exp.jj 2004-05-27 14:26:05.000000000 -0400
++++ ld/testsuite/ld-elfvsb/elfvsb.exp 2004-08-03 13:13:40.000000000 -0400
+@@ -315,8 +315,8 @@ proc visibility_run {visibility} {
+
+ # Now compile the code using -fpic.
+
+- if { ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o]
+- || ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/sh2.c $tmpdir/sh2p.o] } {
++ if { ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG -DSHARED $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o]
++ || ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG -DSHARED $picflag" $srcdir/$subdir/sh2.c $tmpdir/sh2p.o] } {
+ unresolved "visibility ($visibility)"
+ } else {
+ if { [ string match $visibility "protected" ]
+@@ -337,7 +337,7 @@ proc visibility_run {visibility} {
+ }
+
+ # Now do the same tests again, but this time compile main.c PIC.
+- if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/main.c $tmpdir/mainp.o] {
++ if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG -DSHARED $picflag" $srcdir/$subdir/main.c $tmpdir/mainp.o] {
+ unresolved "visibility ($visibility) (PIC main, non PIC so)"
+ unresolved "visibility ($visibility) (PIC main)"
+ } else {
+@@ -446,7 +446,7 @@ if { ![ld_compile "$CC -g $CFLAGS" $srcd
+ if { ![ld_compile "$CC -g $CFLAGS" $srcdir/$subdir/test.c tmpdir/test.o] } {
+ unresolved "weak hidden symbol"
+ } else {
+- if { ![ld_compile "$CC -g $CFLAGS $picflag" $srcdir/$subdir/sh3.c tmpdir/sh3.o] } {
++ if { ![ld_compile "$CC -g $CFLAGS -DSHARED $picflag" $srcdir/$subdir/sh3.c tmpdir/sh3.o] } {
+ unresolved "weak hidden symbol"
+ } else {
+ if ![ld_simple_link $ld tmpdir/sh3.so "-shared tmpdir/sh3.o"] {
+--- ld/testsuite/ld-elfvsb/sh2.c.jj 2003-05-05 17:46:50.000000000 -0400
++++ ld/testsuite/ld-elfvsb/sh2.c 2004-08-03 13:14:22.000000000 -0400
+@@ -44,3 +44,13 @@ visibility_func_weak ()
+ return 2;
+ }
+ #endif
++
++#if !defined (XCOFF_TEST) && !defined (SHARED)
++int overriddenvar = -1;
++
++int
++shlib_overriddencall2 ()
++{
++ return 7;
++}
++#endif
+
Added: branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-ltconfig-multilib.patch
===================================================================
--- branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-ltconfig-multilib.patch (rev 0)
+++ branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-ltconfig-multilib.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,26 @@
+--- ltconfig.jj 2003-02-03 16:56:49.000000000 +0900
++++ ltconfig 2003-02-03 16:56:49.000000000 +0900
+@@ -1237,6 +1237,23 @@
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
++
++ # Find out which ABI we are using (multilib hack).
++ case "$host_cpu" in
++ x86_64*|s390*|sparc*|ppc*|powerpc*)
++ echo "$progname:@lineno@: checking multilib ABI type" 1>&5
++ touch conftest.$ac_ext
++ if { (eval echo $progname: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
++ case `/usr/bin/file conftest.o` in
++ *64-bit*)
++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64"
++ sys_lib_search_path_spec="/lib64 /usr/lib64 /usr/local/lib64"
++ ;;
++ esac
++ fi
++ rm -rf conftest*
++ ;;
++ esac
+ ;;
+
+ netbsd*)
Added: branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-place-orphan.patch
===================================================================
--- branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-place-orphan.patch (rev 0)
+++ branches/rpms/brian/i386-pc-minix-binutils/binutils-2.16.1-place-orphan.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,16 @@
+2003-08-05 Jakub Jelinek <jakub at redhat.com>
+
+ * emulparams/elf64ppc.sh (OTHER_GOT_RELOC_SECTIONS): Add .rela.opd.
+
+--- ld/emulparams/elf64ppc.sh.jj 2003-07-28 10:24:45.000000000 -0400
++++ ld/emulparams/elf64ppc.sh 2003-08-05 08:35:58.000000000 -0400
+@@ -28,7 +28,8 @@ else
+ .toc 0 : { *(.toc) }"
+ fi
+ OTHER_GOT_RELOC_SECTIONS="
+- .rela.toc ${RELOCATING-0} : { *(.rela.toc) }"
++ .rela.toc ${RELOCATING-0} : { *(.rela.toc) }
++ .rela.opd ${RELOCATING-0} : { *(.rela.opd) }"
+ OTHER_READWRITE_SECTIONS="
+ .toc1 ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.toc1) }
+ .opd ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { KEEP (*(.opd)) }"
Added: branches/rpms/brian/i386-pc-minix-binutils/cross-binutils.spec
===================================================================
--- branches/rpms/brian/i386-pc-minix-binutils/cross-binutils.spec (rev 0)
+++ branches/rpms/brian/i386-pc-minix-binutils/cross-binutils.spec 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,78 @@
+%{!?target_arch: %define target_arch noarch}
+%{!?target_vendor: %define target_vendor novendor}
+%{!?target_system: %define target_system nosystem}
+%define target %{target_arch}-%{target_vendor}-%{target_system}
+
+Name: %{target}-binutils
+Version: 2.16.1
+Release: 1%{?dist}
+Summary: Cross Compiling GNU binutils targeted at %{target}
+Group: Development/Tools
+License: GPL
+URL: http://www.gnu.org/software/binutils/
+Source0: ftp://ftp.gnu.org/pub/gnu/binutils/binutils-%{version}.tar.bz2
+Source1: README-binutils.fedora
+Patch1: binutils-2.16.1-ltconfig-multilib.patch
+Patch3: binutils-2.16.1-place-orphan.patch
+Patch5: binutils-2.16.1-elfvsb-test.patch
+Patch7: binutils-2.16.1-build-fixes.patch
+Patch104: binutils-2.16-posix-1.patch
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
+BuildRequires: texinfo >= 4.0, dejagnu, gettext, flex, bison, gcc
+
+%description
+This is a Cross Compiling version of GNU binutils, which can be used to
+assemble and link binaries for the %{target} platform, instead of for the
+native %{_arch} platform.
+
+
+%prep
+%setup # -q -c
+pushd binutils-%{version}
+%patch1 -p0 -b .ltconfig-multilib~
+%patch3 -p0 -b .place-orphan~
+%patch5 -p0 -b .elfvsb-test~
+%patch7 -p0 -b .build-fixes~
+%patch104 -p1
+popd
+cp %{SOURCE1} .
+
+
+%build
+mkdir -p build
+pushd build
+%define host %(echo ${MACHTYPE} | sed "s/$(echo ${MACHTYPE} | cut -d- -f2)/cross/")
+../binutils-%{version}/configure --prefix=%{_prefix} --target=%{target} \
+ --mandir=%{_mandir} --infodir=%{_infodir} --host=%{host} \
+ --with-lib-path=%{_prefix}/%{target}/lib --disable-shared \
+ --disable-nls
+make configure-host
+make
+popd build
+
+%install
+rm -rf $RPM_BUILD_ROOT
+pushd build
+make install DESTDIR=$RPM_BUILD_ROOT
+popd build
+# these are for win targets only
+rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{target}-{dlltool,nlmconv,windres}.1
+# we don't want these as we are a cross version
+rm -fr $RPM_BUILD_ROOT%{_infodir}
+rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%files
+%defattr(-,root,root,-)
+%doc binutils-%{version}/COPYING binutils-%{version}/COPYING.LIB
+%doc binutils-%{version}/README README-binutils.fedora
+%{_prefix}/%{target}
+%{_bindir}/%{target}-*
+%{_mandir}/man1/%{target}-*.1.gz
+
+
+%changelog
Added: branches/rpms/brian/i386-pc-minix-gcc-static/README-gcc.fedora
===================================================================
--- branches/rpms/brian/i386-pc-minix-gcc-static/README-gcc.fedora (rev 0)
+++ branches/rpms/brian/i386-pc-minix-gcc-static/README-gcc.fedora 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,4 @@
+This package does not include the gnu texinfo documentation because this would
+conflict with the native gcc. If you've installed the native gcc,
+you can find the info documentation there, notice that this might be for a
+different version though!
Added: branches/rpms/brian/i386-pc-minix-gcc-static/arm-linux-soft-float.patch
===================================================================
--- branches/rpms/brian/i386-pc-minix-gcc-static/arm-linux-soft-float.patch (rev 0)
+++ branches/rpms/brian/i386-pc-minix-gcc-static/arm-linux-soft-float.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,30 @@
+diff -u -r gcc-4.0.2/gcc/config/arm/t-linux gcc-4.0.2/gcc/config/arm.new/t-linux
+--- gcc-4.0.2/gcc/config/arm/t-linux 2005-10-18 22:04:44.000000000 +1000
++++ gcc-4.0.2/gcc/config/arm.new/t-linux 2005-10-18 22:05:03.000000000 +1000
+@@ -4,7 +4,12 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi
+ LIBGCC2_DEBUG_CFLAGS = -g0
+
+ LIB1ASMSRC = arm/lib1funcs.asm
+-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
++LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
++ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
++ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
++ _fixsfsi _fixunssfsi _floatdidf _floatdisf \
++ _bb_init_func _call_via_rX _interwork_call_via_rX \
++ _lshrdi3 _ashrdi3 _ashldi3
+
+ # MULTILIB_OPTIONS = mhard-float/msoft-float
+ # MULTILIB_DIRNAMES = hard-float soft-float
+
+
+--- gcc-4.1.1/gcc/config/arm/linux-elf.h 2007-01-06 11:17:51.000000000 +0000
++++ gcc-4.1.1/gcc/config/arm/linux-elf-soft.h 2007-01-06 11:22:01.000000000 +0000
+@@ -49,7 +49,7 @@
+ %{shared:-lc} \
+ %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
+
+-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
++/* #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" */
+
+ #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2"
+
Added: branches/rpms/brian/i386-pc-minix-gcc-static/cross-gcc.spec
===================================================================
--- branches/rpms/brian/i386-pc-minix-gcc-static/cross-gcc.spec (rev 0)
+++ branches/rpms/brian/i386-pc-minix-gcc-static/cross-gcc.spec 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,250 @@
+%define use_cpu_defs 0
+%{!?target_arch: %define target_arch noarch}
+%{!?target_vendor: %define target_vendor novendor}
+%{!?target_system: %define target_system nosystem}
+%{?target_cpu: %define cpu_defs --with-cpu=%{target_cpu} --enable-cxx-flags=-mcpu=%{target_cpu}
+ %define use_cpu_defs 1}
+%define target_base_arch %(echo "%{target_arch}" | \
+ sed -e "s/armeb/arm/g" -e "s/arm64/arm/g" -e "s/s390x/s390/g" -e "s/i[4-6]86/i386/g" -e "s/mipsel/mips/g" -e "s/ppc32/ppc/g" -e "s/powerpc/ppc/g" )
+%{!?vendor_name: %define vendor_name %{target_vendor}}
+%define target %{target_arch}-%{target_vendor}-%{target_system}
+%define glibcversion 2.5.0
+%{!?bootstrap: %define bootstrap 0}
+%{!?use_softfp: %define use_softfp 0}
+
+%if !%{bootstrap}
+Name: %{target}-gcc
+%else
+Name: %{target}-gcc-static
+%endif
+Version: 4.1.1
+Release: 1%{?dist}
+Summary: Cross Compiling GNU GCC targeted at %{target}
+Group: Development/Languages
+License: GPLv2+
+URL: http://gcc.gnu.org/
+Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-4.1.1.tar.bz2
+Source1: README-gcc.fedora
+Patch0: arm-linux-soft-float.patch
+Patch1: gcc40-cross-build-fixes.patch
+Patch2: gcc-4.1.2-gcc_eh.patch
+Patch3: gcc-4.1.2-version.patch
+Patch4: gcc-4.1.1-cross_search_paths-1.patch
+Patch5: gcc-4.1.1-minix-install.patch
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
+BuildRequires: %{target}-binutils zlib-devel
+Requires: %{target}-binutils
+%if %{bootstrap}
+#BuildRequires: %{target}-%{target_system}-kernel-headers
+%else
+BuildRequires: %{target}-glibc
+Requires: %{target}-glibc
+Obsoletes: %{target}-gcc-static
+%endif
+
+%description
+This is a Cross Compiling version of GNU GCC, which can be used to
+compile programs for the %{target} platform, instead of for the
+native %{_arch} platform.
+
+
+%if !%{bootstrap}
+
+%package c++
+Summary: Cross Compiling GNU G++ targeted at %{target}
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+
+%description c++
+This package contains the Cross Compiling version of g++, which can be used to
+compile c++ code for the %{target} platform, instead of for the
+native %{_arch} platform.
+
+%endif
+
+
+%prep
+%setup -q -c -a 1
+cp -a %{SOURCE1} .
+pushd gcc-%{version}*
+%if %(test "%{target_base_arch}" = "arm" && echo 1 || echo 0)
+#%patch0 -p1
+%endif
+#%patch1 -p1
+%if !%{bootstrap}
+#%patch3 -p1
+#%patch4 -p1
+%else
+#%patch2 -p1
+%endif
+%patch5 -p1
+sed -i 's/VERSUFFIX ".*"/VERSUFFIX " (%{vendor_name} %{version}-%{release})"/' \
+ gcc/version.c
+contrib/gcc_update --touch
+# Set up the compiler to take the include files from our toolchain
+echo "
+#undef STARTFILE_PREFIX_SPEC
+#define STARTFILE_PREFIX_SPEC \"%{_prefix}/%{target}/lib/\"" >> gcc/config/linux.h
+cp gcc/Makefile.in{,.orig}
+sed -e "s@\(^CROSS_SYSTEM_HEADER_DIR =\).*@\1 %{_prefix}/%{target}/include at g" gcc/Makefile.in.orig > gcc/Makefile.in
+popd
+
+# Extract %%__os_install_post into os_install_post~
+cat << \EOF > os_install_post~
+%__os_install_post
+EOF
+
+# Generate customized brp-*scripts
+cat os_install_post~ | while read a x y; do
+case $a in
+# Prevent brp-strip* from trying to handle foreign binaries
+*/brp-strip*)
+ b=$(basename $a)
+ sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
+ chmod a+x $b
+ ;;
+esac
+done
+
+sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
+< os_install_post~ > os_install_post
+
+%build
+%if %{bootstrap}
+%define languages 'c'
+%else
+%define languages 'c,c++'
+%endif
+mkdir -p build-%{target}-gcc
+pushd build-%{target}-gcc
+CC="%{__cc} ${RPM_OPT_FLAGS}" \
+../gcc-%{version}*/configure --prefix=%{_prefix} \
+ --mandir=%{_mandir} --infodir=%{_infodir} \
+%if %{bootstrap}
+ --with-build-sysroot=%{_builddir}/%{name}-%{version}/sysroot \
+ --disable-threads --disable-shared \
+%if %{use_softfp}
+ --with-float=soft \
+%endif
+%else
+ --enable-long-long --enable-threads=posix \
+ --disable-libstdcxx-pch \
+ --enable-__cxa_atexit \
+ --enable-symvers=gnu \
+ --enable-version-specific-runtime-libs \
+ --enable-c99 \
+ --with-system-zlib \
+ --enable-shared \
+%endif
+ --target=%{target} --enable-languages=%{languages} \
+ --disable-libmudflap --disable-libssp --disable-multilib \
+%if %{use_cpu_defs}
+ %{cpu_defs} \
+%endif
+ --disable-nls
+
+# In general, building GCC is not smp-safe
+%if %{bootstrap}
+make all-gcc
+%else
+make AS_FOR_TARGET="%{target}-as" \
+ LD_FOR_TARGET="%{target}-ld"
+%endif
+popd
+
+%install
+rm -rf $RPM_BUILD_ROOT
+pushd build-%{target}-gcc
+%if %{bootstrap}
+make install-gcc DESTDIR=$RPM_BUILD_ROOT
+%else
+make install DESTDIR=$RPM_BUILD_ROOT
+%endif
+popd
+# we don't want these as we are a cross version
+rm -r $RPM_BUILD_ROOT%{_infodir}
+rm -r $RPM_BUILD_ROOT%{_mandir}/man7
+rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
+# and these aren't usefull for embedded targets
+rm -fr $RPM_BUILD_ROOT%{_bindir}/gcc/%{target}/%{version}/install-tools
+rm -fr $RPM_BUILD_ROOT%{_libexecdir}/gcc/%{target}/%{version}/install-tools
+%if !%{bootstrap}
+rm -f $RPM_BUILD_ROOT%{_prefix}/%{target}/lib/libiberty.a
+rm -f $RPM_BUILD_ROOT%{_prefix}/%{target}/lib64/libiberty.a
+rm -f $RPM_BUILD_ROOT%{_bindir}/gcc/%{target}/%{version}/*.la
+%endif
+
+# creating links (<cpu>-<system>) of cross-tools for use with tsrpm
+for FILE in $RPM_BUILD_ROOT%{_bindir}/%{target}-*; do
+ ln ${FILE} `echo ${FILE} | sed -e "s/\(.*%{version}.*\)%{target}\(.*\)/\1%{target_arch}-%{target_system}\2/g"`
+done
+
+%define __os_install_post . ./os_install_post
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%files
+%defattr(-,root,root,-)
+%doc gcc-%{version}*/COPYING gcc-%{version}*/COPYING.LIB
+%doc gcc-%{version}*/README README-gcc.fedora
+%{_bindir}/%{target}-*
+%{_bindir}/%{target_arch}-%{target_system}-*
+%{_prefix}/lib*/gcc/%{target}/
+%{_libexecdir}/gcc/%{target}/
+%{_mandir}/man1/%{target}-*.1.gz
+
+%if !%{bootstrap}
+
+%exclude %{_bindir}/%{target}-?++
+%exclude %{_bindir}/%{target_arch}-%{target_system}-?++
+%exclude /usr/lib/gcc/%{target}/%{version}/lib*c++.a
+%exclude /usr/lib/gcc/%{target}/%{version}/include/c++
+%exclude %{_libexecdir}/gcc/%{target}/%{version}/cc1plus
+%exclude %{_includedir}/omp.h
+%exclude %{_mandir}/man1/%{target}-g++.1.gz
+
+
+%files c++
+%defattr(-,root,root,-)
+%{_bindir}/%{target}-?++
+%{_bindir}/%{target_arch}-%{target_system}-?++
+/usr/lib/gcc/%{target}/%{version}/lib*c++.a
+/usr/lib/gcc/%{target}/%{version}/include/c++
+%{_libexecdir}/gcc/%{target}/%{version}/cc1plus
+%{_mandir}/man1/%{target}-g++.1.gz
+
+%endif
+
+
+%changelog
+* Tue Mar 25 2008 Brian Schueler <brian.schueler at gmx.de> 4.1.2-7
+- switched from Linux threads to POSIX threads
+
+* Fri Aug 3 2007 Kevin Kofler <Kevin at tigcc.ticalc.org> 4.1.2-6
+- Disable bootstrap
+- Add "GP2X" to VERSUFFIX
+- Link C++ against -lgcc_eh to fix undefined references
+- Specify GPL version in License tag
+
+* Thu May 31 2007 Hans de Goede <j.w.r.degoede at hhs.nl> 4.1.2-5
+- Merge in avr-gcc cross compile changes
+
+* Thu May 31 2007 Koos Termeulen koostermeulen at gmail.com 4.1.2-4
+- Moved kernel-headers to separate package
+- Added bootstrap option to define whether we want a bootstrapped gcc or not
+
+* Thu May 10 2007 Koos Termeulen koostermeulen at gmail.com 4.1.2-3
+- Added "linux-2.6.21-headers" and "glibc-2.3.5-headers" for bootstrapping gcc
+- Glibc-2.3.5 is used because the arm is not supported in version 2.5
+
+* Thu Apr 26 2007 Koos Termeulen koostermeulen at gmail.com 4.1.2-2
+- Correction in description
+- Changes in ./configure
+- Don't remove the devel-files from package
+- Removed CFLAGS because it didn't work properly
+
+* Thu Apr 20 2007 Koos Termeulen koostermeulen at gmail.com 4.1.2-1
+- Initial release
Added: branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.1-cross_search_paths-1.patch
===================================================================
--- branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.1-cross_search_paths-1.patch (rev 0)
+++ branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.1-cross_search_paths-1.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,49 @@
+Submitted by: Ryan Oliver <ryan.oliver at pha.com.au>
+Date: 2005-05-02
+Initial Package Version: 4.0.1
+Origin: Ryan Oliver (issue reported by Erik-Jan Post)
+ Rediffed against 4.1.0 by Chris Staub
+Upstream Status: N/A
+Description:
+ Removes standard_exec_prefix_2 from library search path when cross-compiling.
+ Removes both standard_exec_prefix_1 and standard_exec_prefix_2 from the gcc
+ executable search path when cross-compiling.
+
+ ie: if cross_compile = 1 in the specs file, do not
+ - do not add /usr/lib/gcc/${TARGET}/${GCC_VER} to the library search path
+ - do not add /usr/lib/gcc/${TARGET}/${GCC_VER} or
+ /usr/libexec/gcc/${TARGET}/${GCC_VER}
+ to the executable search path
+
+ This avoids the possibility of linking in libraries from the host if they
+ exist under those directories.
+
+diff -Naur gcc-4.1.0.orig/gcc/gcc.c gcc-4.1.0/gcc/gcc.c
+--- gcc-4.1.0.orig/gcc/gcc.c 2006-01-21 13:29:08.000000000 -0500
++++ gcc-4.1.0/gcc/gcc.c 2006-02-28 22:20:05.000000000 -0500
+@@ -3818,16 +3818,22 @@
+ PREFIX_PRIORITY_LAST, 2, 0);
+ add_prefix (&exec_prefixes, standard_exec_prefix, "BINUTILS",
+ PREFIX_PRIORITY_LAST, 2, 0);
+- add_prefix (&exec_prefixes, standard_exec_prefix_1, "BINUTILS",
++ if (*cross_compile == '0')
++ {
++ add_prefix (&exec_prefixes, standard_exec_prefix_1, "BINUTILS",
+ PREFIX_PRIORITY_LAST, 2, 0);
+- add_prefix (&exec_prefixes, standard_exec_prefix_2, "BINUTILS",
++ add_prefix (&exec_prefixes, standard_exec_prefix_2, "BINUTILS",
+ PREFIX_PRIORITY_LAST, 2, 0);
++ }
+ #endif
+
+ add_prefix (&startfile_prefixes, standard_exec_prefix, "BINUTILS",
+ PREFIX_PRIORITY_LAST, 1, 0);
+- add_prefix (&startfile_prefixes, standard_exec_prefix_2, "BINUTILS",
++ if (*cross_compile == '0')
++ {
++ add_prefix (&startfile_prefixes, standard_exec_prefix_2, "BINUTILS",
+ PREFIX_PRIORITY_LAST, 1, 0);
++ }
+
+ tooldir_prefix = concat (tooldir_base_prefix, spec_machine,
+ dir_separator_str, NULL);
Property changes on: branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.1-cross_search_paths-1.patch
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.1-minix-install.patch
===================================================================
--- branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.1-minix-install.patch (rev 0)
+++ branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.1-minix-install.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,27 @@
+diff -ruN gcc-4.1.1/gcc/Makefile.in gcc-4.1.1.bs/gcc/Makefile.in
+--- gcc-4.1.1/gcc/Makefile.in 2006-11-03 11:59:50.000000000 +0100
++++ gcc-4.1.1.bs/gcc/Makefile.in 2008-04-16 19:32:42.000000000 +0200
+@@ -1296,7 +1296,6 @@
+ cc1-dummy$(exeext): $(C_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) dummy-checksum.o \
+ $(BACKEND) $(LIBS)
+- install -S 125Mb $@
+
+ cc1-checksum.c : cc1-dummy$(exeext) build/genchecksum$(build_exeext)
+ build/genchecksum$(build_exeext) cc1-dummy$(exeext) > $@
+@@ -1306,7 +1305,6 @@
+ cc1$(exeext): $(C_OBJS) cc1-checksum.o $(BACKEND) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) cc1-checksum.o \
+ $(BACKEND) $(LIBS)
+- install -S 125Mb $@
+
+ # Build the version of limits.h that we will install.
+ xlimits.h: glimits.h limitx.h limity.h
+@@ -2913,7 +2911,6 @@
+ build/genattrtab.o build/genautomata.o \
+ $(BUILD_RTL) $(BUILD_SUPPORT) $(BUILD_PRINT) $(BUILD_ERRORS) \
+ $(BUILD_VARRAY) $(BUILD_LIBS) -lm
+- install -S 70Mb $@
+
+ build/genattrtab.o : genattrtab.c $(RTL_BASE_H) $(OBSTACK_H) $(BCONFIG_H) \
+ $(SYSTEM_H) coretypes.h $(GTM_H) errors.h $(GGC_H) gensupport.h genattrtab.h
Added: branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.2-gcc_eh.patch
===================================================================
--- branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.2-gcc_eh.patch (rev 0)
+++ branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.2-gcc_eh.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,24 @@
+diff -ur gcc-4.1.2/gcc/cp/g++spec.c gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c
+--- gcc-4.1.2/gcc/cp/g++spec.c 2005-06-25 02:59:41.000000000 +0200
++++ gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c 2007-08-03 14:46:03.000000000 +0200
+@@ -251,7 +251,7 @@
+ #endif
+
+ /* Make sure to have room for the trailing NULL argument. */
+- num_args = argc + added + need_math + shared_libgcc + (library > 0) + 1;
++ num_args = argc + added + need_math + shared_libgcc + 2 * (library > 0) + 1;
+ arglist = xmalloc (num_args * sizeof (char *));
+
+ i = 0;
+@@ -311,7 +311,10 @@
+ {
+ arglist[j] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX;
+ if (arglist[j][0] != '-' || arglist[j][1] == 'l')
+- added_libraries++;
++ {
++ arglist[++j] = "-lgcc_eh";
++ added_libraries += 2;
++ }
+ j++;
+ }
+ if (saw_math)
Added: branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.2-version.patch
===================================================================
--- branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.2-version.patch (rev 0)
+++ branches/rpms/brian/i386-pc-minix-gcc-static/gcc-4.1.2-version.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,6 @@
+diff -ruN gcc-4.1.2-20070626/gcc/BASE-VER gcc-4.1.2-20070626.new/gcc/BASE-VER
+--- gcc-4.1.2-20070626/gcc/BASE-VER 2007-06-22 13:14:40.000000000 +0200
++++ gcc-4.1.2-20070626.new/gcc/BASE-VER 2008-03-30 17:02:26.000000000 +0200
+@@ -1 +1 @@
+-4.1.3
++4.1.2
Added: branches/rpms/brian/i386-pc-minix-gcc-static/gcc40-cross-build-fixes.patch
===================================================================
--- branches/rpms/brian/i386-pc-minix-gcc-static/gcc40-cross-build-fixes.patch (rev 0)
+++ branches/rpms/brian/i386-pc-minix-gcc-static/gcc40-cross-build-fixes.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,52 @@
+--- gcc-4.1.2/configure.cross-build-fixes 2007-01-25 16:47:43.000000000 +0100
++++ gcc-4.1.2/configure 2007-01-25 16:47:43.000000000 +0100
+@@ -3260,7 +3260,13 @@ CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CF
+ # being built; programs in there won't even run.
+ if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
+ # Search for pre-installed headers if nothing else fits.
+- FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
++ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/'
++ if test "${with_build_sysroot+set}" = set; then
++ sysroot_dir="$with_build_sysroot"
++ else
++ sysroot_dir='$(build_tooldir)/'
++ fi
++ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET" -isystem $sysroot_dir/usr/include"
+ fi
+
+ if test "x${use_gnu_ld}" = x &&
+--- gcc-4.1.2/gcc/mklibgcc.in.cross-build-fixes 2006-09-21 13:30:29.000000000 +0200
++++ gcc-4.1.2/gcc/mklibgcc.in 2007-01-25 16:47:43.000000000 +0100
+@@ -196,7 +196,7 @@ for ml in $MULTILIBS; do
+ shlib_slibdir_qual=
+ libgcc_a=$dir/libgcc.a
+ libgcov_a=$dir/libgcov.a
+- libgcc_eh_a=
++ libgcc_eh_a=$dir/libgcc_eh.a
+ libgcc_s_so=
+ libunwind_a=
+ libunwind_so=
+@@ -205,7 +205,6 @@ for ml in $MULTILIBS; do
+ libunwind_a=$dir/libunwind.a
+ fi
+ if [ "$SHLIB_LINK" ]; then
+- libgcc_eh_a=$dir/libgcc_eh.a
+ libgcc_s_so=$dir/libgcc_s${SHLIB_EXT}
+ if [ "$LIBUNWIND" ]; then
+ libunwind_so=$dir/libunwind${SHLIB_EXT}
+@@ -868,12 +867,11 @@ for ml in $MULTILIBS; do
+ echo ' $(INSTALL_DATA)' ${dir}/libgcov.a ${ldir}/
+ echo ' chmod 644' ${ldir}/libgcov.a
+ echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcov.a
++ echo ' $(INSTALL_DATA)' ${dir}/libgcc_eh.a ${ldir}/
++ echo ' chmod 644' ${ldir}/libgcc_eh.a
++ echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc_eh.a
+
+ if [ "$SHLIB_LINK" ]; then
+- echo ' $(INSTALL_DATA)' ${dir}/libgcc_eh.a ${ldir}/
+- echo ' chmod 644' ${ldir}/libgcc_eh.a
+- echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc_eh.a
+-
+ shlib_slibdir_qual=
+ os_multilib_dir=`$GCC_FOR_TARGET $flags --print-multi-os-directory`
+ if [ "$os_multilib_dir" != . ]; then
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/README-binutils.fedora
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/README-binutils.fedora (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/README-binutils.fedora 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,4 @@
+This package does not include the gnu texinfo documentation because this would
+conflict with the native binutils. If you've installed the native binutils,
+you can find the info documentation there, notice that this might be for a
+different version though!
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17-posix-1.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17-posix-1.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17-posix-1.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,98 @@
+Submitted By: Jim Gifford (patches at jg555 dot com)
+Date: 2005-05-06
+Initial Package Version: 2.16
+Origin: http://ttervo.vectorstar.net/nptl/posix-patches/binutils-2.14.90.0.7-posix-head-tail.patch
+Upstream Status: Accepted/but Suspended
+Description: Makes Posix Compliant
+ Rediffed against 2.16 by Jeremy Huntwork
+
+diff -Naur binutils-2.16-ORIG/gas/Makefile.am binutils-2.16/gas/Makefile.am
+--- binutils-2.16-ORIG/gas/Makefile.am 2005-03-22 10:31:44.000000000 -0500
++++ binutils-2.16/gas/Makefile.am 2005-05-06 17:08:11.859876859 -0400
+@@ -762,13 +762,13 @@
+ against=stage2
+
+ # This rule is derived from corresponding code in the Makefile.in for gcc.
+-# The "tail +16c" is to bypass headers which may include timestamps or
++# The "tail -c +16" is to bypass headers which may include timestamps or
+ # temporary assembly file names.
+ comparison:
+ x=0 ; \
+ for file in *.o ; do \
+- tail +16c ./$$file > tmp-foo1; \
+- if tail +16c ${against}/$$file > tmp-foo2 2>/dev/null ; then \
++ tail -c +16 ./$$file > tmp-foo1; \
++ if tail -c +16 ${against}/$$file > tmp-foo2 2>/dev/null ; then \
+ if cmp tmp-foo1 tmp-foo2 ; then \
+ true ; \
+ else \
+diff -Naur binutils-2.16-ORIG/gas/Makefile.in binutils-2.16/gas/Makefile.in
+--- binutils-2.16-ORIG/gas/Makefile.in 2005-04-29 09:57:16.000000000 -0400
++++ binutils-2.16/gas/Makefile.in 2005-05-06 17:08:11.868875659 -0400
+@@ -3164,13 +3164,13 @@
+ if [ -f stage3/as-new$(EXEEXT) -a ! -f stage3/as$(EXEEXT) ] ; then (cd stage3 ; ln -s as-new as$(EXEEXT)) ; fi
+
+ # This rule is derived from corresponding code in the Makefile.in for gcc.
+-# The "tail +16c" is to bypass headers which may include timestamps or
++# The "tail -c +16" is to bypass headers which may include timestamps or
+ # temporary assembly file names.
+ comparison:
+ x=0 ; \
+ for file in *.o ; do \
+- tail +16c ./$$file > tmp-foo1; \
+- if tail +16c ${against}/$$file > tmp-foo2 2>/dev/null ; then \
++ tail -c +16 ./$$file > tmp-foo1; \
++ if tail -c +16 ${against}/$$file > tmp-foo2 2>/dev/null ; then \
+ if cmp tmp-foo1 tmp-foo2 ; then \
+ true ; \
+ else \
+diff -Naur binutils-2.16-ORIG/ld/testsuite/ld-bootstrap/bootstrap.exp binutils-2.16/ld/testsuite/ld-bootstrap/bootstrap.exp
+--- binutils-2.16-ORIG/ld/testsuite/ld-bootstrap/bootstrap.exp 2005-03-03 06:52:06.000000000 -0500
++++ binutils-2.16/ld/testsuite/ld-bootstrap/bootstrap.exp 2005-05-06 17:08:11.870875393 -0400
+@@ -149,8 +149,8 @@
+ # Although this works, a way to set the date would be better.
+ # Removing or zeroing the date stamp in the binary produced by
+ # the linker is not possible as it is required by the target OS.
+- exec tail +140 tmpdir/ld2 >tmpdir/ld2tail
+- exec tail +140 tmpdir/ld3 >tmpdir/ld3tail
++ exec tail -n +140 tmpdir/ld2 >tmpdir/ld2tail
++ exec tail -n +140 tmpdir/ld3 >tmpdir/ld3tail
+ catch "exec cmp tmpdir/ld2tail tmpdir/ld3tail" exec_output
+ exec rm tmpdir/ld2tail tmpdir/ld3tail
+ } else {
+diff -Naur binutils-2.16-ORIG/ltcf-c.sh binutils-2.16/ltcf-c.sh
+--- binutils-2.16-ORIG/ltcf-c.sh 2004-10-05 09:34:42.000000000 -0400
++++ binutils-2.16/ltcf-c.sh 2005-05-06 17:08:11.873874993 -0400
+@@ -153,7 +153,7 @@
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is.
+ # If DATA tags from a recent dlltool are present, honour them!
+- archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
++ archive_expsym_cmds='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname-def;
+ else
+ echo EXPORTS > $output_objdir/$soname-def;
+diff -Naur binutils-2.16-ORIG/ltcf-gcj.sh binutils-2.16/ltcf-gcj.sh
+--- binutils-2.16-ORIG/ltcf-gcj.sh 2004-07-21 15:21:41.000000000 -0400
++++ binutils-2.16/ltcf-gcj.sh 2005-05-06 17:08:11.876874593 -0400
+@@ -156,7 +156,7 @@
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is.
+ # If DATA tags from a recent dlltool are present, honour them!
+- archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
++ archive_expsym_cmds='if test "x`head -n 1 $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname-def;
+ else
+ echo EXPORTS > $output_objdir/$soname-def;
+diff -Naur binutils-2.16-ORIG/src-release binutils-2.16/src-release
+--- binutils-2.16-ORIG/src-release 2004-12-03 05:30:06.000000000 -0500
++++ binutils-2.16/src-release 2005-05-06 17:08:11.878874327 -0400
+@@ -69,7 +69,7 @@
+ elif grep AM_INIT_AUTOMAKE $(TOOL)/configure.in >/dev/null 2>&1; then \
+ sed < $(TOOL)/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'; \
+ elif test -f $(TOOL)/version.in; then \
+- head -1 $(TOOL)/version.in; \
++ head -n 1 $(TOOL)/version.in; \
+ elif grep VERSION $(TOOL)/Makefile.in > /dev/null 2>&1; then \
+ sed < $(TOOL)/Makefile.in -n 's/^VERSION *= *//p'; \
+ else \
Property changes on: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17-posix-1.patch
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-build-fixes.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-build-fixes.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-build-fixes.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,29 @@
+2006-02-14 Jakub Jelinek <jakub at redhat.com>
+
+ld/testsuite/
+ * ld-shared/main.c (main): Prevent warnings about unused p.
+ * ld-elfcomm/common1b.c (dummy1): Add __attribute__((__used__)) for
+ GCC 3.3+.
+
+--- ld/testsuite/ld-shared/main.c.jj 2001-07-11 15:48:54.000000000 +0200
++++ ld/testsuite/ld-shared/main.c 2006-02-14 10:07:08.000000000 +0100
+@@ -40,6 +40,8 @@ main ()
+ {
+ int (*p) ();
+
++ p = (void *) 0;
++ (void) p;
+ printf ("mainvar == %d\n", mainvar);
+ printf ("overriddenvar == %d\n", overriddenvar);
+ printf ("shlibvar1 == %d\n", shlibvar1);
+--- ld/testsuite/ld-elfcomm/common1b.c.jj 2003-04-15 11:38:10.000000000 +0200
++++ ld/testsuite/ld-elfcomm/common1b.c 2006-02-14 10:11:19.000000000 +0100
+@@ -1,3 +1,7 @@
+-static char dummy1 = 'X';
++static char dummy1
++#if defined __GNUC__ && (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
++ __attribute__((__used__))
++#endif
++ = 'X';
+ char foo1 [] = "Aligned at odd byte.";
+ char foo2 [4];
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-bz4267.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-bz4267.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-bz4267.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,30 @@
+2007-03-29 Alan Modra <amodra at bigpond.net.au>
+
+ PR ld/4267
+ * elf32-ppc.c (allocate_dynrelocs): Set plt.offset to -1 for
+ unused entries. Don't clear plt.plist in loop.
+
+--- bfd/elf32-ppc.c 26 Mar 2007 12:23:00 -0000 1.211
++++ bfd/elf32-ppc.c 29 Mar 2007 01:11:30 -0000 1.212
+@@ -4500,13 +4500,15 @@ allocate_dynrelocs (struct elf_link_hash
+ }
+ else
+ ent->plt.offset = (bfd_vma) -1;
+-
+- if (!doneone)
+- {
+- h->plt.plist = NULL;
+- h->needs_plt = 0;
+- }
+ }
++ else
++ ent->plt.offset = (bfd_vma) -1;
++
++ if (!doneone)
++ {
++ h->plt.plist = NULL;
++ h->needs_plt = 0;
++ }
+ }
+ else
+ {
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-elfvsb-test.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-elfvsb-test.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-elfvsb-test.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,85 @@
+2004-08-03 Jakub Jelinek <jakub at redhat.com>
+
+ * ld-elfvsb/sh1.c (overriddenvar, shlib_overriddencall2): If
+ !SHARED, move to...
+ * ld-elfvsb/sh2.c: ... here.
+ * ld-elfvsb/elfvsb.exp: Add -DSHARED to compiler options when building
+ {sh[123],main}.c with $picflag.
+
+--- ld/testsuite/ld-elfvsb/sh1.c.jj 2003-05-05 17:46:50.000000000 -0400
++++ ld/testsuite/ld-elfvsb/sh1.c 2004-08-03 13:15:48.000000000 -0400
+@@ -13,7 +13,11 @@ extern int mainvar;
+ /* This variable is defined in the shared library, and overridden by
+ the main program. */
+ #ifndef XCOFF_TEST
++#ifdef SHARED
+ int overriddenvar = -1;
++#else
++extern int overriddenvar;
++#endif
+ #endif
+
+ /* This variable is defined in the shared library. */
+@@ -76,12 +80,14 @@ shlib_shlibcall2 ()
+ return shlib_overriddencall2 ();
+ }
+
++#ifdef SHARED
+ int
+ shlib_overriddencall2 ()
+ {
+ return 7;
+ }
+ #endif
++#endif
+
+ /* This function calls a function defined by the main program. */
+
+--- ld/testsuite/ld-elfvsb/elfvsb.exp.jj 2004-05-27 14:26:05.000000000 -0400
++++ ld/testsuite/ld-elfvsb/elfvsb.exp 2004-08-03 13:13:40.000000000 -0400
+@@ -315,8 +315,8 @@ proc visibility_run {visibility} {
+
+ # Now compile the code using -fpic.
+
+- if { ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o]
+- || ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/sh2.c $tmpdir/sh2p.o] } {
++ if { ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG -DSHARED $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o]
++ || ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG -DSHARED $picflag" $srcdir/$subdir/sh2.c $tmpdir/sh2p.o] } {
+ unresolved "visibility ($visibility)"
+ } else {
+ if { [ string match $visibility "protected" ]
+@@ -337,7 +337,7 @@ proc visibility_run {visibility} {
+ }
+
+ # Now do the same tests again, but this time compile main.c PIC.
+- if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/main.c $tmpdir/mainp.o] {
++ if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG -DSHARED $picflag" $srcdir/$subdir/main.c $tmpdir/mainp.o] {
+ unresolved "visibility ($visibility) (PIC main, non PIC so)"
+ unresolved "visibility ($visibility) (PIC main)"
+ } else {
+@@ -446,7 +446,7 @@ if { ![ld_compile "$CC -g $CFLAGS" $srcd
+ if { ![ld_compile "$CC -g $CFLAGS" $srcdir/$subdir/test.c tmpdir/test.o] } {
+ unresolved "weak hidden symbol"
+ } else {
+- if { ![ld_compile "$CC -g $CFLAGS $picflag" $srcdir/$subdir/sh3.c tmpdir/sh3.o] } {
++ if { ![ld_compile "$CC -g $CFLAGS -DSHARED $picflag" $srcdir/$subdir/sh3.c tmpdir/sh3.o] } {
+ unresolved "weak hidden symbol"
+ } else {
+ if ![ld_simple_link $ld tmpdir/sh3.so "-shared tmpdir/sh3.o"] {
+--- ld/testsuite/ld-elfvsb/sh2.c.jj 2003-05-05 17:46:50.000000000 -0400
++++ ld/testsuite/ld-elfvsb/sh2.c 2004-08-03 13:14:22.000000000 -0400
+@@ -44,3 +44,13 @@ visibility_func_weak ()
+ return 2;
+ }
+ #endif
++
++#if !defined (XCOFF_TEST) && !defined (SHARED)
++int overriddenvar = -1;
++
++int
++shlib_overriddencall2 ()
++{
++ return 7;
++}
++#endif
+
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-fixsyms.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-fixsyms.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-fixsyms.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,82 @@
+2006-10-23 Alan Modra <amodra at bigpond.net.au>
+
+ * linker.c (fix_syms): Choose best of previous and next
+ section based on section flags and vma.
+
+--- bfd/linker.c 17 Oct 2006 13:41:47 -0000 1.55
++++ bfd/linker.c 23 Oct 2006 02:35:38 -0000 1.56
+@@ -3092,25 +3092,62 @@ fix_syms (struct bfd_link_hash_entry *h,
+ && (s->output_section->flags & SEC_EXCLUDE) != 0
+ && bfd_section_removed_from_list (obfd, s->output_section))
+ {
+- asection *op;
+- for (op = s->output_section->prev; op != NULL; op = op->prev)
++ asection *op, *op1;
++
++ h->u.def.value += s->output_offset + s->output_section->vma;
++
++ /* Find preceding kept section. */
++ for (op1 = s->output_section->prev; op1 != NULL; op1 = op1->prev)
++ if ((op1->flags & SEC_EXCLUDE) == 0
++ && !bfd_section_removed_from_list (obfd, op1))
++ break;
++
++ /* Find following kept section. Start at prev->next because
++ other sections may have been added after S was removed. */
++ if (s->output_section->prev != NULL)
++ op = s->output_section->prev->next;
++ else
++ op = s->output_section->owner->sections;
++ for (; op != NULL; op = op->next)
+ if ((op->flags & SEC_EXCLUDE) == 0
+ && !bfd_section_removed_from_list (obfd, op))
+ break;
+- if (op == NULL)
++
++ /* Choose better of two sections, based on flags. The idea
++ is to choose a section that will be in the same segment
++ as S would have been if it was kept. */
++ if (op1 == NULL)
+ {
+- if (s->output_section->prev != NULL)
+- op = s->output_section->prev->next;
+- else
+- op = s->output_section->owner->sections;
+- for (; op != NULL; op = op->next)
+- if ((op->flags & SEC_EXCLUDE) == 0
+- && !bfd_section_removed_from_list (obfd, op))
+- break;
+ if (op == NULL)
+ op = bfd_abs_section_ptr;
+ }
+- h->u.def.value += s->output_offset + s->output_section->vma;
++ else if (op == NULL)
++ op = op1;
++ else if (((op1->flags ^ op->flags)
++ & (SEC_ALLOC | SEC_THREAD_LOCAL)) != 0)
++ {
++ if (((op->flags ^ s->flags)
++ & (SEC_ALLOC | SEC_THREAD_LOCAL)) != 0)
++ op = op1;
++ }
++ else if (((op1->flags ^ op->flags) & SEC_READONLY) != 0)
++ {
++ if (((op->flags ^ s->flags) & SEC_READONLY) != 0)
++ op = op1;
++ }
++ else if (((op1->flags ^ op->flags) & SEC_CODE) != 0)
++ {
++ if (((op->flags ^ s->flags) & SEC_CODE) != 0)
++ op = op1;
++ }
++ else
++ {
++ /* Flags we care about are the same. Prefer the following
++ section if that will result in a positive valued sym. */
++ if (h->u.def.value < op->vma)
++ op = op1;
++ }
++
+ h->u.def.value -= op->vma;
+ h->u.def.section = op;
+ }
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-gas-debug-ranges-revert.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-gas-debug-ranges-revert.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-gas-debug-ranges-revert.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,343 @@
+gas/
+2006-10-13 Sterling Augstine <sterling at tensilica.com>
+
+ * dwarf2dbg.c (out_debug_info): Use TC_DWARF2_EMIT_OFFSET to emit
+ a disjoint DW_AT range.
+
+2006-08-08 Bob Wilson <bob.wilson at acm.org>
+
+ * dwarf2dbg.c (DWARF2_USE_FIXED_ADVANCE_PC): New.
+ (out_sleb128): New.
+ (out_fixed_inc_line_addr): New.
+ (process_entries): Use out_fixed_inc_line_addr when
+ DWARF2_USE_FIXED_ADVANCE_PC is set.
+ * config/tc-xtensa.h (DWARF2_USE_FIXED_ADVANCE_PC): Define.
+
+2006-08-08 Sterling Augustine <sterling at tensilica.com>
+
+ * dwarf2dbg.c (out_debug_info): Add new parameter ranges_seg
+ and emit DW_AT_ranges when code in compilation unit is not
+ contiguous.
+ (out_debug_abbrev): Emit DW_AT_ranges abbreviation if code in
+ is not contiguous.
+ (dwarf2_finish): Create and pass ranges_seg to out_debug_info.
+ (out_debug_ranges): New function to emit .debug_ranges section
+ when code is not contiguous.
+gas/testsuite/
+2006-08-08 Bob Wilson <bob.wilson at acm.org>
+
+ * gas/lns/lns-common-1-alt.d: New file.
+ * gas/lns/lns.exp: Use lns-common-1-alt.d for xtensa targets.
+
+--- gas/dwarf2dbg.c 2006-07-15 14:23:50.000000000 -0400
++++ gas/dwarf2dbg.c 2006-10-20 14:50:58.000000000 -0400
+@@ -88,6 +88,13 @@
+ #define DL_FILES 1
+ #define DL_BODY 2
+
++/* If linker relaxation might change offsets in the code, the DWARF special
++ opcodes and variable-length operands cannot be used. If this macro is
++ nonzero, use the DW_LNS_fixed_advance_pc opcode instead. */
++#ifndef DWARF2_USE_FIXED_ADVANCE_PC
++# define DWARF2_USE_FIXED_ADVANCE_PC 0
++#endif
++
+ /* First special line opcde - leave room for the standard opcodes.
+ Note: If you want to change this, you'll have to update the
+ "standard_opcode_lengths" table that is emitted below in
+@@ -191,22 +198,22 @@ static void out_two (int);
+ static void out_four (int);
+ static void out_abbrev (int, int);
+ static void out_uleb128 (addressT);
++static void out_sleb128 (addressT);
+ static offsetT get_frag_fix (fragS *, segT);
+ static void out_set_addr (symbolS *);
+ static int size_inc_line_addr (int, addressT);
+ static void emit_inc_line_addr (int, addressT, char *, int);
+ static void out_inc_line_addr (int, addressT);
++static void out_fixed_inc_line_addr (int, symbolS *, symbolS *);
+ static void relax_inc_line_addr (int, symbolS *, symbolS *);
+ static void process_entries (segT, struct line_entry *);
+ static void out_file_list (void);
+ static void out_debug_line (segT);
+ static void out_debug_aranges (segT, segT);
+ static void out_debug_abbrev (segT);
+-static void out_debug_info (segT, segT, segT);
+
+ #ifndef TC_DWARF2_EMIT_OFFSET
+-# define TC_DWARF2_EMIT_OFFSET generic_dwarf2_emit_offset
+-static void generic_dwarf2_emit_offset (symbolS *, unsigned int);
++#define TC_DWARF2_EMIT_OFFSET generic_dwarf2_emit_offset
+
+ /* Create an offset to .dwarf2_*. */
+
+@@ -746,6 +753,14 @@ out_uleb128 (addressT value)
+ output_leb128 (frag_more (sizeof_leb128 (value, 0)), value, 0);
+ }
+
++/* Emit a signed "little-endian base 128" number. */
++
++static void
++out_sleb128 (addressT value)
++{
++ output_leb128 (frag_more (sizeof_leb128 (value, 1)), value, 1);
++}
++
+ /* Emit a tuple for .debug_abbrev. */
+
+ static inline void
+@@ -979,6 +994,45 @@ out_inc_line_addr (int line_delta, addre
+ emit_inc_line_addr (line_delta, addr_delta, frag_more (len), len);
+ }
+
++/* Write out an alternative form of line and address skips using
++ DW_LNS_fixed_advance_pc opcodes. This uses more space than the default
++ line and address information, but it helps support linker relaxation that
++ changes the code offsets. */
++
++static void
++out_fixed_inc_line_addr (int line_delta, symbolS *to_sym, symbolS *from_sym)
++{
++ expressionS expr;
++
++ /* INT_MAX is a signal that this is actually a DW_LNE_end_sequence. */
++ if (line_delta == INT_MAX)
++ {
++ out_opcode (DW_LNS_fixed_advance_pc);
++ expr.X_op = O_subtract;
++ expr.X_add_symbol = to_sym;
++ expr.X_op_symbol = from_sym;
++ expr.X_add_number = 0;
++ emit_expr (&expr, 2);
++
++ out_opcode (DW_LNS_extended_op);
++ out_byte (1);
++ out_opcode (DW_LNE_end_sequence);
++ return;
++ }
++
++ out_opcode (DW_LNS_advance_line);
++ out_sleb128 (line_delta);
++
++ out_opcode (DW_LNS_fixed_advance_pc);
++ expr.X_op = O_subtract;
++ expr.X_add_symbol = to_sym;
++ expr.X_op_symbol = from_sym;
++ expr.X_add_number = 0;
++ emit_expr (&expr, 2);
++
++ out_opcode (DW_LNS_copy);
++}
++
+ /* Generate a variant frag that we can use to relax address/line
+ increments between fragments of the target segment. */
+
+@@ -1129,6 +1183,8 @@ process_entries (segT seg, struct line_e
+ out_set_addr (lab);
+ out_inc_line_addr (line_delta, 0);
+ }
++ else if (DWARF2_USE_FIXED_ADVANCE_PC)
++ out_fixed_inc_line_addr (line_delta, lab, last_lab);
+ else if (frag == last_frag)
+ out_inc_line_addr (line_delta, frag_ofs - last_frag_ofs);
+ else
+@@ -1148,7 +1204,12 @@ process_entries (segT seg, struct line_e
+ /* Emit a DW_LNE_end_sequence for the end of the section. */
+ frag = last_frag_for_seg (seg);
+ frag_ofs = get_frag_fix (frag, seg);
+- if (frag == last_frag)
++ if (DWARF2_USE_FIXED_ADVANCE_PC)
++ {
++ lab = symbol_temp_new (seg, frag_ofs, frag);
++ out_fixed_inc_line_addr (INT_MAX, lab, last_lab);
++ }
++ else if (frag == last_frag)
+ out_inc_line_addr (INT_MAX, frag_ofs - last_frag_ofs);
+ else
+ {
+@@ -1290,6 +1351,54 @@ out_debug_line (segT line_seg)
+ symbol_set_value_now (line_end);
+ }
+
++static void
++out_debug_ranges (segT ranges_seg)
++{
++ unsigned int addr_size = sizeof_address;
++ struct line_seg *s;
++ expressionS expr;
++ unsigned int i;
++
++ subseg_set (ranges_seg, 0);
++
++ /* Base Address Entry. */
++ for (i = 0; i < addr_size; i++)
++ out_byte (0xff);
++ for (i = 0; i < addr_size; i++)
++ out_byte (0);
++
++ /* Range List Entry. */
++ for (s = all_segs; s; s = s->next)
++ {
++ fragS *frag;
++ symbolS *beg, *end;
++
++ frag = first_frag_for_seg (s->seg);
++ beg = symbol_temp_new (s->seg, 0, frag);
++ s->text_start = beg;
++
++ frag = last_frag_for_seg (s->seg);
++ end = symbol_temp_new (s->seg, get_frag_fix (frag, s->seg), frag);
++ s->text_end = end;
++
++ expr.X_op = O_symbol;
++ expr.X_add_symbol = beg;
++ expr.X_add_number = 0;
++ emit_expr (&expr, addr_size);
++
++ expr.X_op = O_symbol;
++ expr.X_add_symbol = end;
++ expr.X_add_number = 0;
++ emit_expr (&expr, addr_size);
++ }
++
++ /* End of Range Entry. */
++ for (i = 0; i < addr_size; i++)
++ out_byte (0);
++ for (i = 0; i < addr_size; i++)
++ out_byte (0);
++}
++
+ /* Emit data for .debug_aranges. */
+
+ static void
+@@ -1382,6 +1491,13 @@ out_debug_abbrev (segT abbrev_seg)
+ out_abbrev (DW_AT_low_pc, DW_FORM_addr);
+ out_abbrev (DW_AT_high_pc, DW_FORM_addr);
+ }
++ else
++ {
++ if (DWARF2_FORMAT () == dwarf2_format_32bit)
++ out_abbrev (DW_AT_ranges, DW_FORM_data4);
++ else
++ out_abbrev (DW_AT_ranges, DW_FORM_data8);
++ }
+ out_abbrev (DW_AT_name, DW_FORM_string);
+ out_abbrev (DW_AT_comp_dir, DW_FORM_string);
+ out_abbrev (DW_AT_producer, DW_FORM_string);
+@@ -1395,7 +1511,7 @@ out_debug_abbrev (segT abbrev_seg)
+ /* Emit a description of this compilation unit for .debug_info. */
+
+ static void
+-out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg)
++out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT ranges_seg)
+ {
+ char producer[128];
+ char *comp_dir;
+@@ -1458,8 +1574,7 @@ out_debug_info (segT info_seg, segT abbr
+ /* ??? sizeof_offset */
+ TC_DWARF2_EMIT_OFFSET (section_symbol (line_seg), 4);
+
+- /* These two attributes may only be emitted if all of the code is
+- contiguous. Multiple sections are not that. */
++ /* These two attributes are emitted if all of the code is contiguous. */
+ if (all_segs->next == NULL)
+ {
+ /* DW_AT_low_pc */
+@@ -1474,6 +1589,12 @@ out_debug_info (segT info_seg, segT abbr
+ expr.X_add_number = 0;
+ emit_expr (&expr, sizeof_address);
+ }
++ else
++ {
++ /* This attribute is emitted if the code is disjoint. */
++ /* DW_AT_ranges. */
++ TC_DWARF2_EMIT_OFFSET (section_symbol (ranges_seg), sizeof_offset);
++ }
+
+ /* DW_AT_name. We don't have the actual file name that was present
+ on the command line, so assume files[1] is the main input file.
+@@ -1564,6 +1685,7 @@ dwarf2_finish (void)
+ {
+ segT abbrev_seg;
+ segT aranges_seg;
++ segT ranges_seg;
+
+ assert (all_segs);
+
+@@ -1580,8 +1702,19 @@ dwarf2_finish (void)
+
+ record_alignment (aranges_seg, ffs (2 * sizeof_address) - 1);
+
++ if (all_segs->next == NULL)
++ ranges_seg = NULL;
++ else
++ {
++ ranges_seg = subseg_new (".debug_ranges", 0);
++ bfd_set_section_flags (stdoutput, ranges_seg,
++ SEC_READONLY | SEC_DEBUGGING);
++ record_alignment (ranges_seg, ffs (2 * sizeof_address) - 1);
++ out_debug_ranges (ranges_seg);
++ }
++
+ out_debug_aranges (aranges_seg, info_seg);
+ out_debug_abbrev (abbrev_seg);
+- out_debug_info (info_seg, abbrev_seg, line_seg);
++ out_debug_info (info_seg, abbrev_seg, line_seg, ranges_seg);
+ }
+ }
+--- gas/testsuite/gas/lns/lns-common-1-alt.d 1969-12-31 19:00:00.000000000 -0500
++++ gas/testsuite/gas/lns/lns-common-1-alt.d 2006-09-24 11:19:58.000000000 -0400
+@@ -0,0 +1,39 @@
++#source: lns-common-1.s
++#readelf: -wl
++#name: lns-common-1
++Dump of debug contents of section \.debug_line:
++#...
++ Initial value of 'is_stmt': 1
++#...
++ Line Number Statements:
++ Extended opcode 2: set Address to .*
++ Copy
++ Set column to 3
++ Advance Line by 1 to 2
++ Advance PC by fixed size amount .* to .*
++ Copy
++ Set prologue_end to true
++ Advance Line by 1 to 3
++ Advance PC by fixed size amount .* to .*
++ Copy
++ Set column to 0
++ Set epilogue_begin to true
++ Advance Line by 1 to 4
++ Advance PC by fixed size amount .* to .*
++ Copy
++ Set ISA to 1
++ Set basic block
++ Advance Line by 1 to 5
++ Advance PC by fixed size amount .* to .*
++ Copy
++ Set is_stmt to 0
++ Advance Line by 1 to 6
++ Advance PC by fixed size amount .* to .*
++ Copy
++ Set is_stmt to 1
++ Advance Line by 1 to 7
++ Advance PC by fixed size amount .* to .*
++ Copy
++ Advance PC by fixed size amount .* to .*
++ Extended opcode 1: End of Sequence
++#...
+--- gas/testsuite/gas/lns/lns.exp 2005-11-13 12:16:35.000000000 -0500
++++ gas/testsuite/gas/lns/lns.exp 2006-09-24 11:19:58.000000000 -0400
+@@ -23,5 +23,10 @@ run_list_test "lns-diag-1" ""
+ # defined a macro...
+ if { ![istarget ia64*-*-*] && ![istarget i370-*-*] && ![istarget i960-*-*]
+ && ![istarget or32-*-*] && ![istarget s390*-*-*] } {
+- run_dump_test "lns-common-1"
++ # Use alternate file for targets using DW_LNS_fixed_advance_pc opcodes.
++ if { [istarget xtensa-*-*] } {
++ run_dump_test "lns-common-1-alt"
++ } else {
++ run_dump_test "lns-common-1"
++ }
+ }
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ia64-lib64.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ia64-lib64.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ia64-lib64.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,36 @@
+2004-05-14 Jakub Jelinek <jakub at redhat.com>
+
+ * emulparams/elf64_ia64.sh (LIBPATH_SUFFIX): Use */lib64 paths on
+ ia64-linux if /lib64 tree is present.
+
+--- ld/emulparams/elf64_ia64.sh.jj 2004-02-18 20:06:03.000000000 +0100
++++ ld/emulparams/elf64_ia64.sh 2004-05-14 10:11:22.992278608 +0200
+@@ -37,3 +37,13 @@ OTHER_READONLY_SECTIONS="${OTHER_READONL
+ # .dtors. They have to be next to .sbss/.sbss2/.sdata/.sdata2.
+ SMALL_DATA_CTOR=" "
+ SMALL_DATA_DTOR=" "
++
++# Linux modify the default library search path to first include
++# a 64-bit specific directory.
++case "$target" in
++ ia64*-linux*)
++ case "$EMULATION_NAME" in
++ *64*) test -d /lib64 && LIBPATH_SUFFIX=64 ;;
++ esac
++ ;;
++esac
+--- ltconfig 2003-02-03 16:56:49.000000000 +0900
++++ ltconfig 2003-02-03 16:56:49.000000000 +0900
+@@ -1240,10 +1240,10 @@
+
+ # Find out which ABI we are using (multilib hack).
+ case "$host_cpu" in
+- x86_64*|s390*|sparc*|ppc*|powerpc*)
++ x86_64*|s390*|sparc*|ppc*|powerpc*|ia64)
+ echo "$progname:@lineno@: checking multilib ABI type" 1>&5
+ touch conftest.$ac_ext
+- if { (eval echo $progname: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
++ if test -d /lib64 && { (eval echo $progname: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64"
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-kept-section.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-kept-section.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-kept-section.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,60 @@
+2006-04-24 Michael Matz <matz at suse.de>
+ H.J. Lu <hongjiu.lu at intel.com>
+
+ * elf-bfd.h (bfd_elf_section_data): Add kept_section.
+ (elf_kept_section): New.
+
+ * elflink.c (_bfd_elf_check_kept_section): Cache the result in
+ elf_kept_section.
+
+--- bfd/elf-bfd.h.kept 2006-03-16 12:37:42.000000000 -0800
++++ bfd/elf-bfd.h 2006-04-24 20:11:00.000000000 -0700
+@@ -1168,6 +1168,10 @@ struct bfd_elf_section_data
+ the linker. */
+ asection *next_in_group;
+
++ /* The pointer to the real kept section. It is computed from the
++ kept_section field in asection due to section group. */
++ asection *kept_section;
++
+ /* A pointer used for various section optimizations. */
+ void *sec_info;
+ };
+@@ -1180,6 +1184,7 @@ struct bfd_elf_section_data
+ #define elf_group_id(sec) (elf_section_data(sec)->group.id)
+ #define elf_next_in_group(sec) (elf_section_data(sec)->next_in_group)
+ #define elf_sec_group(sec) (elf_section_data(sec)->sec_group)
++#define elf_kept_section(sec) (elf_section_data(sec)->kept_section)
+
+ /* Return TRUE if section has been discarded. */
+ #define elf_discarded_section(sec) \
+--- bfd/elflink.c.kept 2006-04-24 15:36:18.000000000 -0700
++++ bfd/elflink.c 2006-04-24 20:18:03.000000000 -0700
+@@ -6798,7 +6799,14 @@ _bfd_elf_check_kept_section (asection *s
+ {
+ asection *kept;
+
++ kept = elf_kept_section (sec);
++ if (kept)
++ return kept;
++
+ kept = sec->kept_section;
++ if (!kept)
++ return kept;
++
+ if (kept != NULL)
+ {
+ if (elf_sec_group (sec) != NULL)
+@@ -6806,6 +6814,12 @@ _bfd_elf_check_kept_section (asection *s
+ if (kept != NULL && sec->size != kept->size)
+ kept = NULL;
+ }
++
++ if (kept)
++ elf_kept_section (sec) = kept;
++ else
++ sec->kept_section = NULL;
++
+ return kept;
+ }
+
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ltconfig-multilib.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ltconfig-multilib.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ltconfig-multilib.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,26 @@
+--- ltconfig.jj 2003-02-03 16:56:49.000000000 +0900
++++ ltconfig 2003-02-03 16:56:49.000000000 +0900
+@@ -1237,6 +1237,23 @@
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
++
++ # Find out which ABI we are using (multilib hack).
++ case "$host_cpu" in
++ x86_64*|s390*|sparc*|ppc*|powerpc*)
++ echo "$progname:@lineno@: checking multilib ABI type" 1>&5
++ touch conftest.$ac_ext
++ if { (eval echo $progname: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
++ case `/usr/bin/file conftest.o` in
++ *64-bit*)
++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64"
++ sys_lib_search_path_spec="/lib64 /usr/lib64 /usr/local/lib64"
++ ;;
++ esac
++ fi
++ rm -rf conftest*
++ ;;
++ esac
+ ;;
+
+ netbsd*)
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-place-orphan.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-place-orphan.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-place-orphan.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,16 @@
+2003-08-05 Jakub Jelinek <jakub at redhat.com>
+
+ * emulparams/elf64ppc.sh (OTHER_GOT_RELOC_SECTIONS): Add .rela.opd.
+
+--- ld/emulparams/elf64ppc.sh.jj 2003-07-28 10:24:45.000000000 -0400
++++ ld/emulparams/elf64ppc.sh 2003-08-05 08:35:58.000000000 -0400
+@@ -28,7 +28,8 @@ else
+ .toc 0 : { *(.toc) }"
+ fi
+ OTHER_GOT_RELOC_SECTIONS="
+- .rela.toc ${RELOCATING-0} : { *(.rela.toc) }"
++ .rela.toc ${RELOCATING-0} : { *(.rela.toc) }
++ .rela.opd ${RELOCATING-0} : { *(.rela.opd) }"
+ OTHER_READWRITE_SECTIONS="
+ .toc1 ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { *(.toc1) }
+ .opd ${RELOCATING-0}${RELOCATING+ALIGN(8)} : { KEEP (*(.opd)) }"
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-popcnt.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-popcnt.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-popcnt.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,156 @@
+2006-10-23 Dwarakanath Rajagopal <dwarak.rajagopal at amd.com>
+
+opcodes/
+ * i386-dis.c (dis386): Add support for the change in POPCNT opcode in
+ amdfam10 architecture.
+ (PREGRP37): NEW.
+ (print_insn): Disallow REP prefix for POPCNT.
+include/
+ * i386.h : Modify opcode to support for the change in POPCNT opcode
+ in amdfam10 architecture.
+gas/
+ * doc/c-i386.texi : Document amdfam10,.sse4a and .abm in cpu_type.
+gas/testsuite/
+ * gas/i386/amdfam10.d : Modify to support for the change in POPCNT
+ opcode in amdfam10 architecture.
+ * gas/i386/x86-64-amdfam10.d : Ditto.
+
+--- opcodes/i386-dis.c 24 Sep 2006 17:25:47 -0000 1.89
++++ opcodes/i386-dis.c 23 Oct 2006 22:53:29 -0000 1.90
+@@ -471,6 +471,8 @@ fetch_data (struct disassemble_info *inf
+ #define PREGRP34 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 34, NULL, 0, NULL, 0
+ #define PREGRP35 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 35, NULL, 0, NULL, 0
+ #define PREGRP36 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 36, NULL, 0, NULL, 0
++#define PREGRP37 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 37, NULL, 0, NULL, 0
++
+
+ #define X86_64_0 NULL, NULL, X86_64_SPECIAL, NULL, 0, NULL, 0, NULL, 0
+
+@@ -1028,7 +1030,7 @@ static const struct dis386 dis386_twobyt
+ { "movz{bR|x|bR|x}", Gv, Eb, XX, XX },
+ { "movz{wR|x|wR|x}", Gv, Ew, XX, XX }, /* yes, there really is movzww ! */
+ /* b8 */
+- { "popcntS", Gv, Ev, XX, XX },
++ { PREGRP37 },
+ { "ud2b", XX, XX, XX, XX },
+ { GRP8 },
+ { "btcS", Ev, Gv, XX, XX },
+@@ -1820,6 +1822,13 @@ static const struct dis386 prefix_user_t
+ { "(bad)", XX, XX, XX, XX },
+ },
+
++ /* PREGRP37 */
++ {
++ { "(bad)", XX, XX, XX, XX },
++ { "popcntS",Gv, Ev, XX, XX },
++ { "(bad)", XX, XX, XX, XX },
++ { "(bad)", XX, XX, XX, XX },
++ },
+ };
+
+ static const struct dis386 x86_64_table[][2] = {
+@@ -2827,13 +2836,14 @@ print_insn (bfd_vma pc, disassemble_info
+ uses_LOCK_prefix = 0;
+ }
+
+- /*"lzcnt"=0xBD is the only non-sse instruction which uses F3 in the opcode without any "rep(z|nz)"*/
+- if (!uses_SSE_prefix && (prefixes & PREFIX_REPZ) && *codep !=0xBD)
++ /*"lzcnt"=0xBD and "popcnt"=0xB8 are the only two non-sse
++ instruction which uses F3 in the opcode without any "rep(z|nz)"*/
++ if (!uses_SSE_prefix && (prefixes & PREFIX_REPZ) && *codep != 0xBD && *codep != 0xB8)
+ {
+ oappend ("repz ");
+ used_prefixes |= PREFIX_REPZ;
+ }
+- if (!uses_SSE_prefix && (prefixes & PREFIX_REPNZ) && *codep !=0xBD)
++ if (!uses_SSE_prefix && (prefixes & PREFIX_REPNZ) && *codep != 0xBD && *codep != 0xB8)
+ {
+ oappend ("repnz ");
+ used_prefixes |= PREFIX_REPNZ;
+--- include/opcode/i386.h 28 Sep 2006 14:06:36 -0000 1.71
++++ include/opcode/i386.h 23 Oct 2006 22:53:28 -0000 1.72
+@@ -1472,7 +1472,7 @@ static const template i386_optab[] =
+ {"insertq", 4, 0xf20f78, X, CpuSSE4a, NoSuf|IgnoreSize|Modrm, { Imm8, Imm8, RegXMM, RegXMM} },
+
+ /* ABM instructions */
+-{"popcnt", 2, 0x0fb8, X, CpuABM, wlq_Suf|Modrm, { WordReg|WordMem, WordReg, 0} },
++{"popcnt", 2, 0xf30fb8, X, CpuABM, wlq_Suf|Modrm, { WordReg|WordMem, WordReg, 0} },
+ {"lzcnt", 2, 0xf30fbd, X, CpuABM, wlq_Suf|Modrm, { WordReg|WordMem, WordReg, 0} },
+
+
+--- gas/doc/c-i386.texi 28 Sep 2006 14:06:36 -0000 1.16
++++ gas/doc/c-i386.texi 23 Oct 2006 22:53:28 -0000 1.17
+@@ -753,10 +753,11 @@ supported on the CPU specified. The cho
+ @item @samp{i486} @tab @samp{i586} @tab @samp{i686} @tab @samp{pentium}
+ @item @samp{pentiumpro} @tab @samp{pentiumii} @tab @samp{pentiumiii} @tab @samp{pentium4}
+ @item @samp{prescott} @tab @samp{nocona} @tab @samp{core} @tab @samp{core2}
++ at item @samp{amdfam10}
+ @item @samp{k6} @tab @samp{athlon} @tab @samp{sledgehammer} @tab @samp{k8}
+ @item @samp{.mmx} @tab @samp{.sse} @tab @samp{.sse2} @tab @samp{.sse3}
+- at item @samp{.3dnow} @tab @samp{.3dnowa} @tab @samp{.padlock} @tab @samp{.pacifica}
+- at item @samp{.svme}
++ at item @samp{.sse4a} @tab @samp{.3dnow} @tab @samp{.3dnowa} @tab @samp{.padlock}
++ at item @samp{.pacifica} @tab @samp{.svme} @tab @samp{.abm}
+ @end multitable
+
+ Apart from the warning, there are only two other effects on
+--- gas/testsuite/gas/i386/amdfam10.d 20 Jul 2006 23:09:32 -0000 1.2
++++ gas/testsuite/gas/i386/amdfam10.d 23 Oct 2006 22:53:28 -0000 1.3
+@@ -10,15 +10,14 @@ Disassembly of section .text:
+ 4: f3 66 0f bd 19[ ]+lzcnt \(%ecx\),%bx
+ 9: f3 0f bd d9[ ]+lzcnt %ecx,%ebx
+ d: f3 66 0f bd d9[ ]+lzcnt %cx,%bx
+- 12: 0f b8 19[ ]+popcnt \(%ecx\),%ebx
+- 15: 66 0f b8 19[ ]+popcnt \(%ecx\),%bx
+- 19: 0f b8 d9[ ]+popcnt %ecx,%ebx
+- 1c: 66 0f b8 d9[ ]+popcnt %cx,%bx
+- 20: 66 0f 79 ca[ ]+extrq %xmm2,%xmm1
+- 24: 66 0f 78 c1 02 04[ ]*extrq \$0x4,\$0x2,%xmm1
+- 2a: f2 0f 79 ca[ ]+insertq %xmm2,%xmm1
+- 2e: f2 0f 78 ca 02 04[ ]*insertq \$0x4,\$0x2,%xmm2,%xmm1
+- 34: f2 0f 2b 09[ ]+movntsd %xmm1,\(%ecx\)
+- 38: f3 0f 2b 09[ ]+movntss %xmm1,\(%ecx\)
+- 3c: 00 00 [ ]+add %al,\(%eax\)
+- ...
++ 12: f3 0f b8 19[ ]+popcnt \(%ecx\),%ebx
++ 16: f3 66 0f b8 19[ ]+popcnt \(%ecx\),%bx
++ 1b: f3 0f b8 d9[ ]+popcnt %ecx,%ebx
++ 1f: f3 66 0f b8 d9[ ]+popcnt %cx,%bx
++ 24: 66 0f 79 ca[ ]+extrq %xmm2,%xmm1
++ 28: 66 0f 78 c1 02 04[ ]*extrq \$0x4,\$0x2,%xmm1
++ 2e: f2 0f 79 ca[ ]+insertq %xmm2,%xmm1
++ 32: f2 0f 78 ca 02 04[ ]*insertq \$0x4,\$0x2,%xmm2,%xmm1
++ 38: f2 0f 2b 09[ ]+movntsd %xmm1,\(%ecx\)
++ 3c: f3 0f 2b 09[ ]+movntss %xmm1,\(%ecx\)
++
+--- gas/testsuite/gas/i386/x86-64-amdfam10.d 20 Jul 2006 23:09:32 -0000 1.2
++++ gas/testsuite/gas/i386/x86-64-amdfam10.d 23 Oct 2006 22:53:28 -0000 1.3
+@@ -12,16 +12,16 @@ Disassembly of section .text:
+ e: f3 48 0f bd d9[ ]+lzcnt %rcx,%rbx
+ 13: f3 0f bd d9[ ]+lzcnt %ecx,%ebx
+ 17: f3 66 0f bd d9[ ]+lzcnt %cx,%bx
+- 1c: 48 0f b8 19[ ]+popcnt \(%rcx\),%rbx
+- 20: 0f b8 19[ ]+popcnt \(%rcx\),%ebx
+- 23: 66 0f b8 19[ ]+popcnt \(%rcx\),%bx
+- 27: 48 0f b8 d9[ ]+popcnt %rcx,%rbx
+- 2b: 0f b8 d9[ ]+popcnt %ecx,%ebx
+- 2e: 66 0f b8 d9[ ]+popcnt %cx,%bx
+- 32: 66 0f 79 ca[ ]+extrq %xmm2,%xmm1
+- 36: 66 0f 78 c1 02 04[ ]+extrq \$0x4,\$0x2,%xmm1
+- 3c: f2 0f 79 ca[ ]+insertq %xmm2,%xmm1
+- 40: f2 0f 78 ca 02 04[ ]+insertq \$0x4,\$0x2,%xmm2,%xmm1
+- 46: f2 0f 2b 09[ ]+movntsd %xmm1,\(%rcx\)
+- 4a: f3 0f 2b 09[ ]+movntss %xmm1,\(%rcx\)
++ 1c: f3 48 0f b8 19[ ]+popcnt \(%rcx\),%rbx
++ 21: f3 0f b8 19[ ]+popcnt \(%rcx\),%ebx
++ 25: f3 66 0f b8 19[ ]+popcnt \(%rcx\),%bx
++ 2a: f3 48 0f b8 d9[ ]+popcnt %rcx,%rbx
++ 2f: f3 0f b8 d9[ ]+popcnt %ecx,%ebx
++ 33: f3 66 0f b8 d9[ ]+popcnt %cx,%bx
++ 38: 66 0f 79 ca[ ]+extrq %xmm2,%xmm1
++ 3c: 66 0f 78 c1 02 04[ ]+extrq \$0x4,\$0x2,%xmm1
++ 42: f2 0f 79 ca[ ]+insertq %xmm2,%xmm1
++ 46: f2 0f 78 ca 02 04[ ]+insertq \$0x4,\$0x2,%xmm2,%xmm1
++ 4c: f2 0f 2b 09[ ]+movntsd %xmm1,\(%rcx\)
++ 50: f3 0f 2b 09[ ]+movntss %xmm1,\(%rcx\)
+ ...
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-power6-insns.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-power6-insns.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-power6-insns.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,25 @@
+2006-07-11 Peter Bergner <bergner at vnet.ibm.com>
+
+ * ppc-opc.c (POWER6): Define.
+ (powerpc_opcodes): Add "mffgpr" and "mftgpr" opcodes.
+
+--- opcodes/ppc-opc.c 15 Nov 2005 21:33:04 -0000 1.85
++++ opcodes/ppc-opc.c 11 Jul 2006 21:56:59 -0000
+@@ -1823,6 +1823,7 @@ extract_tbr (unsigned long insn,
+ #define NOPOWER4 PPC_OPCODE_NOPOWER4 | PPCCOM
+ #define POWER4 PPC_OPCODE_POWER4
+ #define POWER5 PPC_OPCODE_POWER5
++#define POWER6 PPC_OPCODE_POWER6
+ #define PPC32 PPC_OPCODE_32 | PPC_OPCODE_PPC
+ #define PPC64 PPC_OPCODE_64 | PPC_OPCODE_PPC
+ #define PPC403 PPC_OPCODE_403
+@@ -4255,6 +4256,9 @@ const struct powerpc_opcode powerpc_opco
+
+ { "lfdxe", X(31,607), X_MASK, BOOKE64, { FRT, RA0, RB } },
+
++{ "mffgpr", XRC(31,607,0), XRA_MASK, POWER6, { FRT, RB } },
++{ "mftgpr", XRC(31,735,0), XRA_MASK, POWER6, { RT, FRB } },
++
+ { "mfsri", X(31,627), X_MASK, PWRCOM, { RT, RA, RB } },
+
+ { "dclst", X(31,630), XRB_MASK, PWRCOM, { RS, RA } },
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ppc-relbrlt-test.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ppc-relbrlt-test.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ppc-relbrlt-test.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,150 @@
+2006-10-24 Alan Modra <amodra at bigpond.net.au>
+
+ * ld-powerpc/plt1.s: New.
+ * ld-powerpc/plt1.d: New.
+ * ld-powerpc/relbrlt.s: New.
+ * ld-powerpc/relbrlt.d: New.
+ * ld-powerpc/powerpc.exp: Run them.
+
+--- ld/testsuite/ld-powerpc/powerpc.exp 3 Mar 2006 09:32:01 -0000 1.15
++++ ld/testsuite/ld-powerpc/powerpc.exp 24 Oct 2006 13:29:37 -0000 1.16
+@@ -1,5 +1,5 @@
+ # Expect script for ld-powerpc tests
+-# Copyright 2002, 2003, 2005 Free Software Foundation
++# Copyright 2002, 2003, 2005, 2006 Free Software Foundation
+ #
+ # This file is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -143,4 +143,7 @@ run_ld_link_tests $ppcelftests
+
+ if [ supports_ppc64 ] then {
+ run_ld_link_tests $ppc64elftests
++ run_dump_test "relbrlt"
+ }
++
++run_dump_test "plt1"
+--- ld/testsuite/ld-powerpc/plt1.d 1 Jan 1970 00:00:00 -0000
++++ ld/testsuite/ld-powerpc/plt1.d 24 Oct 2006 13:29:37 -0000 1.1
+@@ -0,0 +1,20 @@
++#source: plt1.s
++#as: -a32
++#objdump: -dr
++#target: powerpc*-*-*
++
++.*: file format elf32-powerpc
++
++Disassembly of section .text:
++
++0+ <_start>:
++ 0: 42 9f 00 05 bcl- 20,4\*cr7\+so,4 .*
++ 4: 7f c8 02 a6 mflr r30
++ 8: 3f de 00 00 addis r30,r30,0
++ a: R_PPC_REL16_HA _GLOBAL_OFFSET_TABLE_\+0x6
++ c: 3b de 00 0a addi r30,r30,10
++ e: R_PPC_REL16_LO _GLOBAL_OFFSET_TABLE_\+0xa
++ 10: 48 00 00 01 bl 10 .*
++ 10: R_PPC_PLTREL24 _exit
++ 14: 48 00 00 00 b 14 .*
++ 14: R_PPC_REL24 _start
+--- ld/testsuite/ld-powerpc/plt1.s 1 Jan 1970 00:00:00 -0000
++++ ld/testsuite/ld-powerpc/plt1.s 24 Oct 2006 13:29:37 -0000 1.1
+@@ -0,0 +1,9 @@
++ .text
++ .global _start
++_start:
++ bcl 20,31,1f
++1: mflr 30
++ addis 30,30,(_GLOBAL_OFFSET_TABLE_-1b)@ha
++ addi 30,30,(_GLOBAL_OFFSET_TABLE_-1b)@l
++ bl _exit at plt
++ b _start
+--- ld/testsuite/ld-powerpc/relbrlt.d 1 Jan 1970 00:00:00 -0000
++++ ld/testsuite/ld-powerpc/relbrlt.d 24 Oct 2006 13:29:37 -0000 1.1
+@@ -0,0 +1,50 @@
++#source: relbrlt.s
++#as: -a64
++#ld: -melf64ppc --emit-relocs
++#objdump: -dr
++
++.*: file format elf64-powerpc
++
++Disassembly of section \.text:
++
++0*100000a8 <_start>:
++ 100000a8: 49 bf 00 31 bl 11bf00d8 .*
++ 100000a8: R_PPC64_REL24 \.text\+0x37e0044
++ 100000ac: 60 00 00 00 nop
++ 100000b0: 49 bf 00 19 bl 11bf00c8 .*
++ 100000b0: R_PPC64_REL24 \.text\+0x3bf0020
++ 100000b4: 60 00 00 00 nop
++ 100000b8: 49 bf 00 25 bl 11bf00dc .*
++ 100000b8: R_PPC64_REL24 \.text\+0x57e0024
++ 100000bc: 60 00 00 00 nop
++ 100000c0: 00 00 00 00 \.long 0x0
++ 100000c4: 4b ff ff e4 b 100000a8 <_start>
++ \.\.\.
++
++0*11bf00c8 <.*plt_branch.*>:
++ 11bf00c8: 3d 82 05 7e addis r12,r2,1406
++ 11bf00cc: e9 6c 80 58 ld r11,-32680\(r12\)
++ 11bf00d0: 7d 69 03 a6 mtctr r11
++ 11bf00d4: 4e 80 04 20 bctr
++
++0*11bf00d8 <.*long_branch.*>:
++ 11bf00d8: 49 bf 00 14 b 137e00ec <far>
++ 11bf00d8: R_PPC64_REL24 \*ABS\*\+0x137e00ec
++
++0*11bf00dc <.*plt_branch.*>:
++ 11bf00dc: 3d 82 05 7e addis r12,r2,1406
++ 11bf00e0: e9 6c 80 60 ld r11,-32672\(r12\)
++ 11bf00e4: 7d 69 03 a6 mtctr r11
++ 11bf00e8: 4e 80 04 20 bctr
++ \.\.\.
++
++0*137e00ec <far>:
++ 137e00ec: 4e 80 00 20 blr
++ \.\.\.
++
++0*13bf00c8 <far2far>:
++ 13bf00c8: 4e 80 00 20 blr
++ \.\.\.
++
++0*157e00cc <huge>:
++ 157e00cc: 4e 80 00 20 blr
+--- ld/testsuite/ld-powerpc/relbrlt.s 1 Jan 1970 00:00:00 -0000
++++ ld/testsuite/ld-powerpc/relbrlt.s 24 Oct 2006 13:29:37 -0000 1.1
+@@ -0,0 +1,34 @@
++ .text
++ .global _start
++_start:
++1:
++ bl far
++ nop
++ bl far2far
++ nop
++ bl huge
++ nop
++ .long 0
++ b 1b
++ .space 0x1bf0000
++
++ .section .text.pad1,"ax"
++ .space 0x1bf0000
++
++ .section .text.far,"ax"
++far:
++ blr
++
++ .section .text.pad2,"ax"
++ .space 0x40ffd8
++
++ .section .text.far2far,"ax"
++far2far:
++ blr
++
++ .section .text.pad3,"ax"
++ .space 0x1bf0000
++
++ .section .text.huge,"ax"
++huge:
++ blr
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ppc64-pie.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ppc64-pie.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ppc64-pie.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,16 @@
+--- bfd/elf64-ppc.c.jj 2004-09-27 16:46:06.000000000 -0400
++++ bfd/elf64-ppc.c 2004-10-04 09:09:50.000000000 -0400
+@@ -9681,7 +9681,12 @@ ppc64_elf_relocate_section (bfd *output_
+ else if (!SYMBOL_REFERENCES_LOCAL (info, &h->elf)
+ && !is_opd
+ && r_type != R_PPC64_TOC)
+- outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type);
++ {
++ outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type);
++ if (h->elf.dynindx == -1
++ && h->elf.root.type == bfd_link_hash_undefweak)
++ memset (&outrel, 0, sizeof outrel);
++ }
+ else
+ {
+ /* This symbol is local, or marked to become local,
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ppc64-version-script.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ppc64-version-script.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-ppc64-version-script.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,57 @@
+2007-05-14 Andreas Schwab <schwab at suse.de>
+
+ * emultempl/ppc64elf.em (gld${EMULATION_NAME}_new_vers_pattern):
+ Handle null pattern.
+
+--- ld/emultempl/ppc64elf.em 26 Mar 2007 11:10:44 -0000 1.52
++++ ld/emultempl/ppc64elf.em 14 May 2007 08:53:23 -0000 1.53
+@@ -414,17 +414,22 @@ gld${EMULATION_NAME}_new_vers_pattern (s
+ unsigned int len;
+ char *dot_pat;
+
+- if (!dotsyms || entry->pattern[0] == '*' || entry->pattern[0] == '.')
++ if (!dotsyms
++ || (entry->pattern != NULL
++ && (entry->pattern[0] == '*' || entry->pattern[0] == '.')))
+ return entry;
+
+ dot_entry = xmalloc (sizeof *dot_entry);
+ *dot_entry = *entry;
+ dot_entry->next = entry;
+- len = strlen (entry->pattern) + 2;
+- dot_pat = xmalloc (len);
+- dot_pat[0] = '.';
+- memcpy (dot_pat + 1, entry->pattern, len - 1);
+- dot_entry->pattern = dot_pat;
++ if (entry->pattern != NULL)
++ {
++ len = strlen (entry->pattern) + 2;
++ dot_pat = xmalloc (len);
++ dot_pat[0] = '.';
++ memcpy (dot_pat + 1, entry->pattern, len - 1);
++ dot_entry->pattern = dot_pat;
++ }
+ if (entry->symbol != NULL)
+ {
+ len = strlen (entry->symbol) + 2;
+ * ld-elf/dl2a.list: New file.
+ * ld-elf/shared.exp: Add test using --dynamic-list=dl2a.list.
+
+--- ld/testsuite/ld-elf/dl2a.list 1 Jan 1970 00:00:00 -0000
++++ ld/testsuite/ld-elf/dl2a.list 14 May 2007 08:53:23 -0000 1.1
+@@ -0,0 +1,3 @@
++{
++ "foo";
++};
+--- ld/testsuite/ld-elf/shared.exp 14 Feb 2007 14:15:52 -0000 1.6
++++ ld/testsuite/ld-elf/shared.exp 15 May 2007 13:57:03 -0000 1.8
+@@ -72,6 +72,9 @@ set build_tests {
+ {"Build libdl2a.so with --dynamic-list=dl2.list"
+ "-shared -Wl,--dynamic-list=dl2.list" "-fPIC"
+ {dl2.c dl2xxx.c} {} "libdl2a.so"}
++ {"Build libdl2a.so with --dynamic-list=dl2a.list"
++ "-shared -Wl,--dynamic-list=dl2a.list" "-fPIC"
++ {dl2.c dl2xxx.c} {} "libdl2a.so"}
+ {"Build libdl2b.so with --dynamic-list=dl2.list and dl2xxx.list"
+ "-shared -Wl,--dynamic-list=dl2.list,--dynamic-list=dl2xxx.list" "-fPIC"
+ {dl2.c dl2xxx.c} {} "libdl2b.so"}
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-rh223181.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-rh223181.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-rh223181.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,151 @@
+207-01-19 Jakub Jelinek <jakub at redhat.com>
+
+ * elf.c (elf_sort_elf_symbol): Removed.
+ (bfd_elf_match_symbols_in_sections): Remove unnecessary expensive
+ sorting of the symbol tables.
+
+--- bfd/elf.c.jj 2006-10-20 20:50:57.000000000 +0200
++++ bfd/elf.c 2007-01-19 14:54:04.000000000 +0100
+@@ -8623,33 +8623,6 @@ _bfd_elf_get_synthetic_symtab (bfd *abfd
+ return n;
+ }
+
+-/* Sort symbol by binding and section. We want to put definitions
+- sorted by section at the beginning. */
+-
+-static int
+-elf_sort_elf_symbol (const void *arg1, const void *arg2)
+-{
+- const Elf_Internal_Sym *s1;
+- const Elf_Internal_Sym *s2;
+- int shndx;
+-
+- /* Make sure that undefined symbols are at the end. */
+- s1 = (const Elf_Internal_Sym *) arg1;
+- if (s1->st_shndx == SHN_UNDEF)
+- return 1;
+- s2 = (const Elf_Internal_Sym *) arg2;
+- if (s2->st_shndx == SHN_UNDEF)
+- return -1;
+-
+- /* Sorted by section index. */
+- shndx = s1->st_shndx - s2->st_shndx;
+- if (shndx != 0)
+- return shndx;
+-
+- /* Sorted by binding. */
+- return ELF_ST_BIND (s1->st_info) - ELF_ST_BIND (s2->st_info);
+-}
+-
+ struct elf_symbol
+ {
+ Elf_Internal_Sym *sym;
+@@ -8675,9 +8648,8 @@ bfd_elf_match_symbols_in_sections (asect
+ Elf_Internal_Shdr *hdr1, *hdr2;
+ bfd_size_type symcount1, symcount2;
+ Elf_Internal_Sym *isymbuf1, *isymbuf2;
+- Elf_Internal_Sym *isymstart1 = NULL, *isymstart2 = NULL, *isym;
+- Elf_Internal_Sym *isymend;
+- struct elf_symbol *symp, *symtable1 = NULL, *symtable2 = NULL;
++ Elf_Internal_Sym *isym, *isymend;
++ struct elf_symbol *symtable1 = NULL, *symtable2 = NULL;
+ bfd_size_type count1, count2, i;
+ int shndx1, shndx2;
+ bfd_boolean result;
+@@ -8733,75 +8705,36 @@ bfd_elf_match_symbols_in_sections (asect
+ if (isymbuf1 == NULL || isymbuf2 == NULL)
+ goto done;
+
+- /* Sort symbols by binding and section. Global definitions are at
+- the beginning. */
+- qsort (isymbuf1, symcount1, sizeof (Elf_Internal_Sym),
+- elf_sort_elf_symbol);
+- qsort (isymbuf2, symcount2, sizeof (Elf_Internal_Sym),
+- elf_sort_elf_symbol);
++ symtable1 = bfd_malloc2 (symcount1, sizeof (struct elf_symbol));
++ symtable2 = bfd_malloc2 (symcount2, sizeof (struct elf_symbol));
+
+- /* Count definitions in the section. */
+- count1 = 0;
+- for (isym = isymbuf1, isymend = isym + symcount1;
+- isym < isymend; isym++)
+- {
+- if (isym->st_shndx == (unsigned int) shndx1)
+- {
+- if (count1 == 0)
+- isymstart1 = isym;
+- count1++;
+- }
++ if (symtable1 == NULL || symtable2 == NULL)
++ goto done;
+
+- if (count1 && isym->st_shndx != (unsigned int) shndx1)
+- break;
+- }
++ /* Choose symbol definitions in the section. */
++ count1 = 0;
++ for (isym = isymbuf1, isymend = isym + symcount1; isym < isymend; isym++)
++ if (isym->st_shndx == (unsigned int) shndx1)
++ symtable1[count1++].sym = isym;
+
+ count2 = 0;
+- for (isym = isymbuf2, isymend = isym + symcount2;
+- isym < isymend; isym++)
+- {
+- if (isym->st_shndx == (unsigned int) shndx2)
+- {
+- if (count2 == 0)
+- isymstart2 = isym;
+- count2++;
+- }
+-
+- if (count2 && isym->st_shndx != (unsigned int) shndx2)
+- break;
+- }
++ for (isym = isymbuf2, isymend = isym + symcount2; isym < isymend; isym++)
++ if (isym->st_shndx == (unsigned int) shndx2)
++ symtable2[count2++].sym = isym;
+
+ if (count1 == 0 || count2 == 0 || count1 != count2)
+ goto done;
+
+- symtable1 = bfd_malloc (count1 * sizeof (struct elf_symbol));
+- symtable2 = bfd_malloc (count1 * sizeof (struct elf_symbol));
+-
+- if (symtable1 == NULL || symtable2 == NULL)
+- goto done;
++ for (i = 0; i < count1; i++)
++ symtable1[i].name
++ = bfd_elf_string_from_elf_section (bfd1, hdr1->sh_link,
++ symtable1[i].sym->st_name);
++
++ for (i = 0; i < count2; i++)
++ symtable2[i].name
++ = bfd_elf_string_from_elf_section (bfd2, hdr2->sh_link,
++ symtable2[i].sym->st_name);
+
+- symp = symtable1;
+- for (isym = isymstart1, isymend = isym + count1;
+- isym < isymend; isym++)
+- {
+- symp->sym = isym;
+- symp->name = bfd_elf_string_from_elf_section (bfd1,
+- hdr1->sh_link,
+- isym->st_name);
+- symp++;
+- }
+-
+- symp = symtable2;
+- for (isym = isymstart2, isymend = isym + count1;
+- isym < isymend; isym++)
+- {
+- symp->sym = isym;
+- symp->name = bfd_elf_string_from_elf_section (bfd2,
+- hdr2->sh_link,
+- isym->st_name);
+- symp++;
+- }
+-
+ /* Sort symbol by name. */
+ qsort (symtable1, count1, sizeof (struct elf_symbol),
+ elf_sym_name_compare);
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-rh235221.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-rh235221.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-rh235221.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,436 @@
+2007-02-13 Alan Modra <amodra at bigpond.net.au>
+
+ * elf64-ppc.c (create_linkage_sections): Use section ".branch_lt"
+ for branch lookup table.
+
+ * emulparams/elf64ppc.sh (OTHER_READWRITE_SECTIONS): Add ".branch_lt".
+ * emultempl/ppc64elf.em (ppc_add_stub_section): Create without
+ SEC_RELOC flag set.
+
+ * ld-powerpc/relbrlt.d: Update.
+ * ld-powerpc/tlsexe.r: Update.
+ * ld-powerpc/tlsexetoc.r: Update.
+ * ld-powerpc/tlsso.r: Update.
+ * ld-powerpc/tlstocso.r: Update.
+
+2007-02-12 Alan Modra <amodra at bigpond.net.au>
+
+ * elf64-ppc.c (create_linkage_sections): Don't create
+ .rela.rodata.brlt for --emit-relocs.
+ (ppc_build_one_stub): Create relocs for brlt --emit-relocs here.
+ (ppc_size_one_stub): Count them. Simplify test of stub type
+ when counting stub relocs. Set SEC_RELOC too.
+ (ppc64_elf_size_stubs): Clear reloc_count and SEC_RELOC.
+ (ppc64_elf_finish_dynamic_sections): Output brlt relocs.
+
+ * ld-powerpc/relbrlt.d: Update.
+
+--- bfd/elf64-ppc.c 1 Feb 2007 05:35:58 -0000 1.255
++++ bfd/elf64-ppc.c 13 Feb 2007 01:53:02 -0000 1.257
+@@ -3818,45 +3818,22 @@ create_linkage_sections (bfd *dynobj, st
+ return FALSE;
+
+ /* Create branch lookup table for plt_branch stubs. */
+- if (info->shared)
+- {
+- flags = (SEC_ALLOC | SEC_LOAD
+- | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED);
+- htab->brlt
+- = bfd_make_section_anyway_with_flags (dynobj, ".data.rel.ro.brlt",
+- flags);
+- }
+- else
+- {
+- flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
+- | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED);
+- htab->brlt
+- = bfd_make_section_anyway_with_flags (dynobj, ".rodata.brlt", flags);
+- }
+-
++ flags = (SEC_ALLOC | SEC_LOAD
++ | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED);
++ htab->brlt = bfd_make_section_anyway_with_flags (dynobj, ".branch_lt",
++ flags);
+ if (htab->brlt == NULL
+ || ! bfd_set_section_alignment (dynobj, htab->brlt, 3))
+ return FALSE;
+
+- if (info->shared)
+- {
+- flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
+- | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED);
+- htab->relbrlt
+- = bfd_make_section_anyway_with_flags (dynobj, ".rela.data.rel.ro.brlt",
+- flags);
+- }
+- else if (info->emitrelocations)
+- {
+- flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
+- | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED);
+- htab->relbrlt
+- = bfd_make_section_anyway_with_flags (dynobj, ".rela.rodata.brlt",
+- flags);
+- }
+- else
++ if (!info->shared)
+ return TRUE;
+
++ flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
++ | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED);
++ htab->relbrlt = bfd_make_section_anyway_with_flags (dynobj,
++ ".rela.branch_lt",
++ flags);
+ if (!htab->relbrlt
+ || ! bfd_set_section_alignment (dynobj, htab->relbrlt, 3))
+ return FALSE;
+@@ -8394,6 +8371,33 @@ ppc_build_one_stub (struct bfd_hash_entr
+ rl += htab->relbrlt->reloc_count++ * sizeof (Elf64_External_Rela);
+ bfd_elf64_swap_reloca_out (htab->relbrlt->owner, &rela, rl);
+ }
++ else if (info->emitrelocations)
++ {
++ Elf_Internal_Rela *relocs, *r;
++ struct bfd_elf_section_data *elfsec_data;
++
++ elfsec_data = elf_section_data (htab->brlt);
++ relocs = elfsec_data->relocs;
++ if (relocs == NULL)
++ {
++ bfd_size_type relsize;
++ relsize = htab->brlt->reloc_count * sizeof (*relocs);
++ relocs = bfd_alloc (htab->brlt->owner, relsize);
++ if (relocs == NULL)
++ return FALSE;
++ elfsec_data->relocs = relocs;
++ elfsec_data->rel_hdr.sh_size = relsize;
++ elfsec_data->rel_hdr.sh_entsize = 24;
++ htab->brlt->reloc_count = 0;
++ }
++ r = relocs + htab->brlt->reloc_count;
++ htab->brlt->reloc_count += 1;
++ r->r_offset = (br_entry->offset
++ + htab->brlt->output_offset
++ + htab->brlt->output_section->vma);
++ r->r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE);
++ r->r_addend = off;
++ }
+
+ off = (br_entry->offset
+ + htab->brlt->output_offset
+@@ -8623,6 +8627,11 @@ ppc_size_one_stub (struct bfd_hash_entry
+
+ if (htab->relbrlt != NULL)
+ htab->relbrlt->size += sizeof (Elf64_External_Rela);
++ else if (info->emitrelocations)
++ {
++ htab->brlt->reloc_count += 1;
++ htab->brlt->flags |= SEC_RELOC;
++ }
+ }
+
+ stub_entry->stub_type += ppc_stub_plt_branch - ppc_stub_long_branch;
+@@ -8630,11 +8639,11 @@ ppc_size_one_stub (struct bfd_hash_entry
+ if (stub_entry->stub_type != ppc_stub_plt_branch)
+ size = 28;
+ }
+-
+- if (info->emitrelocations
+- && (stub_entry->stub_type == ppc_stub_long_branch
+- || stub_entry->stub_type == ppc_stub_long_branch_r2off))
+- stub_entry->stub_sec->reloc_count += 1;
++ else if (info->emitrelocations)
++ {
++ stub_entry->stub_sec->reloc_count += 1;
++ stub_entry->stub_sec->flags |= SEC_RELOC;
++ }
+ }
+
+ stub_entry->stub_sec->size += size;
+@@ -9426,9 +9435,12 @@ ppc64_elf_size_stubs (bfd *output_bfd,
+ stub_sec->rawsize = stub_sec->size;
+ stub_sec->size = 0;
+ stub_sec->reloc_count = 0;
++ stub_sec->flags &= ~SEC_RELOC;
+ }
+
+ htab->brlt->size = 0;
++ htab->brlt->reloc_count = 0;
++ htab->brlt->flags &= ~SEC_RELOC;
+ if (htab->relbrlt != NULL)
+ htab->relbrlt->size = 0;
+
+@@ -11442,6 +11454,17 @@ ppc64_elf_finish_dynamic_sections (bfd *
+ = PLT_ENTRY_SIZE;
+ }
+
++ /* brlt is SEC_LINKER_CREATED, so we need to write out relocs for
++ brlt ourselves if emitrelocations. */
++ if (htab->brlt != NULL
++ && htab->brlt->reloc_count != 0
++ && !_bfd_elf_link_output_relocs (output_bfd,
++ htab->brlt,
++ &elf_section_data (htab->brlt)->rel_hdr,
++ elf_section_data (htab->brlt)->relocs,
++ NULL))
++ return FALSE;
++
+ /* We need to handle writing out multiple GOT sections ourselves,
+ since we didn't add them to DYNOBJ. We know dynobj is the first
+ bfd. */
+--- ld/emulparams/elf64ppc.sh 30 May 2006 16:45:32 -0000 1.18
++++ ld/emulparams/elf64ppc.sh 13 Feb 2007 01:53:03 -0000 1.19
+@@ -31,7 +31,8 @@ OTHER_GOT_RELOC_SECTIONS="
+ .rela.toc ${RELOCATING-0} : { *(.rela.toc) }"
+ OTHER_READWRITE_SECTIONS="
+ .toc1 ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.toc1) }
+- .opd ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { KEEP (*(.opd)) }"
++ .opd ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { KEEP (*(.opd)) }
++ .branch_lt ${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.branch_lt) }"
+
+ # Treat a host that matches the target with the possible exception of "64"
+ # in the name as if it were native.
+--- ld/emultempl/ppc64elf.em 20 Jun 2006 02:22:14 -0000 1.50
++++ ld/emultempl/ppc64elf.em 13 Feb 2007 01:53:03 -0000 1.51
+@@ -225,7 +225,7 @@ ppc_add_stub_section (const char *stub_s
+ goto err_ret;
+
+ flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
+- | SEC_HAS_CONTENTS | SEC_RELOC | SEC_IN_MEMORY | SEC_KEEP);
++ | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_KEEP);
+ if (!bfd_set_section_flags (stub_file->the_bfd, stub_sec, flags))
+ goto err_ret;
+
+--- ld/testsuite/ld-powerpc/relbrlt.d 24 Oct 2006 13:29:37 -0000 1.1
++++ ld/testsuite/ld-powerpc/relbrlt.d 13 Feb 2007 01:53:03 -0000 1.3
+@@ -7,44 +7,44 @@
+
+ Disassembly of section \.text:
+
+-0*100000a8 <_start>:
+- 100000a8: 49 bf 00 31 bl 11bf00d8 .*
+- 100000a8: R_PPC64_REL24 \.text\+0x37e0044
+- 100000ac: 60 00 00 00 nop
+- 100000b0: 49 bf 00 19 bl 11bf00c8 .*
+- 100000b0: R_PPC64_REL24 \.text\+0x3bf0020
+- 100000b4: 60 00 00 00 nop
+- 100000b8: 49 bf 00 25 bl 11bf00dc .*
+- 100000b8: R_PPC64_REL24 \.text\+0x57e0024
+- 100000bc: 60 00 00 00 nop
+- 100000c0: 00 00 00 00 \.long 0x0
+- 100000c4: 4b ff ff e4 b 100000a8 <_start>
++0*100000b0 <_start>:
++[0-9a-f ]*: 49 bf 00 31 bl .*
++[0-9a-f ]*: R_PPC64_REL24 \.text\+0x37e0044
++[0-9a-f ]*: 60 00 00 00 nop
++[0-9a-f ]*: 49 bf 00 19 bl .*
++[0-9a-f ]*: R_PPC64_REL24 \.text\+0x3bf0020
++[0-9a-f ]*: 60 00 00 00 nop
++[0-9a-f ]*: 49 bf 00 25 bl .*
++[0-9a-f ]*: R_PPC64_REL24 \.text\+0x57e0024
++[0-9a-f ]*: 60 00 00 00 nop
++[0-9a-f ]*: 00 00 00 00 \.long 0x0
++[0-9a-f ]*: 4b ff ff e4 b .* <_start>
+ \.\.\.
+
+-0*11bf00c8 <.*plt_branch.*>:
+- 11bf00c8: 3d 82 05 7e addis r12,r2,1406
+- 11bf00cc: e9 6c 80 58 ld r11,-32680\(r12\)
+- 11bf00d0: 7d 69 03 a6 mtctr r11
+- 11bf00d4: 4e 80 04 20 bctr
+-
+-0*11bf00d8 <.*long_branch.*>:
+- 11bf00d8: 49 bf 00 14 b 137e00ec <far>
+- 11bf00d8: R_PPC64_REL24 \*ABS\*\+0x137e00ec
+-
+-0*11bf00dc <.*plt_branch.*>:
+- 11bf00dc: 3d 82 05 7e addis r12,r2,1406
+- 11bf00e0: e9 6c 80 60 ld r11,-32672\(r12\)
+- 11bf00e4: 7d 69 03 a6 mtctr r11
+- 11bf00e8: 4e 80 04 20 bctr
++[0-9a-f ]*<.*plt_branch.*>:
++[0-9a-f ]*: 3d 82 00 00 addis r12,r2,0
++[0-9a-f ]*: e9 6c 80 00 ld r11,-32768\(r12\)
++[0-9a-f ]*: 7d 69 03 a6 mtctr r11
++[0-9a-f ]*: 4e 80 04 20 bctr
++
++[0-9a-f ]*<.*long_branch.*>:
++[0-9a-f ]*: 49 bf 00 14 b .* <far>
++[0-9a-f ]*: R_PPC64_REL24 \*ABS\*\+0x137e00f4
++
++[0-9a-f ]*<.*plt_branch.*>:
++[0-9a-f ]*: 3d 82 00 00 addis r12,r2,0
++[0-9a-f ]*: e9 6c 80 08 ld r11,-32760\(r12\)
++[0-9a-f ]*: 7d 69 03 a6 mtctr r11
++[0-9a-f ]*: 4e 80 04 20 bctr
+ \.\.\.
+
+-0*137e00ec <far>:
+- 137e00ec: 4e 80 00 20 blr
++0*137e00f4 <far>:
++[0-9a-f ]*: 4e 80 00 20 blr
+ \.\.\.
+
+-0*13bf00c8 <far2far>:
+- 13bf00c8: 4e 80 00 20 blr
++[0-9a-f ]*<far2far>:
++[0-9a-f ]*: 4e 80 00 20 blr
+ \.\.\.
+
+-0*157e00cc <huge>:
+- 157e00cc: 4e 80 00 20 blr
++[0-9a-f ]*<huge>:
++[0-9a-f ]*: 4e 80 00 20 blr
+--- ld/testsuite/ld-powerpc/tlsexe.r 17 Aug 2006 08:21:06 -0000 1.18
++++ ld/testsuite/ld-powerpc/tlsexe.r 13 Feb 2007 01:53:03 -0000 1.19
+@@ -17,10 +17,10 @@ Section Headers:
+ +\[ 5\] \.rela\.dyn +.*
+ +\[ 6\] \.rela\.plt +.*
+ +\[ 7\] \.text +PROGBITS .* 0+100 0+ +AX +0 +0 +8
+- +\[ 8\] \.rodata + PROGBITS .* 0+ 0+ +A +0 +0 +8
+- +\[ 9\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+- +\[10\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+- +\[11\] \.dynamic +DYNAMIC .* 0+150 10 +WA +4 +0 +8
++ +\[ 8\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
++ +\[ 9\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
++ +\[10\] \.dynamic +DYNAMIC .* 0+150 10 +WA +4 +0 +8
++ +\[11\] \.branch_lt + PROGBITS .* 0+ 0+ +WA +0 +0 +8
+ +\[12\] \.got +PROGBITS .* 0+30 08 +WA +0 +0 +8
+ +\[13\] \.plt +.*
+ +\[14\] \.shstrtab +.*
+@@ -67,7 +67,7 @@ Symbol table '\.dynsym' contains [0-9]+
+ .* TLS +GLOBAL DEFAULT +UND gd
+ .* FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+ .* TLS +GLOBAL DEFAULT +UND ld
+-.* TLS +GLOBAL DEFAULT +10 ld2
++.* TLS +GLOBAL DEFAULT +9 ld2
+ .* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ .* NOTYPE +GLOBAL DEFAULT +ABS _edata
+ .* NOTYPE +GLOBAL DEFAULT +ABS _end
+@@ -88,26 +88,26 @@ Symbol table '\.symtab' contains .* entr
+ .* SECTION LOCAL +DEFAULT +11
+ .* SECTION LOCAL +DEFAULT +12
+ .* SECTION LOCAL +DEFAULT +13
+-.* TLS +LOCAL +DEFAULT +9 gd4
+-.* TLS +LOCAL +DEFAULT +9 ld4
+-.* TLS +LOCAL +DEFAULT +9 ld5
+-.* TLS +LOCAL +DEFAULT +9 ld6
+-.* TLS +LOCAL +DEFAULT +9 ie4
+-.* TLS +LOCAL +DEFAULT +9 le4
+-.* TLS +LOCAL +DEFAULT +9 le5
+-.* OBJECT +LOCAL +HIDDEN +11 _DYNAMIC
++.* TLS +LOCAL +DEFAULT +8 gd4
++.* TLS +LOCAL +DEFAULT +8 ld4
++.* TLS +LOCAL +DEFAULT +8 ld5
++.* TLS +LOCAL +DEFAULT +8 ld6
++.* TLS +LOCAL +DEFAULT +8 ie4
++.* TLS +LOCAL +DEFAULT +8 le4
++.* TLS +LOCAL +DEFAULT +8 le5
++.* OBJECT +LOCAL +HIDDEN +10 _DYNAMIC
+ .* FUNC +LOCAL +DEFAULT +UND \.__tls_get_addr
+ .* GLOBAL DEFAULT +UND gd
+-.* GLOBAL DEFAULT +10 le0
++.* GLOBAL DEFAULT +9 le0
+ .* GLOBAL DEFAULT +UND __tls_get_addr
+-.* GLOBAL DEFAULT +10 ld0
+-.* GLOBAL DEFAULT +10 le1
++.* GLOBAL DEFAULT +9 ld0
++.* GLOBAL DEFAULT +9 le1
+ .* GLOBAL DEFAULT +UND ld
+ .* NOTYPE +GLOBAL DEFAULT +7 _start
+-.* TLS +GLOBAL DEFAULT +10 ld2
+-.* TLS +GLOBAL DEFAULT +10 ld1
++.* TLS +GLOBAL DEFAULT +9 ld2
++.* TLS +GLOBAL DEFAULT +9 ld1
+ .* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ .* NOTYPE +GLOBAL DEFAULT +ABS _edata
+ .* NOTYPE +GLOBAL DEFAULT +ABS _end
+-.* TLS +GLOBAL DEFAULT +10 gd0
+-.* TLS +GLOBAL DEFAULT +10 ie0
++.* TLS +GLOBAL DEFAULT +9 gd0
++.* TLS +GLOBAL DEFAULT +9 ie0
+--- ld/testsuite/ld-powerpc/tlsexetoc.r 17 Aug 2006 08:21:06 -0000 1.19
++++ ld/testsuite/ld-powerpc/tlsexetoc.r 13 Feb 2007 01:53:03 -0000 1.20
+@@ -17,10 +17,10 @@ Section Headers:
+ +\[ 5\] \.rela\.dyn +.*
+ +\[ 6\] \.rela\.plt +.*
+ +\[ 7\] \.text +PROGBITS .* 0+c0 0+ +AX +0 +0 +8
+- +\[ 8\] \.rodata +PROGBITS .* 0+ 0+ +A +0 +0 +8
+- +\[ 9\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+- +\[10\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+- +\[11\] \.dynamic +DYNAMIC .* 0+150 10 +WA +4 +0 +8
++ +\[ 8\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
++ +\[ 9\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
++ +\[10\] \.dynamic +DYNAMIC .* 0+150 10 +WA +4 +0 +8
++ +\[11\] \.branch_lt +PROGBITS .* 0+ 0+ +WA +0 +0 +8
+ +\[12\] \.got +PROGBITS .* 0+58 08 +WA +0 +0 +8
+ +\[13\] \.plt +.*
+ +\[14\] \.shstrtab +.*
+@@ -87,27 +87,27 @@ Symbol table '\.symtab' contains .* entr
+ .* SECTION LOCAL +DEFAULT +11
+ .* SECTION LOCAL +DEFAULT +12
+ .* SECTION LOCAL +DEFAULT +13
+-.* TLS +LOCAL +DEFAULT +9 gd4
+-.* TLS +LOCAL +DEFAULT +9 ld4
+-.* TLS +LOCAL +DEFAULT +9 ld5
+-.* TLS +LOCAL +DEFAULT +9 ld6
+-.* TLS +LOCAL +DEFAULT +9 ie4
+-.* TLS +LOCAL +DEFAULT +9 le4
+-.* TLS +LOCAL +DEFAULT +9 le5
++.* TLS +LOCAL +DEFAULT +8 gd4
++.* TLS +LOCAL +DEFAULT +8 ld4
++.* TLS +LOCAL +DEFAULT +8 ld5
++.* TLS +LOCAL +DEFAULT +8 ld6
++.* TLS +LOCAL +DEFAULT +8 ie4
++.* TLS +LOCAL +DEFAULT +8 le4
++.* TLS +LOCAL +DEFAULT +8 le5
+ .* NOTYPE +LOCAL +DEFAULT +12 \.Lie0
+-.* OBJECT +LOCAL +HIDDEN +11 _DYNAMIC
++.* OBJECT +LOCAL +HIDDEN +10 _DYNAMIC
+ .* FUNC +LOCAL +DEFAULT +UND \.__tls_get_addr
+ .* TLS +GLOBAL DEFAULT +UND gd
+-.* TLS +GLOBAL DEFAULT +10 le0
++.* TLS +GLOBAL DEFAULT +9 le0
+ .* FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+-.* TLS +GLOBAL DEFAULT +10 ld0
+-.* TLS +GLOBAL DEFAULT +10 le1
++.* TLS +GLOBAL DEFAULT +9 ld0
++.* TLS +GLOBAL DEFAULT +9 le1
+ .* TLS +GLOBAL DEFAULT +UND ld
+ .* NOTYPE +GLOBAL DEFAULT +7 _start
+-.* TLS +GLOBAL DEFAULT +10 ld2
+-.* TLS +GLOBAL DEFAULT +10 ld1
++.* TLS +GLOBAL DEFAULT +9 ld2
++.* TLS +GLOBAL DEFAULT +9 ld1
+ .* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ .* NOTYPE +GLOBAL DEFAULT +ABS _edata
+ .* NOTYPE +GLOBAL DEFAULT +ABS _end
+-.* TLS +GLOBAL DEFAULT +10 gd0
+-.* TLS +GLOBAL DEFAULT +10 ie0
++.* TLS +GLOBAL DEFAULT +9 gd0
++.* TLS +GLOBAL DEFAULT +9 ie0
+--- ld/testsuite/ld-powerpc/tlsso.r 17 Oct 2006 13:41:48 -0000 1.18
++++ ld/testsuite/ld-powerpc/tlsso.r 13 Feb 2007 01:53:03 -0000 1.19
+@@ -17,8 +17,8 @@ Section Headers:
+ +\[ 6\] \.text .*
+ +\[ 7\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+ +\[ 8\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+- +\[ 9\] \.data\.rel\.ro .*
+- +\[10\] \.dynamic .*
++ +\[ 9\] \.dynamic .*
++ +\[10\] \.branch_lt .*
+ +\[11\] \.got .*
+ +\[12\] \.plt .*
+ +\[13\] \.shstrtab .*
+--- ld/testsuite/ld-powerpc/tlstocso.r 17 Oct 2006 13:41:48 -0000 1.18
++++ ld/testsuite/ld-powerpc/tlstocso.r 13 Feb 2007 01:53:03 -0000 1.19
+@@ -17,8 +17,8 @@ Section Headers:
+ +\[ 6\] \.text .*
+ +\[ 7\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+ +\[ 8\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+- +\[ 9\] \.data\.rel\.ro .*
+- +\[10\] \.dynamic .*
++ +\[ 9\] \.dynamic .*
++ +\[10\] \.branch_lt .*
+ +\[11\] \.got .*
+ +\[12\] \.plt .*
+ +\[13\] \.shstrtab .*
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-rh241252.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-rh241252.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-rh241252.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,17 @@
+2007-05-03 Alan Modra <amodra at bigpond.net.au>
+
+ * scripttempl/elf.sc: Add .debug_pubtypes and .debug_ranges.
+
+--- ld/scripttempl/elf.sc 26 Oct 2006 00:31:59 -0000 1.79
++++ ld/scripttempl/elf.sc 3 May 2007 07:06:13 -0000 1.80
+@@ -505,6 +505,10 @@ cat <<EOF
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+
++ /* DWARF 3 */
++ .debug_pubtypes 0 : { *(.debug_pubtypes) }
++ .debug_ranges 0 : { *(.debug_ranges) }
++
+ ${TINY_DATA_SECTION}
+ ${TINY_BSS_SECTION}
+
Added: branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-sse4.patch
===================================================================
--- branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-sse4.patch (rev 0)
+++ branches/rpms/brian/noarch-novendor-nosystem-binutils/binutils-2.17.50.0.6-sse4.patch 2008-06-09 23:18:27 UTC (rev 6350)
@@ -0,0 +1,2847 @@
+gas/
+2007-05-03 H.J. Lu <hongjiu.lu at intel.com>
+
+ * config/tc-i386.c (match_template): Don't explicitly check
+ suffix for crc32 in Intel mode.
+ (process_suffix): Issue an error for crc32 if the operand size
+ is ambiguous.
+
+2007-05-01 H.J. Lu <hongjiu.lu at intel.com>
+
+ * config/tc-i386.c (match_template): Check suffix for crc32 in
+ Intel mdoe.
+ (process_suffix): Default the suffix of 8bit crc32 to
+ BYTE_MNEM_SUFFIX.
+ (check_byte_reg): Skip check for 8bit crc32.
+
+2007-04-18 H.J. Lu <hongjiu.lu at intel.com>
+
+ * doc/c-i386.texi; Document .ssse3, .sse4.1, .sse4.2 and .sse4.
+
+2007-04-18 H.J. Lu <hongjiu.lu at intel.com>
+
+ * config/tc-i386.c (cpu_arch): Add .sse4.2 and .sse4.
+ (match_template): Handle operand size for crc32 in SSE4.2.
+ (process_suffix): Handle operand type for crc32 in SSE4.2.
+ (output_insn): Support SSE4.2.
+
+2007-04-18 H.J. Lu <hongjiu.lu at intel.com>
+
+ * config/tc-i386.c (cpu_arch): Add .sse4.1.
+ (process_operands): Adjust implicit operand for blendvpd,
+ blendvps and pblendvb in SSE4.1.
+ (output_insn): Support SSE4.1.
+
+gas/testsuite/
+2007-05-03 H.J. Lu <hongjiu.lu at intel.com>
+
+ * gas/i386/crc32-intel.d: Updated.
+ * gas/i386/crc32.d: Likewise.
+ * gas/i386/sse4_2.d: Likewise.
+ * gas/i386/x86-64-crc32-intel.d: Likewise.
+ * gas/i386/x86-64-crc32.d: Likewise.
+ * gas/i386/x86-64-sse4_2.d: Likewise.
+
+ * gas/i386/crc32.s: Remove crc32 instructions with ambiguous
+ operand size and suffix in crc32 instructions in Intel mode.
+ * gas/i386/x86-64-crc32.s: Likewise.
+
+ * gas/i386/sse4_2.s: Remove crc32 instructions with ambiguous
+ operand size.
+ * gas/i386/x86-64-sse4_2.s: Likewise.
+
+ * gas/i386/i386.exp: Run inval-crc32 and x86-64-inval-crc32.
+
+ * gas/i386/inval-crc32.l: New.
+ * gas/i386/inval-crc32.s: Likewise.
+ * gas/i386/x86-64-inval-crc32.l: Likewise.
+ * gas/i386/x86-64-inval-crc32.s: Likewise.
+
+2007-05-01 H.J. Lu <hongjiu.lu at intel.com>
+
+ * gas/i386/crc32-intel.d: New file.
+ * gas/i386/crc32.d:Likewise.
+ * gas/i386/crc32.s:Likewise.
+ * gas/i386/x86-64-crc32-intel.d:Likewise.
+ * gas/i386/x86-64-crc32.d:Likewise.
+ * gas/i386/x86-64-crc32.s:Likewise.
+
+ * gas/i386/i386.exp: Run crc32, crc32-intel, x86-64-crc32
+ and x86-64-crc32-intel.
+
+2007-04-18 H.J. Lu <hongjiu.lu at intel.com>
+
+ * gas/i386/i386.exp: Add sse4.2 and x86-64-sse4.2.
+
+ * gas/i386/sse4_2.d: New file.
+ * gas/i386/sse4_2.s: Likewise.
+ * gas/i386/x86-64-sse4_2.d: Likewise.
+ * gas/i386/x86-64-sse4_2.s: Likewise.
+
+2007-04-18 H.J. Lu <hongjiu.lu at intel.com>
+
+ * gas/i386/i386.exp: Add sse4.1 and x86-64-sse4.1.
+
+ * gas/i386/sse4_1.d: New file.
+ * gas/i386/sse4_1.s: Likewise.
+ * gas/i386/x86-64-sse4_1.d: Likewise.
+ * gas/i386/x86-64-sse4_1.s: Likewise.
+
+opcodes/
+2007-05-07 H.J. Lu <hongjiu.lu at intel.com>
+
+ * i386-dis.c (threebyte_0x38_uses_DATA_prefix): Correct entries
+ for SSE4.
+ (threebyte_0x3a_uses_DATA_prefix): Likewise.
+
+2007-05-03 H.J. Lu <hongjiu.lu at intel.com>
+
+ * i386-dis.c (CRC32_Fixup): Don't print suffix in Intel mode.
+
+ * i386-opc.c (i386_optab): Remove IgnoreSize and correct operand
+ type for crc32.
+
+2007-05-01 H.J. Lu <hongjiu.lu at intel.com>
+
+ * i386-dis.c (CRC32_Fixup): Properly handle Intel mode and
+ check data size prefix in 16bit mode.
+
+ * i386-opc.c (i386_optab): Default crc32 to non-8bit and
+ support Intel mode.
+
+2007-04-18 H.J. Lu <hongjiu.lu at intel.com>
+
+ * i386-dis.c (CRC32_Fixup): New.
+ (PREGRP85, PREGRP86, PREGRP87, PREGRP88, PREGRP89, PREGRP90,
+ PREGRP91): New.
+ (threebyte_0x38_uses_DATA_prefix): Updated for SSE4.2.
+ (threebyte_0x3a_uses_DATA_prefix): Likewise.
+ (prefix_user_table): Add PREGRP85, PREGRP86, PREGRP87,
+ PREGRP88, PREGRP89, PREGRP90 and PREGRP91.
+ (three_byte_table): Likewise.
+
+ * i386-opc.c (i386_optab): Add SSE4.2 opcodes.
+
+2006-11-09 H.J. Lu <hongjiu.lu at intel.com>
+
+ * i386-dis.c (print_insn): Check PREFIX_REPNZ before
+ PREFIX_DATA when prefix user table is used.
+
+2006-11-09 H.J. Lu <hongjiu.lu at intel.com>
+
+ * i386-dis.c (twobyte_uses_SSE_prefix): Renamed to ...
+ (twobyte_uses_DATA_prefix): This.
+ (twobyte_uses_REPNZ_prefix): New.
+ (twobyte_uses_REPZ_prefix): Likewise.
+ (threebyte_0x38_uses_DATA_prefix): Likewise.
+ (threebyte_0x38_uses_REPNZ_prefix): Likewise.
+ (threebyte_0x38_uses_REPZ_prefix): Likewise.
+ (threebyte_0x3a_uses_DATA_prefix): Likewise.
+ (threebyte_0x3a_uses_REPNZ_prefix): Likewise.
+ (threebyte_0x3a_uses_REPZ_prefix): Likewise.
+ (print_insn): Updated checking usages of DATA/REPNZ/REPZ
+ prefixes.
+
+2007-04-18 H.J. Lu <hongjiu.lu at intel.com>
+
+ * i386-dis.c (XMM_Fixup): New.
+ (Edqb): New.
+ (Edqd): New.
+ (XMM0): New.
+ (dqb_mode): New.
+ (dqd_mode): New.
+ (PREGRP39 ... PREGRP85): New.
+ (threebyte_0x38_uses_DATA_prefix): Updated for SSE4.
+ (threebyte_0x3a_uses_DATA_prefix): Likewise.
+ (prefix_user_table): Add PREGRP39 ... PREGRP85.
+ (three_byte_table): Likewise.
+ (putop): Handle 'K'.
+ (intel_operand_size): Handle dqb_mode, dqd_mode):
+ (OP_E): Likewise.
+ (OP_G): Likewise.
+
+ * i386-opc.c (i386_optab): Add SSE4.1 opcodes.
+
+ * i386-opc.h (CpuSSE4_1): New.
+ (CpuUnknownFlags): Add CpuSSE4_1.
+ (regKl