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: 29-May-2006 15:10:24 Branch: HEAD Handle: 2006052914102201 Modified files: openpkg-src/binutils binutils.patch binutils.spec Log: Fix GNU binutils support for Solaris 10/amd64: - recognize and ignore Solaris 10's "Solaris Cryptographic Framework" ELF header type "SUNW_signature" - recognize and ignore Solaris 10's "Symbol information" ELF header type "SUNW_syminfo" - recognize and ignore Solaris 10's "DTrace Object Format" ELF header type. - Fix the path to the dynamic linker under Solaris 10/amd64. - Enable 64-bit support in GNU binutils libbfd. Sponsored by: SpaceNet AG <http://www.space.net/> Summary: Revision Changes Path 1.17 +50 -3 openpkg-src/binutils/binutils.patch 1.69 +9 -4 openpkg-src/binutils/binutils.spec ____________________________________________________________________________ patch -p0 <<'@@ .' Index: openpkg-src/binutils/binutils.patch ============================================================================ $ cvs diff -u -r1.16 -r1.17 binutils.patch --- openpkg-src/binutils/binutils.patch 26 May 2006 19:09:30 -0000 1.16 +++ openpkg-src/binutils/binutils.patch 29 May 2006 13:10:22 -0000 1.17 @@ -1,10 +1,41 @@ Use the platform specific ELF branding expected under FreeBSD. This is similar to what the vendor ld(1) does on this platform. +Additionally, recognize and ignore Solaris 10's "Solaris Cryptographic +Framework" ELF header type "SUNW_signature", Solaris 10 "Symbol +information" ELF header type "SUNW_syminfo" and Solaris 10 "DTrace +Object Format" ELF header type. Also, fix the path to the dynamic +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 @@ + #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 */ ++#define SHT_SUNW_syminfo 0x6ffffffc /* Symbol information */ ++#define SHT_SUNW_signature 0x6ffffff6 /* Solaris Cryptographic Framework: Digital Signature */ ++#define SHT_SUNW_dof 0x6ffffff4 /* Solaris DTrace Object Format */ + + #define SHT_GNU_verdef SHT_SUNW_verdef + #define SHT_GNU_verneed SHT_SUNW_verneed Index: bfd/elf.c ---- bfd/elf.c.orig 2005-03-06 03:02:15 +0100 -+++ bfd/elf.c 2005-05-03 19:48:25 +0200 -@@ -4621,6 +4621,12 @@ +--- 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); + break; + ++ case SHT_SUNW_syminfo: ++ case SHT_SUNW_signature: ++ case SHT_SUNW_dof: ++ return TRUE; ++ + case SHT_SHLIB: + return TRUE; + +@@ -4627,6 +4632,12 @@ else i_ehdrp->e_type = ET_REL; @@ -17,6 +48,22 @@ switch (bfd_get_arch (abfd)) { 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 @@ + /* The name of the dynamic interpreter. This is put in the .interp + section. */ + ++#if defined(OPENPKG_OS_SOLARIS) ++#define ELF_DYNAMIC_INTERPRETER "/lib/amd64/ld.so.1" ++#else + #define ELF_DYNAMIC_INTERPRETER "/lib/ld64.so.1" ++#endif + + /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid + copying dynamic variables from a shared lib into an app's dynbss + ----------------------------------------------------------------------------- @@ . patch -p0 <<'@@ .' Index: openpkg-src/binutils/binutils.spec ============================================================================ $ cvs diff -u -r1.68 -r1.69 binutils.spec --- openpkg-src/binutils/binutils.spec 26 May 2006 19:09:30 -0000 1.68 +++ openpkg-src/binutils/binutils.spec 29 May 2006 13:10:23 -0000 1.69 @@ -33,7 +33,7 @@ Group: Utility License: GPL Version: 2.16.1 -Release: 20060526 +Release: 20060529 # list of sources Source0: ftp://sources.redhat.com/pub/binutils/releases/binutils-%{version}.tar.bz2 @@ -42,8 +42,8 @@ # build information Prefix: %{l_prefix} BuildRoot: %{l_buildroot} -BuildPreReq: OpenPKG, openpkg >= 20050726, make -PreReq: OpenPKG, openpkg >= 20050726 +BuildPreReq: OpenPKG, openpkg >= 20060419, make +PreReq: OpenPKG, openpkg >= 20060419 AutoReq: no AutoReqProv: no @@ -75,11 +75,15 @@ # configure package CC="%{l_cc}"; export CC CFLAGS="%{l_cflags}"; export CFLAGS + ARGS="" case "%{l_platform -t}" in *-freebsd* ) CFLAGS="$CFLAGS -DOPENPKG_OS_FREEBSD" ;; *-linux* ) CFLAGS="$CFLAGS -DOPENPKG_OS_LINUX" ;; *-sunos* ) CFLAGS="$CFLAGS -DOPENPKG_OS_SOLARIS" ;; esac + case "%{l_platform -t}" in + amd64-sunos* ) ARGS="$ARGS --enable-64-bit-bdf" ;; + esac ( echo "#!/bin/sh" echo "touch lex.yy.c" echo "echo 'lex.sh:WARNING: local Lex wrapper unexpectedly called.' 1>&2" @@ -93,7 +97,8 @@ --prefix=%{l_prefix} \ --includedir=%{l_prefix}/include/binutils \ --libdir=%{l_prefix}/lib/binutils \ - --disable-nls + --disable-nls \ + $ARGS # build package %{l_make} %{l_mflags} @@ . ______________________________________________________________________ The OpenPKG Project www.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org