rpms/binutils/FC-6 binutils-2.17.50.0.6-build-fixes.patch, NONE, 1.1 binutils-2.17.50.0.6-elfvsb-test.patch, NONE, 1.1 binutils-2.17.50.0.6-fixsyms.patch, NONE, 1.1 binutils-2.17.50.0.6-gas-debug-ranges-revert.patch, NONE, 1.1 binutils-2.17.50.0.6-ia64-lib64.patch, NONE, 1.1 binutils-2.17.50.0.6-kept-section.patch, NONE, 1.1 binutils-2.17.50.0.6-ltconfig-multilib.patch, NONE, 1.1 binutils-2.17.50.0.6-place-orphan.patch, NONE, 1.1 binutils-2.17.50.0.6-popcnt.patch, NONE, 1.1 binutils-2.17.50.0.6-power6-insns.patch, NONE, 1.1 binutils-2.17.50.0.6-ppc64-pie.patch, NONE, 1.1 binutils-2.17.50.0.6-standards.patch, NONE, 1.1 .cvsignore, 1.27, 1.28 binutils.spec, 1.103, 1.104 sources, 1.28, 1.29 binutils-2.17.50.0.3-build-fixes.patch, 1.1, NONE binutils-2.17.50.0.3-bz3171.patch, 1.1, NONE binutils-2.17.50.0.3-elfvsb-test.patch, 1.1, NONE binutils-2.17.50.0.3-ia64-lib64.patch, 1.1, NONE binutils-2.17.50.0.3-kept-section.patch, 1.1, NONE binutils-2.17.50.0.3-ltconfig-multilib.patch, 1.1, NONE binutils-2.17.50.0.3-opc! odes-intl.patch, 1.1, NONE binutils-2.17.50.0.3-place-orphan.patch, 1.1, NONE binutils-2.17.50.0.3-power6-insns.patch, 1.1, NONE binutils-2.17.50.0.3-ppc64-pie.patch, 1.1, NONE binutils-2.17.50.0.3-standards.patch, 1.1, NONE binutils-2.17.50.0.3-x86-noautoarch-rh200330.patch, 1.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Thu Dec 21 15:10:37 UTC 2006


Author: jakub

Update of /cvs/dist/rpms/binutils/FC-6
In directory cvs.devel.redhat.com:/tmp/cvs-serv10248/FC-6

Modified Files:
	.cvsignore binutils.spec sources 
Added Files:
	binutils-2.17.50.0.6-build-fixes.patch 
	binutils-2.17.50.0.6-elfvsb-test.patch 
	binutils-2.17.50.0.6-fixsyms.patch 
	binutils-2.17.50.0.6-gas-debug-ranges-revert.patch 
	binutils-2.17.50.0.6-ia64-lib64.patch 
	binutils-2.17.50.0.6-kept-section.patch 
	binutils-2.17.50.0.6-ltconfig-multilib.patch 
	binutils-2.17.50.0.6-place-orphan.patch 
	binutils-2.17.50.0.6-popcnt.patch 
	binutils-2.17.50.0.6-power6-insns.patch 
	binutils-2.17.50.0.6-ppc64-pie.patch 
	binutils-2.17.50.0.6-standards.patch 
Removed Files:
	binutils-2.17.50.0.3-build-fixes.patch 
	binutils-2.17.50.0.3-bz3171.patch 
	binutils-2.17.50.0.3-elfvsb-test.patch 
	binutils-2.17.50.0.3-ia64-lib64.patch 
	binutils-2.17.50.0.3-kept-section.patch 
	binutils-2.17.50.0.3-ltconfig-multilib.patch 
	binutils-2.17.50.0.3-opcodes-intl.patch 
	binutils-2.17.50.0.3-place-orphan.patch 
	binutils-2.17.50.0.3-power6-insns.patch 
	binutils-2.17.50.0.3-ppc64-pie.patch 
	binutils-2.17.50.0.3-standards.patch 
	binutils-2.17.50.0.3-x86-noautoarch-rh200330.patch 
Log Message:
auto-import binutils-2.17.50.0.6-2.fc6 on branch FC-6 from binutils-2.17.50.0.6-2.fc6.src.rpm

binutils-2.17.50.0.6-build-fixes.patch:
 ld-elfcomm/common1b.c |    6 +++++-
 ld-shared/main.c      |    2 ++
 2 files changed, 7 insertions(+), 1 deletion(-)

--- NEW FILE binutils-2.17.50.0.6-build-fixes.patch ---
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];

binutils-2.17.50.0.6-elfvsb-test.patch:
 elfvsb.exp |    8 ++++----
 sh1.c      |    6 ++++++
 sh2.c      |   10 ++++++++++
 3 files changed, 20 insertions(+), 4 deletions(-)

--- NEW FILE binutils-2.17.50.0.6-elfvsb-test.patch ---
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


binutils-2.17.50.0.6-fixsyms.patch:
 linker.c |   61 +++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 49 insertions(+), 12 deletions(-)

--- NEW FILE binutils-2.17.50.0.6-fixsyms.patch ---
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;
 	}

binutils-2.17.50.0.6-gas-debug-ranges-revert.patch:
 dwarf2dbg.c                          |  149 +++++++++++++++++++++++++++++++++--
 testsuite/gas/lns/lns-common-1-alt.d |   39 +++++++++
 testsuite/gas/lns/lns.exp            |    7 +
 3 files changed, 186 insertions(+), 9 deletions(-)

--- NEW FILE binutils-2.17.50.0.6-gas-debug-ranges-revert.patch ---
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"
+  }
 }

binutils-2.17.50.0.6-ia64-lib64.patch:
 ld/emulparams/elf64_ia64.sh |   10 ++++++++++
 ltconfig                    |    4 ++--
 2 files changed, 12 insertions(+), 2 deletions(-)

--- NEW FILE binutils-2.17.50.0.6-ia64-lib64.patch ---
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"

binutils-2.17.50.0.6-kept-section.patch:
 elf-bfd.h |    5 +++++
 elflink.c |   13 +++++++++++++
 2 files changed, 18 insertions(+)

--- NEW FILE binutils-2.17.50.0.6-kept-section.patch ---
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;
 }
 

binutils-2.17.50.0.6-ltconfig-multilib.patch:
 ltconfig |   17 +++++++++++++++++
 1 files changed, 17 insertions(+)

--- NEW FILE binutils-2.17.50.0.6-ltconfig-multilib.patch ---
--- 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*)

binutils-2.17.50.0.6-place-orphan.patch:
 elf64ppc.sh |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

--- NEW FILE binutils-2.17.50.0.6-place-orphan.patch ---
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)) }"

binutils-2.17.50.0.6-popcnt.patch:
 gas/doc/c-i386.texi                      |    5 +++--
 gas/testsuite/gas/i386/amdfam10.d        |   23 +++++++++++------------
 gas/testsuite/gas/i386/x86-64-amdfam10.d |   24 ++++++++++++------------
 include/opcode/i386.h                    |    2 +-
 opcodes/i386-dis.c                       |   18 ++++++++++++++----
 5 files changed, 41 insertions(+), 31 deletions(-)

--- NEW FILE binutils-2.17.50.0.6-popcnt.patch ---
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\)
 	...

binutils-2.17.50.0.6-power6-insns.patch:
 ppc-opc.c |    4 ++++
 1 files changed, 4 insertions(+)

--- NEW FILE binutils-2.17.50.0.6-power6-insns.patch ---
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 } },

binutils-2.17.50.0.6-ppc64-pie.patch:
 elf64-ppc.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletion(-)

--- NEW FILE binutils-2.17.50.0.6-ppc64-pie.patch ---
--- 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,

binutils-2.17.50.0.6-standards.patch:
 standards.texi |  493 +++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 322 insertions(+), 171 deletions(-)

--- NEW FILE binutils-2.17.50.0.6-standards.patch ---
--- etc/standards.texi.jj	2002-02-27 11:32:17.000000000 +0100
+++ etc/standards.texi	2005-08-18 19:05:42.000000000 +0200
@@ -3,16 +3,13 @@
 @setfilename standards.info
 @settitle GNU Coding Standards
 @c This date is automagically updated when you save this file:
- at set lastupdate February 14, 2002
+ at set lastupdate June 8, 2005
 @c %**end of header
 
- at ifnottex
- at format
-START-INFO-DIR-ENTRY
+ at dircategory GNU organization
+ at direntry
 * Standards: (standards).        GNU coding standards.
-END-INFO-DIR-ENTRY
- at end format
- at end ifnottex
+ at end direntry
 
 @c @setchapternewpage odd
 @setchapternewpage off
@@ -32,9 +29,11 @@ END-INFO-DIR-ENTRY
 @set CHAPTER node
 @end ifnottex
 
- at ifnottex
-GNU Coding Standards
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ at copying
+The GNU coding standards, last updated @value{lastupdate}.
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1
@@ -43,32 +42,25 @@ with no Invariant Sections, with no
 Front-Cover Texts, and with no Back-Cover Texts.
 A copy of the license is included in the section entitled ``GNU
 Free Documentation License''.
- at end ifnottex
+ at end copying
 
 @titlepage
 @title GNU Coding Standards
 @author Richard Stallman, et al.
 @author last updated @value{lastupdate}
 @page
-
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no
-Front-Cover Texts, and with no Back-Cover Texts.
-A copy of the license is included in the section entitled ``GNU
-Free Documentation License''.
+ at insertcopying
 @end titlepage
 
- at ifnottex
+ at contents
+
+ at ifnottex
 @node Top, Preface, (dir), (dir)
 @top Version
 
-Last updated @value{lastupdate}.
- at end ifnottex
+ at insertcopying
+ at end ifnottex
 
 @menu
 * Preface::                     About the GNU Coding Standards
@@ -101,15 +93,10 @@ This release of the GNU Coding Standards
 @cindex where to obtain @code{standards.texi}
 @cindex downloading this manual
 If you did not obtain this file directly from the GNU project and
-recently, please check for a newer version.  You can ftp the GNU
-Coding Standards from any GNU FTP host in the directory
- at file{/pub/gnu/standards/}.  The GNU Coding Standards are available
-there in several different formats: @file{standards.text},
- at file{standards.info}, and @file{standards.dvi}, as well as the
-Texinfo ``source'' which is divided in two files:
- at file{standards.texi} and @file{make-stds.texi}.  The GNU Coding
-Standards are also available on the GNU World Wide Web server:
- at uref{http://www.gnu.org/prep/standards_toc.html}.
+recently, please check for a newer version.  You can get the GNU
+Coding Standards from the GNU web server in many
+different formats, including the Texinfo source, PDF, HTML, DVI, plain
+text, and more, at: @uref{http://www.gnu.org/prep/standards/}.
 
 Corrections or suggestions for this document should be sent to
 @email{bug-standards@@gnu.org}.  If you make a suggestion, please include a
@@ -129,11 +116,15 @@ be self-consistent---try to stick to the
 to document them as much as possible.  That way, your program will be
 more maintainable by others.
 
+The GNU Hello program serves as an example of how to follow the GNU
+coding standards for a trivial program which prints @samp{Hello,
+world!}.  @uref{http://www.gnu.org/software/hello/hello.html}.
+
 @node Legal Issues
 @chapter Keeping Free Software Free
 @cindex legal aspects
 
-This @value{CHAPTER} discusses how you can make sure that GNU software
+This chapter discusses how you can make sure that GNU software
 avoids legal difficulties, and other related issues.
 
 @menu
@@ -211,7 +202,7 @@ You might have to take that code out aga
 You don't need papers for changes of a few lines here or there, since
 they are not significant for copyright purposes.  Also, you don't need
 papers if all you get from the suggestion is some ideas, not actual code
-which you use.  For example, if someone send you one implementation, but
+which you use.  For example, if someone sent you one implementation, but
 you write a different implementation of the same idea, you don't need to
 get papers.
 
@@ -221,7 +212,8 @@ result.
 
 We have more detailed advice for maintainers of programs; if you have
 reached the stage of actually maintaining a program for GNU (whether
-released or not), please ask us for a copy.
+released or not), please ask us for a copy.  It is also available
+online for your perusal: @uref{http://www.gnu.org/prep/maintain/}.
 
 @node Trademarks
 @section Trademarks
@@ -232,24 +224,33 @@ packages or documentation.
 
 Trademark acknowledgements are the statements that such-and-such is a
 trademark of so-and-so.  The GNU Project has no objection to the basic
-idea of trademarks, but these acknowledgements feel like kowtowing, so
-we don't use them.  There is no legal requirement for them.
+idea of trademarks, but these acknowledgements feel like kowtowing, 
+and there is no legal requirement for them, so we don't use them.
 
 What is legally required, as regards other people's trademarks, is to
-avoid using them in ways which a reader might read as naming or labeling
-our own programs or activities.  For example, since ``Objective C'' is
-(or at least was) a trademark, we made sure to say that we provide a
-``compiler for the Objective C language'' rather than an ``Objective C
-compiler''.  The latter is meant to be short for the former, but it does
-not explicitly state the relationship, so it could be misinterpreted as
-using ``Objective C'' as a label for the compiler rather than for the
-language.
+avoid using them in ways which a reader might reasonably understand as
+naming or labeling our own programs or activities.  For example, since
+``Objective C'' is (or at least was) a trademark, we made sure to say
+that we provide a ``compiler for the Objective C language'' rather
+than an ``Objective C compiler''.  The latter would have been meant as
+a shorter way of saying the former, but it does not explicitly state
+the relationship, so it could be misinterpreted as using ``Objective
+C'' as a label for the compiler rather than for the language.
+
+Please don't use ``win'' as an abbreviation for Microsoft Windows in
+GNU software or documentation.  In hacker terminology, calling
+something a ``win'' is a form of praise.  If you wish to praise
+Microsoft Windows when speaking on your own, by all means do so, but
+not in GNU software.  Usually we write the name ``Windows'' in full,
+but when brevity is very important (as in file names and sometimes
+symbol names), we abbreviate it to ``w''.  For instance, the files and
+functions in Emacs that deal with Windows start with @samp{w32}.
 
 @node Design Advice
 @chapter General Program Design
 @cindex program design
 
-This @value{CHAPTER} discusses some of the issues you should take into
+This chapter discusses some of the issues you should take into
 account when designing your program.
 
 @c                         Standard or ANSI C
@@ -263,7 +264,7 @@ account when designing your program.
 @c A major revision of the C Standard appeared in 1999.
 
 @menu
-* Source Language::             Which languges to use.
+* Source Language::             Which languages to use.
 * Compatibility::               Compatibility with other implementations
 * Using Extensions::            Using non-standard features
 * Standard C::                  Using Standard C features
@@ -272,7 +273,7 @@ account when designing your program.
 
 @node Source Language
 @section Which Languages to Use
- at cindex programming languges
+ at cindex programming languages
 
 When you want to use a language that gets compiled and runs at high
 speed, the best language to use is C.  Using another language is like
@@ -476,6 +477,7 @@ For example, please write
     ...
 @end smallexample
 
+ at noindent
 instead of:
 
 @smallexample
@@ -488,11 +490,12 @@ instead of:
 
 A modern compiler such as GCC will generate exactly the same code in
 both cases, and we have been using similar techniques with good success
-in several projects.
+in several projects.  Of course, the former method assumes that
+ at code{HAS_FOO} is defined as either 0 or 1.
 
 While this is not a silver bullet solving all portability problems,
-following this policy would have saved the GCC project alone many person
-hours if not days per year.
+and is not always appropriate, following this policy would have saved
+GCC developers many hours, or even days, per year.
 
 In the case of function-like macros like @code{REVERSIBLE_CC_MODE} in
 GCC which cannot be simply used in @code{if( ...)} statements, there is
@@ -510,7 +513,7 @@ an easy workaround.  Simply introduce an
 @node Program Behavior
 @chapter Program Behavior for All Programs
 
-This @value{CHAPTER} describes conventions for writing robust
+This chapter describes conventions for writing robust
 software.  It also describes general standards for error messages, the
 command line interface, and how libraries should behave.
 
@@ -679,10 +682,12 @@ Error messages from compilers should loo
 @end example
 
 @noindent
-If you want to mention the column number, use this format:
+If you want to mention the column number, use one of these formats:
 
 @example
 @var{source-file-name}:@var{lineno}:@var{column}: @var{message}
+ at var{source-file-name}:@var{lineno}. at var{column}: @var{message}   
+
 @end example
 
 @noindent
@@ -692,6 +697,24 @@ of these conventions are chosen for comp
 numbers assuming that space and all ASCII printing characters have
 equal width, and assuming tab stops every 8 columns.
 
+The error message can also give both the starting and ending positions
+of the erroneous text.  There are several formats so that you can
+avoid redundant information such as a duplicate line number.
+Here are the possible formats:
+
+ at example
+ at var{source-file-name}:@var{lineno-1}. at var{column-1}- at var{lineno-2}. at var{column-2}: @var{message}
+ at var{source-file-name}:@var{lineno-1}. at var{column-1}- at var{column-2}: @var{message}
+ at var{source-file-name}:@var{lineno-1}- at var{lineno-2}: @var{message}
+ at end example
+
+ at noindent
+When an error is spread over several files, you can use this format:
+
+ at example
+ at var{file-1}:@var{lineno-1}. at var{column-1}- at var{file-2}:@var{lineno-2}. at var{column-2}: @var{message}
+ at end example
+
 Error messages from other noninteractive programs should look like this:
 
 @example
@@ -722,8 +745,9 @@ input from a source other than a termina
 would do best to print error messages using the noninteractive style.)
 
 The string @var{message} should not begin with a capital letter when
-it follows a program name and/or file name.  Also, it should not end
-with a period.
+it follows a program name and/or file name, because that isn't the
+beginning of a sentence.  (The sentence conceptually starts at the
+beginning of the line.)  Also, it should not end with a period.
 
 Error messages from interactive programs, and other messages such as
 usage messages, should start with a capital letter.  But they should not
@@ -767,9 +791,9 @@ multi-column format.
 @section Standards for Graphical Interfaces
 @cindex graphical user interface
 
- at cindex gtk
+ at cindex gtk+
 When you write a program that provides a graphical user interface,
-please make it work with X Windows and the GTK toolkit unless the
+please make it work with X Windows and the GTK+ toolkit unless the
 functionality specifically requires some alternative (for example,
 ``displaying jpeg images while in console mode'').
 
@@ -819,8 +843,15 @@ option as another way to specify it.  Th
 among GNU utilities, and fewer idiosyncracies for users to remember.
 
 @cindex standard command-line options
+ at cindex options, standard command-line
+ at cindex CGI programs, standard options for
+ at cindex PATH_INFO, specifying standard options as
 All programs should support two standard options: @samp{--version}
-and @samp{--help}.
+and @samp{--help}.  CGI programs should accept these as command-line
+options, and also if given as the @env{PATH_INFO}; for instance,
+visiting @url{http://example.org/p.cgi/--help} in a browser should
+output the same information as invoking @samp{p.cgi --help} from the
+command line.
 
 @table @code
 @cindex @samp{--version} option
@@ -1461,9 +1492,7 @@ Used in @code{gawk}.
 Used in @code{su}.
 
 @item machine
-No listing of which programs already use this;
-someone should check to
-see if any actually do, and tell @email{gnu@@gnu.org}.
+Used in @code{uname}.
 
 @item macro-name
 @samp{-M} in @code{ptx}.
@@ -1573,6 +1602,9 @@ Used in GDB.
 @item no-sort
 @samp{-p} in @code{nm}.
 
+ at item no-splash
+Don't print a startup splash screen.
+
 @item no-split
 Used in @code{makeinfo}.
 
@@ -1740,7 +1772,7 @@ Specify an HTTP proxy.
 @samp{-q} in Make.
 
 @item quiet
-Used in many programs to inhibit the usual output.  @strong{Note:} every
+Used in many programs to inhibit the usual output.  Every
 program accepting @samp{--quiet} should accept @samp{--silent} as a
 synonym.
 
@@ -1855,7 +1887,7 @@ Used by @code{recode} to chose files or 
 
 @item silent
 Used in many programs to inhibit the usual output.
- at strong{Note:} every program accepting
+Every program accepting
 @samp{--silent} should accept @samp{--quiet} as a synonym.
 
 @item size
@@ -2098,7 +2130,7 @@ directory.
 @node Writing C
 @chapter Making The Best Use of C
 
-This @value{CHAPTER} provides advice on how best to use the C language
+This chapter provides advice on how best to use the C language
 when writing GNU software.
 
 @menu
@@ -2128,13 +2160,12 @@ These tools will not work on code not fo
 It is also important for function definitions to start the name of the
 function in column zero.  This helps people to search for function
 definitions, and may also help certain tools recognize them.  Thus,
-the proper format is this:
+using Standard C syntax, the format is this:
 
 @example
 static char *
-concat (s1, s2)        /* Name starts in column zero here */
-     char *s1, *s2;
-@{                     /* Open brace in column zero here */
+concat (char *s1, char *s2)
+@{
   @dots{}
 @}
 @end example
@@ -2145,8 +2176,9 @@ this:
 
 @example
 static char *
-concat (char *s1, char *s2)
-@{
+concat (s1, s2)        /* Name starts in column zero here */
+     char *s1, *s2;
+@{                     /* Open brace in column zero here */
   @dots{}
 @}
 @end example
@@ -2383,7 +2415,7 @@ functions.
 @cindex temporary variables
 It used to be common practice to use the same local variables (with
 names like @code{tem}) over and over for different values within one
-function.  Instead of doing this, it is better declare a separate local
+function.  Instead of doing this, it is better to declare a separate local
 variable for each distinct purpose, and give it a name which is
 meaningful.  This not only makes programs easier to understand, it also
 facilitates optimization by good compilers.  You can also move the
@@ -2584,11 +2616,20 @@ Avoid using the format of semi-internal 
 when there is a higher-level alternative (@code{readdir}).
 
 @cindex non- at sc{posix} systems, and portability
-As for systems that are not like Unix, such as MSDOS, Windows, the
-Macintosh, VMS, and MVS, supporting them is often a lot of work.  When
-that is the case, it is better to spend your time adding features that
-will be useful on GNU and GNU/Linux, rather than on supporting other
-incompatible systems.
+As for systems that are not like Unix, such as MSDOS, Windows, VMS,
+MVS, and older Macintosh systems, supporting them is often a lot of
+work.  When that is the case, it is better to spend your time adding
+features that will be useful on GNU and GNU/Linux, rather than on
+supporting other incompatible systems.
+
+If you do support Windows, please do not abbreviate it as ``win''.  In
+hacker terminology, calling something a ``win'' is a form of praise.
+You're free to praise Microsoft Windows on your own if you want, but
+please don't do this in GNU packages.  Instead of abbreviating
+``Windows'' to ``un'', you can write it in full or abbreviate it to
+``woe'' or ``w''.  In GNU Emacs, for instance, we use @samp{w32} in
+file names of Windows-specific files, but the macro for Windows
+conditionals is called @code{WINDOWSNT}.
 
 It is a good idea to define the ``feature test macro''
 @code{_GNU_SOURCE} when compiling your C files.  When you compile on GNU
@@ -2644,37 +2685,50 @@ while ((c = getchar()) != EOF)
   write(file_descriptor, &c, 1);
 @end example
 
-When calling functions, you need not worry about the difference between
-pointers of various types, or between pointers and integers.  On most
-machines, there's no difference anyway.  As for the few machines where
-there is a difference, all of them support Standard C prototypes, so you can
-use prototypes (perhaps conditionalized to be active only in Standard C)
-to make the code work on those systems.
-
-In certain cases, it is ok to pass integer and pointer arguments
-indiscriminately to the same function, and use no prototype on any
-system.  For example, many GNU programs have error-reporting functions
-that pass their arguments along to @code{printf} and friends:
-
- at example
-error (s, a1, a2, a3)
-     char *s;
-     char *a1, *a2, *a3;
-@{
-  fprintf (stderr, "error: ");
-  fprintf (stderr, s, a1, a2, a3);
-@}
+It used to be ok to not worry about the difference between pointers
+and integers when passing arguments to functions.  However, on most
+modern 64-bit machines pointers are wider than @code{int}.
+Conversely, integer types like @code{long long int} and @code{off_t}
+are wider than pointers on most modern 32-bit machines.  Hence it's
+often better nowadays to use prototypes to define functions whose
+argument types are not trivial.
+
+In particular, if functions accept varying argument counts or types
+they should be declared using prototypes containing @samp{...} and
+defined using @file{stdarg.h}.  For an example of this, please see the
+ at uref{http://www.gnu.org/software/gnulib/, Gnulib} error module, which
+declares and defines the following function:
+
+ at example
+/* Print a message with `fprintf (stderr, FORMAT, ...)';
+   if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
+   If STATUS is nonzero, terminate the program with `exit (STATUS)'.  */
+
+void error (int status, int errnum, const char *format, ...);
 @end example
 
- at noindent
-In practice, this works on all machines, since a pointer is generally
-the widest possible kind of argument; it is much simpler than any
-``correct'' alternative.  Be sure @emph{not} to use a prototype for such
-functions.
+A simple way to use the Gnulib error module is to obtain the two
+source files @file{error.c} and @file{error.h} from the Gnulib library
+source code repository at
+ at uref{http://savannah.gnu.org/cgi-bin/viewcvs/gnulib/gnulib/lib/}.
+Here's a sample use:
 
-If you have decided to use Standard C, then you can instead define
- at code{error} using @file{stdarg.h}, and pass the arguments along to
- at code{vfprintf}.
+ at example
+#include "error.h"
+#include <errno.h>
+#include <stdio.h>
+
+char *program_name = "myprogram";
+
+FILE *
+xfopen (char const *name)
+@{
+  FILE *fp = fopen (name, "r");
+  if (! fp)
+    error (1, errno, "cannot read %s", name);
+  return fp;
+@}
+ at end example
 
 @cindex casting pointers to integers
 Avoid casting pointers to integers if you can.  Such casts greatly
@@ -3000,10 +3054,13 @@ together, we can make the whole subject 
 
 The manual which discusses a program should certainly document all of
 the program's command-line options and all of its commands.  It should
-give examples of their use.  But don't organize the manual as a list of
-features.  Instead, organize it logically, by subtopics.  Address the
-questions that a user will ask when thinking about the job that the
-program does.
+give examples of their use.  But don't organize the manual as a list
+of features.  Instead, organize it logically, by subtopics.  Address
+the questions that a user will ask when thinking about the job that
+the program does.  Don't just tell the reader what each feature can
+do---say what jobs it is good for, and show how to use it for those
+jobs.  Explain what is recommended usage, and what kinds of usage
+users should avoid.
 
 In general, a GNU manual should serve both as tutorial and reference.
 It should be set up for convenient access to each topic through Info,
@@ -3030,9 +3087,9 @@ functions, variables, options, and impor
 the program.  One combined Index should do for a short manual, but
 sometimes for a complex package it is better to use multiple indices.
 The Texinfo manual includes advice on preparing good index entries, see
- at ref{Index Entries, , Making Index Entries, texinfo, The GNU Texinfo
-Manual}, and see @ref{Indexing Commands, , Defining the Entries of an
-Index, texinfo, The GNU Texinfo manual}.
+ at ref{Index Entries, , Making Index Entries, texinfo, GNU Texinfo}, and
+see @ref{Indexing Commands, , Defining the Entries of an
+Index, texinfo, GNU Texinfo}.
 
 Don't use Unix man pages as a model for how to write GNU documentation;
 most of them are terse, badly structured, and give inadequate
@@ -3041,15 +3098,15 @@ exceptions.)  Also, Unix man pages use a
 different from what we use in GNU manuals.
 
 Please include an email address in the manual for where to report
-bugs @emph{in the manual}.
+bugs @emph{in the text of the manual}.
 
 Please do not use the term ``pathname'' that is used in Unix
 documentation; use ``file name'' (two words) instead.  We use the term
 ``path'' only for search paths, which are lists of directory names.
 
-Please do not use the term ``illegal'' to refer to erroneous input to a
-computer program.  Please use ``invalid'' for this, and reserve the term
-``illegal'' for activities punishable by law.
+Please do not use the term ``illegal'' to refer to erroneous input to
+a computer program.  Please use ``invalid'' for this, and reserve the
+term ``illegal'' for activities prohibited by law.
 
 @node Doc Strings and Manuals
 @section Doc Strings and Manuals
@@ -3092,7 +3149,7 @@ Each program documented in the manual sh
 @samp{@var{program} Invocation} or @samp{Invoking @var{program}}.  This
 node (together with its subnodes, if any) should describe the program's
 command line arguments and how to run it (the sort of information people
-would look in a man page for).  Start with an @samp{@@example}
+would look for in a man page).  Start with an @samp{@@example}
 containing a template for all the options and arguments that the program
 uses.
 
@@ -3210,6 +3267,11 @@ code.  For example, ``New function'' is 
 you add a function, because there should be a comment before the
 function definition to explain what it does.
 
+In the past, we recommended not mentioning changes in non-software
+files (manuals, help files, etc.) in change logs.  However, we've been
+advised that it is a good idea to include them, for the sake of
+copyright records.
+
 However, sometimes it is useful to write one line to describe the
 overall purpose of a batch of changes.
 
@@ -3224,9 +3286,9 @@ Then describe the changes you made to th
 @cindex change logs, style
 
 Here are some simple examples of change log entries, starting with the
-header line that says who made the change and when, followed by
-descriptions of specific changes.  (These examples are drawn from Emacs
-and GCC.)
+header line that says who made the change and when it was installed,
+followed by descriptions of specific changes.  (These examples are
+drawn from Emacs and GCC.)
 
 @example
 1998-08-17  Richard Stallman  <rms@@gnu.org>
@@ -3270,6 +3332,27 @@ Break long lists of function names by cl
 (Fexecute_extended_command): Deal with `keymap' property.
 @end example
 
+When you install someone else's changes, put the contributor's name in
+the change log entry rather than in the text of the entry.  In other
+words, write this:
+
+ at example
+2002-07-14  John Doe  <jdoe@@gnu.org>
+
+        * sewing.c: Make it sew.
+ at end example
+
+ at noindent
+rather than this:
+
+ at example
+2002-07-14  Usual Maintainer  <usual@@gnu.org>
+
+        * sewing.c: Make it sew.  Patch by jdoe@@gnu.org.
+ at end example
+
+As for the date, that should be the date you applied the change.
+
 @node Simple Changes
 @subsection Simple Changes
 
@@ -3291,12 +3374,17 @@ When you change just comments or doc str
 entry for the file, without mentioning the functions.  Just ``Doc
 fixes'' is enough for the change log.
 
-There's no need to make change log entries for documentation files.
-This is because documentation is not susceptible to bugs that are hard
-to fix.  Documentation does not consist of parts that must interact in a
-precisely engineered fashion.  To correct an error, you need not know
-the history of the erroneous passage; it is enough to compare what the
-documentation says with the way the program actually works.
+There's no technical need to make change log entries for documentation
+files.  This is because documentation is not susceptible to bugs that
+are hard to fix.  Documentation does not consist of parts that must
+interact in a precisely engineered fashion.  To correct an error, you
+need not know the history of the erroneous passage; it is enough to
+compare what the documentation says with the way the program actually
+works.
+
+However, you should keep change logs for documentation files when the
+project gets copyright assignments from its contributors, so as to
+make the records of authorship more accurate.
 
 @node Conditional Changes
 @subsection Conditional Changes
@@ -3387,6 +3475,25 @@ page explaining that you don't maintain 
 is more authoritative.  The note should say how to access the Texinfo
 documentation.
 
+Be sure that man pages include a copyright statement and free
+license.  The simple all-permissive license is appropriate for simple
+man pages:
+
+ at example
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+ at end example
+
+For long man pages, with enough explanation and documentation that
+they can be considered true manuals, use the GFDL (@pxref{License for
+Manuals}).
+
+Finally, the GNU help2man program
+(@uref{http://www.gnu.org/software/help2man/}) is one way to automate
+generation of a man page, in this case from @option{--help} output.
+This is sufficient in many cases.
+
 @node Reading other Manuals
 @section Reading other Manuals
 
@@ -3486,19 +3593,26 @@ this:
 @var{cpu}- at var{company}- at var{system}
 @end example
 
-For example, a Sun 3 might be @samp{m68k-sun-sunos4.1}.
+For example, an Athlon-based GNU/Linux system might be
+ at samp{i686-pc-linux-gnu}.
 
 The @code{configure} script needs to be able to decode all plausible
-alternatives for how to describe a machine.  Thus, @samp{sun3-sunos4.1}
-would be a valid alias.  For many programs, @samp{vax-dec-ultrix} would
-be an alias for @samp{vax-dec-bsd}, simply because the differences
-between Ultrix and @sc{bsd} are rarely noticeable, but a few programs
-might need to distinguish them.
- at c Real 4.4BSD now runs on some Suns.
-
-There is a shell script called @file{config.sub} that you can use
+alternatives for how to describe a machine.  Thus,
+ at samp{athlon-pc-gnu/linux} would be a valid alias.
+There is a shell script called
+ at uref{ftp://ftp.gnu.org/gnu/config/config.sub, @file{config.sub}}
+that you can use
 as a subroutine to validate system types and canonicalize aliases.
 
+The @code{configure} script should also take the option
+ at option{--build=@var{buildtype}}, which should be equivalent to a
+plain @var{buildtype} argument.  For example, @samp{configure
+--build=i686-pc-linux-gnu} is equivalent to @samp{configure
+i686-pc-linux-gnu}.  When the build type is not specified by an option
+or argument, the @code{configure} script should normally guess it
+using the shell script
+ at uref{ftp://ftp.gnu.org/gnu/config/config.guess, @file{config.guess}}.
+
 @cindex optional features, configure-time
 Other options are permitted to specify in more detail the software
 or hardware present on the machine, and include or exclude optional
@@ -3558,6 +3672,11 @@ The @code{configure} script should norma
 system as both the host and the target, thus producing a program which
 works for the same type of machine that it runs on.
 
+To compile a program to run on a host type that differs from the build
+type, use the configure option @option{--host=@var{hosttype}}, where
+ at var{hosttype} uses the same syntax as @var{buildtype}.  The host type
+normally defaults to the build type.
+
 To configure a cross-compiler, cross-assembler, or what have you, you
 should specify a target different from the host, using the configure
 option @samp{--target=@var{targettype}}.  The syntax for
@@ -3565,22 +3684,14 @@ option @samp{--target=@var{targettype}}.
 look like this:
 
 @example
-./configure @var{hosttype} --target=@var{targettype}
+./configure --host=@var{hosttype} --target=@var{targettype}
 @end example
 
+The target type normally defaults to the host type.
 Programs for which cross-operation is not meaningful need not accept the
 @samp{--target} option, because configuring an entire operating system for
 cross-operation is not a meaningful operation.
 
-Bootstrapping a cross-compiler requires compiling it on a machine other
-than the host it will run on.  Compilation packages accept a
-configuration option @samp{--build=@var{buildtype}} for specifying the
-configuration on which you will compile them, but the configure script
-should normally guess the build machine type (using
- at file{config.guess}), so this option is probably not necessary.  The
-host and target types normally default from the build type, so in
-bootstrapping a cross-compiler you must specify them both explicitly.
-
 Some programs have ways of configuring themselves automatically.  If
 your program is set up to do this, your @code{configure} script can simply
 ignore most of its arguments.
@@ -3596,6 +3707,10 @@ ignore most of its arguments.
 @section Making Releases
 @cindex packaging
 
+You should identify each release with a pair of version numbers, a
+major version and a minor.  We have no objection to using more than
+two numbers, but it is very unlikely that you really need them.
+
 Package the distribution of @code{Foo version 69.96} up in a gzipped tar
 file with the name @file{foo-69.96.tar.gz}.  It should unpack into a
 subdirectory named @file{foo-69.96}.
@@ -3644,13 +3759,6 @@ able to extract all the files even if th
 
 Make sure that all the files in the distribution are world-readable.
 
-Make sure that no file name in the distribution is more than 14
-characters long.  Likewise, no file created by building the program
-should have a name longer than 14 characters.  The reason for this is
-that some systems adhere to a foolish interpretation of the @sc{posix}
-standard, and refuse to open a longer name, rather than truncating as
-they did in the past.
-
 Don't include any symbolic links in the distribution itself.  If the tar
 file contains symbolic links, then people cannot even unpack it on
 systems that don't support symbolic links.  Also, don't use multiple
@@ -3682,16 +3790,27 @@ other files to get.
 
 A GNU program should not recommend use of any non-free program.  We
 can't stop some people from writing proprietary programs, or stop
-other people from using them, but we can and should avoid helping to
+other people from using them, but we can and should refuse to
 advertise them to new potential customers.  Proprietary software is a
 social and ethical problem, and the point of GNU is to solve that
 problem.
 
+The GNU definition of free software is found on the GNU web site at
+ at url{http://www.gnu.org/philosophy/free-sw.html}.  A list of
+important licenses and whether they qualify as free is in
+ at url{http://www.gnu.org/licenses/license-list.html}.  The terms
+``free'' and ``non-free'', used in this document, refer to that
+definition.  If it is not clear whether a license qualifies as free
+under this definition, please ask the GNU Project by writing to
+ at email{licensing@@gnu.org}.  We will answer, and if the license is an
+important one, we will add it to the list.
+
 When a non-free program or system is well known, you can mention it in
 passing---that is harmless, since users who might want to use it
 probably already know about it.  For instance, it is fine to explain
-how to build your package on top of some non-free operating system, or
-how to use it together with some widely used non-free program.
+how to build your package on top of some widely used non-free
+operating system, or how to use it together with some widely used
+non-free program.
 
 However, you should give only the necessary information to help those
 who already use the non-free program to use your program with
@@ -3700,8 +3819,8 @@ proprietary program, and don't imply tha
 enhances your program, or that its existence is in any way a good
 thing.  The goal should be that people already using the proprietary
 program will get the advice they need about how to use your free
-program, while people who don't already use the proprietary program
-will not see anything to lead them to take an interest in it.
+program with it, while people who don't already use the proprietary
+program will not see anything to lead them to take an interest in it.
 
 If a non-free program or system is obscure in your program's domain,
 your program should not mention or support it at all, since doing so
@@ -3709,13 +3828,46 @@ would tend to popularize the non-free pr
 your program.  (You cannot hope to find many additional users among
 the users of Foobar if the users of Foobar are few.)
 
+Sometimes a program is free software in itself but depends on a
+non-free platform in order to run.  For instance, many Java programs
+depend on Sun's Java implementation, and won't run on the GNU Java
+Compiler (which does not yet have all the features) or won't run with
+the GNU Java libraries.  To recommend that program is inherently to
+recommend the non-free platform as well; if you should not do the
+latter, then don't do the former.
+
 A GNU package should not refer the user to any non-free documentation
 for free software.  Free documentation that can be included in free
-operating systems is essential for completing the GNU system, so it is
-a major focus of the GNU Project; to recommend use of documentation
-that we are not allowed to use in GNU would undermine the efforts to
-get documentation that we can include.  So GNU packages should never
-recommend non-free documentation.
+operating systems is essential for completing the GNU system, or any
+free operating system, so it is a major focus of the GNU Project; to
+recommend use of documentation that we are not allowed to use in GNU
+would weaken the impetus for the community to produce documentation
+that we can include.  So GNU packages should never recommend non-free
+documentation.
+
+By contrast, it is ok to refer to journal articles and textbooks in
+the comments of a program for explanation of how it functions, even
+though they be non-free.  This is because we don't include such things
+in the GNU system even if we are allowed to--they are outside the
+scope of an operating system project.
+
+Referring to a web site that describes or recommends a non-free
+program is in effect promoting that software, so please do not make
+links (or mention by name) web sites that contain such material.  This
+policy is relevant particularly for the web pages for a GNU package.
+
+Following links from nearly any web site can lead to non-free
+software; this is an inescapable aspect of the nature of the web, and
+in itself is no objection to linking to a site.  As long as the site
+does not itself recommend a non-free program, there is no need be
+concerned about the sites it links to for other reasons.
+
+Thus, for example, you should not make a link to AT&T's web site,
+because that recommends AT&T's non-free software packages; you should
+not make a link to a site that links to AT&T's site saying it is a
+place to get a non-free program; but if a site you want to link to
+refers to AT&T's web site in some other context (such as long-distance
+telephone service), that is not a problem.
 
 @node Copying This Manual
 @appendix Copying This Manual
@@ -3730,13 +3882,12 @@ recommend non-free documentation.
 @unnumbered Index
 @printindex cp
 
- at contents
-
 @bye
- at c Local variables:
- at c eval: (add-hook 'write-file-hooks 'time-stamp)
- at c time-stamp-start: "@set lastupdate "
- at c time-stamp-end: "$"
- at c time-stamp-format: "%:b %:d, %:y"
- at c compile-command: "make just-standards"
- at c End:
+
+Local variables:
+eval: (add-hook 'write-file-hooks 'time-stamp)
+time-stamp-start: "@set lastupdate "
+time-stamp-end: "$"
+time-stamp-format: "%:b %:d, %:y"
+compile-command: "make just-standards"
+End:


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/binutils/FC-6/.cvsignore,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- .cvsignore	17 Jul 2006 09:30:08 -0000	1.27
+++ .cvsignore	21 Dec 2006 15:10:35 -0000	1.28
@@ -1 +1 @@
-binutils-2.17.50.0.3.tar.bz2
+binutils-2.17.50.0.6.tar.bz2


Index: binutils.spec
===================================================================
RCS file: /cvs/dist/rpms/binutils/FC-6/binutils.spec,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -r1.103 -r1.104
--- binutils.spec	12 Sep 2006 12:34:17 -0000	1.103
+++ binutils.spec	21 Dec 2006 15:10:35 -0000	1.104
@@ -1,23 +1,23 @@
 Summary: A GNU collection of binary utilities.
 Name: binutils
-Version: 2.17.50.0.3
-Release: 6
+Version: 2.17.50.0.6
+Release: 2%{?dist}
 License: GPL
 Group: Development/Tools
 URL: http://sources.redhat.com/binutils
 Source: ftp://ftp.kernel.org/pub/linux/devel/binutils/binutils-%{version}.tar.bz2
-Patch1: binutils-2.17.50.0.3-ltconfig-multilib.patch
-Patch2: binutils-2.17.50.0.3-ppc64-pie.patch
-Patch3: binutils-2.17.50.0.3-place-orphan.patch
-Patch4: binutils-2.17.50.0.3-ia64-lib64.patch
-Patch5: binutils-2.17.50.0.3-elfvsb-test.patch
-Patch6: binutils-2.17.50.0.3-standards.patch
-Patch7: binutils-2.17.50.0.3-build-fixes.patch
-Patch8: binutils-2.17.50.0.3-kept-section.patch
-Patch9: binutils-2.17.50.0.3-power6-insns.patch
-Patch10: binutils-2.17.50.0.3-opcodes-intl.patch
-Patch11: binutils-2.17.50.0.3-x86-noautoarch-rh200330.patch
-Patch12: binutils-2.17.50.0.3-bz3171.patch
+Patch1: binutils-2.17.50.0.6-ltconfig-multilib.patch
+Patch2: binutils-2.17.50.0.6-ppc64-pie.patch
+Patch3: binutils-2.17.50.0.6-place-orphan.patch
+Patch4: binutils-2.17.50.0.6-ia64-lib64.patch
+Patch5: binutils-2.17.50.0.6-elfvsb-test.patch
+Patch6: binutils-2.17.50.0.6-standards.patch
+Patch7: binutils-2.17.50.0.6-build-fixes.patch
+Patch8: binutils-2.17.50.0.6-kept-section.patch
+Patch9: binutils-2.17.50.0.6-power6-insns.patch
+Patch10: binutils-2.17.50.0.6-fixsyms.patch
+Patch11: binutils-2.17.50.0.6-gas-debug-ranges-revert.patch
+Patch12: binutils-2.17.50.0.6-popcnt.patch
 
 Buildroot: %{_tmppath}/binutils-root
 BuildRequires: texinfo >= 4.0, dejagnu, gettext, flex, bison
@@ -68,9 +68,9 @@
 %patch7 -p0 -b .build-fixes~
 %patch8 -p0 -b .kept-section~
 %patch9 -p0 -b .power6-insns~
-%patch10 -p0 -b .opcodes-intl~
-%patch11 -p0 -b .x86-noautoarch~
-%patch12 -p0 -b .bz3171~
+%patch10 -p0 -b .fixsyms~
+%patch11 -p0 -R -b .gas-debug-ranges-revert~
+%patch12 -p0 -b .popcnt~
 
 # On ppc64 we might use 64K pages
 sed -i -e '/#define.*ELF_COMMONPAGESIZE/s/0x1000$/0x10000/' bfd/elf*ppc.c
@@ -213,6 +213,17 @@
 %{_infodir}/bfd*info*
 
 %changelog
+* Thu Dec 21 2006 Jakub Jelinek <jakub at redhat.com> 2.17.50.0.6-2.fc6
+- update to 2.17.50.0.6
+  - fix for section relative linker script defined symbols in
+    empty sections (#212032, BZ#3267)
+  - fix handling of DW_CFA_set_loc in .eh_frame optimizations
+  - fix R_PPC_{PLT,GOT{,_TLSGD,_TLSLD,_TPREL,_DTPREL}}16_HA relocation
+    handling with weak undefined symbols (Alan Modra, #211094)
+  - fix --cref (#212099)
+  - fix --emit-relocs on ppc64 (#211991)
+- fix popcnt instruction assembly and disassembly on amd64 (#214767)
+
 * Tue Sep 12 2006 Jakub Jelinek <jakub at redhat.com> 2.17.50.0.3-6
 - fix multilib conflict in %{_prefix}/include/bfd.h
 


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/binutils/FC-6/sources,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- sources	17 Jul 2006 09:30:09 -0000	1.28
+++ sources	21 Dec 2006 15:10:35 -0000	1.29
@@ -1 +1 @@
-684c535df0ff8ffaa11fe4aed14539e7  binutils-2.17.50.0.3.tar.bz2
+7e82f67aed569b1489f1ba79988f0e64  binutils-2.17.50.0.6.tar.bz2


--- binutils-2.17.50.0.3-build-fixes.patch DELETED ---


--- binutils-2.17.50.0.3-bz3171.patch DELETED ---


--- binutils-2.17.50.0.3-elfvsb-test.patch DELETED ---


--- binutils-2.17.50.0.3-ia64-lib64.patch DELETED ---


--- binutils-2.17.50.0.3-kept-section.patch DELETED ---


--- binutils-2.17.50.0.3-ltconfig-multilib.patch DELETED ---


--- binutils-2.17.50.0.3-opcodes-intl.patch DELETED ---


--- binutils-2.17.50.0.3-place-orphan.patch DELETED ---


--- binutils-2.17.50.0.3-power6-insns.patch DELETED ---


--- binutils-2.17.50.0.3-ppc64-pie.patch DELETED ---


--- binutils-2.17.50.0.3-standards.patch DELETED ---


--- binutils-2.17.50.0.3-x86-noautoarch-rh200330.patch DELETED ---




More information about the fedora-cvs-commits mailing list