OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 24-Jun-2006 22:04:49
Branch: HEAD Handle: 2006062421044900
Modified files:
openpkg-src/binutils binutils.patch binutils.spec
Log:
upgrading package: binutils 2.16.1 -> 2.17
Summary:
Revision Changes Path
1.18 +33 -279 openpkg-src/binutils/binutils.patch
1.70 +2 -2 openpkg-src/binutils/binutils.spec
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/binutils/binutils.patch
============================================================================
$ cvs diff -u -r1.17 -r1.18 binutils.patch
--- openpkg-src/binutils/binutils.patch 29 May 2006 13:10:22 -0000
1.17
+++ openpkg-src/binutils/binutils.patch 24 Jun 2006 20:04:49 -0000
1.18
@@ -8,9 +8,9 @@
linker under Solaris 10/amd64.
Index: include/elf/common.h
---- include/elf/common.h.orig 2004-10-08 15:55:08 +0200
-+++ include/elf/common.h 2006-04-10 13:58:15 +0200
-@@ -335,6 +335,9 @@
+--- include/elf/common.h.orig 2006-02-17 15:36:26 +0100
++++ include/elf/common.h 2006-06-24 21:50:39 +0200
+@@ -346,6 +346,9 @@
#define SHT_SUNW_verdef 0x6ffffffd /* Versions defined by file */
#define SHT_SUNW_verneed 0x6ffffffe /* Versions needed by file */
#define SHT_SUNW_versym 0x6fffffff /* Symbol versions */
@@ -21,10 +21,10 @@
#define SHT_GNU_verdef SHT_SUNW_verdef
#define SHT_GNU_verneed SHT_SUNW_verneed
Index: bfd/elf.c
---- bfd/elf.c.orig 2005-05-30 00:00:10 +0200
-+++ bfd/elf.c 2006-04-10 13:58:42 +0200
-@@ -2009,6 +2009,11 @@
- return _bfd_elf_make_section_from_shdr (abfd, hdr, name);
+--- bfd/elf.c.orig 2006-03-16 13:20:15 +0100
++++ bfd/elf.c 2006-06-24 21:50:39 +0200
+@@ -2121,6 +2121,11 @@
+ return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
break;
+ case SHT_SUNW_syminfo:
@@ -35,7 +35,7 @@
case SHT_SHLIB:
return TRUE;
-@@ -4627,6 +4632,12 @@
+@@ -4862,6 +4867,12 @@
else
i_ehdrp->e_type = ET_REL;
@@ -49,9 +49,9 @@
{
case bfd_arch_unknown:
Index: bfd/elf64-x86-64.c
---- bfd/elf64-x86-64.c.orig 2005-02-06 19:11:30 +0100
-+++ bfd/elf64-x86-64.c 2006-04-10 15:34:03 +0200
-@@ -259,7 +259,11 @@
+--- bfd/elf64-x86-64.c.orig 2006-03-23 09:23:09 +0100
++++ bfd/elf64-x86-64.c 2006-06-24 21:50:39 +0200
+@@ -327,7 +327,11 @@
/* The name of the dynamic interpreter. This is put in the .interp
section. */
@@ -70,9 +70,9 @@
Support FreeBSD >= 4.10 by fixing platform detection.
Index: bfd/configure
---- bfd/configure.orig 2005-05-02 21:43:54 +0200
-+++ bfd/configure 2005-05-03 19:49:53 +0200
-@@ -9956,6 +9956,10 @@
+--- bfd/configure.orig 2006-06-23 20:17:03 +0200
++++ bfd/configure 2006-06-24 21:50:39 +0200
+@@ -11495,6 +11495,10 @@
i[3-7]86-*-bsdi)
COREFILE=
;;
@@ -89,23 +89,23 @@
Fight problems with --disable-nls under Solaris
Index: binutils/bucomm.h
---- binutils/bucomm.h.orig 2005-08-16 21:35:21.000000000 +0200
-+++ binutils/bucomm.h 2005-09-13 16:55:29.276456000 +0200
-@@ -125,6 +125,11 @@
- # endif /* HAVE_ALLOCA_H */
+--- binutils/bucomm.h.orig 2006-02-09 12:49:53 +0100
++++ binutils/bucomm.h 2006-06-24 21:50:39 +0200
+@@ -138,6 +138,11 @@
#endif
+
+#ifndef ENABLE_NLS
+# define _LIBINTL_H
+# define _LIBGETTEXT_H
+#endif
+
#ifdef HAVE_LOCALE_H
- # include <locale.h>
- #endif
+ # ifndef ENABLE_NLS
+ /* The Solaris version of locale.h always includes libintl.h. If we have
Index: gas/asintl.h
---- gas/asintl.h.orig 2005-05-05 11:12:43.000000000 +0200
-+++ gas/asintl.h 2005-09-13 16:58:29.082469000 +0200
+--- gas/asintl.h.orig 2005-09-30 13:42:01 +0200
++++ gas/asintl.h 2006-06-24 21:50:39 +0200
@@ -20,6 +20,11 @@
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
@@ -116,25 +116,11 @@
+#endif
+
#ifdef HAVE_LOCALE_H
- # include <locale.h>
- #endif
-Index: gprof/gprof.c
---- gprof/gprof.c.orig 2005-04-23 19:13:31.000000000 +0200
-+++ gprof/gprof.c 2005-09-13 17:13:52.242443000 +0200
-@@ -189,8 +189,10 @@
- #if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
- #endif
-+#ifdef ENABLE_NLS
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-+#endif
-
- whoami = argv[0];
- xmalloc_set_program_name (whoami);
+ # ifndef ENABLE_NLS
+ /* The Solaris version of locale.h always includes libintl.h. If we have
Index: ld/ld.h
---- ld/ld.h.orig 2005-06-09 04:05:46.000000000 +0200
-+++ ld/ld.h 2005-09-13 17:24:03.767249000 +0200
+--- ld/ld.h.orig 2005-09-30 13:42:04 +0200
++++ ld/ld.h 2006-06-24 21:50:39 +0200
@@ -23,6 +23,11 @@
#ifndef LD_H
#define LD_H
@@ -145,250 +131,18 @@
+#endif
+
#ifdef HAVE_LOCALE_H
- # include <locale.h>
#endif
+ #ifndef SEEK_CUR
Index: ld/Makefile.in
---- ld/Makefile.in.orig 2005-01-23 06:36:37 +0100
-+++ ld/Makefile.in 2005-09-21 21:06:55 +0200
-@@ -139,7 +139,7 @@
+--- ld/Makefile.in.orig 2006-06-03 06:45:50 +0200
++++ ld/Makefile.in 2006-06-24 21:53:56 +0200
+@@ -269,7 +269,7 @@
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
-scriptdir = $(tooldir)/lib
+scriptdir = $(libdir)
-
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
-
------------------------------------------------------------------------------
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
-Security Issue (PR binutils/2584, CVE-2006-2362)
-
-Index: bfd/tekhex.c
---- bfd/tekhex.c.orig 2004-10-08 16:54:02 +0200
-+++ bfd/tekhex.c 2006-05-26 20:21:02 +0200
-@@ -99,7 +99,7 @@
- #define ISHEX(x) hex_p(x)
-
- static void tekhex_init PARAMS ((void));
--static bfd_vma getvalue PARAMS ((char **));
-+static bfd_boolean getvalue PARAMS ((char **, bfd_vma *));
- static void tekhex_print_symbol
- PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
- static void tekhex_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info
*));
-@@ -121,11 +121,11 @@
- static bfd_boolean tekhex_mkobject PARAMS ((bfd *));
- static long tekhex_get_symtab_upper_bound PARAMS ((bfd *));
- static long tekhex_canonicalize_symtab PARAMS ((bfd *, asymbol **));
--static void pass_over PARAMS ((bfd *, void (*) (bfd*, int, char *)));
--static void first_phase PARAMS ((bfd *, int, char *));
-+static bfd_boolean pass_over PARAMS ((bfd *, bfd_boolean (*) (bfd*, int,
char *)));
-+static bfd_boolean first_phase PARAMS ((bfd *, int, char *));
- static void insert_byte PARAMS ((bfd *, int, bfd_vma));
- static struct data_struct *find_chunk PARAMS ((bfd *, bfd_vma));
--static unsigned int getsym PARAMS ((char *, char **));
-+static bfd_boolean getsym PARAMS ((char *, char **, unsigned int *));
-
- /*
- Here's an example
-@@ -304,40 +304,53 @@
-
- #define enda(x) (x->vma + x->size)
-
--static bfd_vma
--getvalue (srcp)
-+static bfd_boolean
-+getvalue (srcp, valuep)
- char **srcp;
-+ bfd_vma *valuep;
- {
- char *src = *srcp;
- bfd_vma value = 0;
-- unsigned int len = hex_value(*src++);
-+ unsigned int len;
-+
-+ if (!ISHEX(*src))
-+ return FALSE;
-
-+ len = hex_value(*src++);
- if (len == 0)
- len = 16;
- while (len--)
- {
-+ if (!ISHEX(*src))
-+ return FALSE;
- value = value << 4 | hex_value(*src++);
- }
- *srcp = src;
-- return value;
-+ *valuep = value;
-+ return TRUE;
- }
-
--static unsigned int
--getsym (dstp, srcp)
-+static bfd_boolean
-+getsym (dstp, srcp, lenp)
- char *dstp;
- char **srcp;
-+ unsigned int *lenp;
- {
- char *src = *srcp;
- unsigned int i;
-- unsigned int len = hex_value(*src++);
-+ unsigned int len;
-
-+ if (!ISHEX(*src))
-+ return FALSE;
-+ len = hex_value(*src++);
- if (len == 0)
- len = 16;
- for (i = 0; i < len; i++)
- dstp[i] = src[i];
- dstp[i] = 0;
- *srcp = src + i;
-- return len;
-+ *lenp = len;
-+ return TRUE;
- }
-
- static struct data_struct *
-@@ -383,7 +396,7 @@
-
- /* The first pass is to find the names of all the sections, and see
- how big the data is */
--static void
-+static bfd_boolean
- first_phase (abfd, type, src)
- bfd *abfd;
- int type;
-@@ -391,6 +404,7 @@
- {
- asection *section = bfd_abs_section_ptr;
- unsigned int len;
-+ bfd_vma val;
- char sym[17]; /* A symbol can only be 16chars long */
-
- switch (type)
-@@ -398,7 +412,10 @@
- case '6':
- /* Data record - read it and store it */
- {
-- bfd_vma addr = getvalue (&src);
-+ bfd_vma addr;
-+
-+ if (!getvalue (&src, &addr))
-+ return FALSE;
-
- while (*src)
- {
-@@ -408,17 +425,18 @@
- }
- }
-
-- return;
-+ return TRUE;
- case '3':
- /* Symbol record, read the segment */
-- len = getsym (sym, &src);
-+ if (!getsym (sym, &src, &len))
-+ return FALSE;
- section = bfd_get_section_by_name (abfd, sym);
- if (section == (asection *) NULL)
- {
- char *n = bfd_alloc (abfd, (bfd_size_type) len + 1);
-
- if (!n)
-- abort (); /* FIXME */
-+ return FALSE;
- memcpy (n, sym, len + 1);
- section = bfd_make_section (abfd, n);
- }
-@@ -428,8 +446,11 @@
- {
- case '1': /* section range */
- src++;
-- section->vma = getvalue (&src);
-- section->size = getvalue (&src) - section->vma;
-+ if (!getvalue (&src, §ion->vma))
-+ return FALSE;
-+ if (!getvalue (&src, &val))
-+ return FALSE;
-+ section->size = val - section->vma;
- section->flags = SEC_HAS_CONTENTS | SEC_LOAD | SEC_ALLOC;
- break;
- case '0':
-@@ -447,37 +468,43 @@
- char stype = (*src);
-
- if (!new)
-- abort (); /* FIXME */
-+ return FALSE;
- new->symbol.the_bfd = abfd;
- src++;
- abfd->symcount++;
- abfd->flags |= HAS_SYMS;
- new->prev = abfd->tdata.tekhex_data->symbols;
- abfd->tdata.tekhex_data->symbols = new;
-- len = getsym (sym, &src);
-+ if (!getsym (sym, &src, &len))
-+ return FALSE;
- new->symbol.name = bfd_alloc (abfd, (bfd_size_type) len + 1);
- if (!new->symbol.name)
-- abort (); /* FIXME */
-+ return FALSE;
- memcpy ((char *) (new->symbol.name), sym, len + 1);
- new->symbol.section = section;
- if (stype <= '4')
- new->symbol.flags = (BSF_GLOBAL | BSF_EXPORT);
- else
- new->symbol.flags = BSF_LOCAL;
-- new->symbol.value = getvalue (&src) - section->vma;
-+ if (!getvalue (&src, &val))
-+ return FALSE;
-+ new->symbol.value = val - section->vma;
- }
-+ default:
-+ return FALSE;
- }
- }
- }
-+ return TRUE;
- }
-
- /* Pass over a tekhex, calling one of the above functions on each
- record. */
-
--static void
-+static bfd_boolean
- pass_over (abfd, func)
- bfd *abfd;
-- void (*func) PARAMS ((bfd *, int, char *));
-+ bfd_boolean (*func) PARAMS ((bfd *, int, char *));
- {
- unsigned int chars_on_line;
- bfd_boolean eof = FALSE;
-@@ -516,9 +543,10 @@
- abort (); /* FIXME */
- src[chars_on_line] = 0; /* put a null at the end */
-
-- func (abfd, type, src);
-+ if (!func (abfd, type, src))
-+ return FALSE;
- }
--
-+ return TRUE;
- }
-
- static long
-@@ -585,7 +613,9 @@
-
- tekhex_mkobject (abfd);
-
-- pass_over (abfd, first_phase);
-+ if (!pass_over (abfd, first_phase))
-+ return NULL;
-+
- return abfd->xvec;
- }
-
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/binutils/binutils.spec
============================================================================
$ cvs diff -u -r1.69 -r1.70 binutils.spec
--- openpkg-src/binutils/binutils.spec 29 May 2006 13:10:23 -0000
1.69
+++ openpkg-src/binutils/binutils.spec 24 Jun 2006 20:04:49 -0000
1.70
@@ -32,8 +32,8 @@
Class: CORE
Group: Utility
License: GPL
-Version: 2.16.1
-Release: 20060529
+Version: 2.17
+Release: 20060624
# list of sources
Source0:
ftp://sources.redhat.com/pub/binutils/releases/binutils-%{version}.tar.bz2
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [email protected]