[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