[Glibc-bsd-commits] r1636 - trunk/web/patches

Petr Salinger ps-guest at costa.debian.org
Sat Jul 29 16:10:39 UTC 2006


Author: ps-guest
Date: 2006-07-29 16:10:39 +0000 (Sat, 29 Jul 2006)
New Revision: 1636

Added:
   trunk/web/patches/binutils_2.17.diff
Log:
* add binutils_2.17.diff  against 2.17-2
  hopefully with clean variant of "i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_FREEBSD;"



Added: trunk/web/patches/binutils_2.17.diff
===================================================================
--- trunk/web/patches/binutils_2.17.diff	2006-07-29 06:01:31 UTC (rev 1635)
+++ trunk/web/patches/binutils_2.17.diff	2006-07-29 16:10:39 UTC (rev 1636)
@@ -0,0 +1,233 @@
+
+- biarch enabled binutils for kfreebsd-amd64 and kfreebsd-i386
+- properly supported elfosabi for kfreebsd-amd64
+- kfreebsd-amd64 enabled in multiarch 
+- kfreebsd-amd64 and kfreebsd-i386 supported in cross-build
+
+Status: in BTS #380373, may be should go also in upstream
+
+diff -u binutils-2.17/debian/patches/00list binutils-2.17/debian/patches/00list
+--- binutils-2.17/debian/patches/00list
++++ binutils-2.17/debian/patches/00list
+@@ -8,0 +9 @@
++128_kfreebsd-amd64
+diff -u binutils-2.17/debian/rules binutils-2.17/debian/rules
+--- binutils-2.17/debian/rules
++++ binutils-2.17/debian/rules
+@@ -69,6 +69,9 @@
+ ifeq ($(DEB_HOST_ARCH),i386)
+ 	CONFARGS += --enable-targets=x86_64-linux-gnu
+ endif
++ifeq ($(DEB_HOST_ARCH),kfreebsd-i386)
++	CONFARGS += --enable-targets=x86_64-kfreebsd-gnu
++endif
+ ifeq ($(DEB_HOST_ARCH),mips)
+        CONFARGS += --enable-targets=mips64-linux-gnu
+ endif
+@@ -138,7 +141,7 @@
+ 	mkdir builddir-multi
+ 	cd builddir-multi \
+ 	    && env CC="$(CC)" ../configure $(CONFARGS) \
+-		--enable-targets=alpha-linux-gnu,arm-linux-gnu,hppa-linux-gnu,i486-kfreebsd-gnu,i486-linux-gnu,ia64-linux-gnu,m68k-linux-gnu,m68k-rtems,mips-linux-gnu,mipsel-linux-gnu,mips64-linux-gnu,mips64el-linux-gnu,powerpc-linux-gnu,powerpc64-linux-gnu,s390-linux-gnu,s390x-linux-gnu,sh-linux-gnu,sparc-linux-gnu,sparc64-linux-gnu,x86_64-linux,m32r-linux-gnu
++		--enable-targets=alpha-linux-gnu,arm-linux-gnu,hppa-linux-gnu,i486-kfreebsd-gnu,i486-linux-gnu,ia64-linux-gnu,m68k-linux-gnu,m68k-rtems,mips-linux-gnu,mipsel-linux-gnu,mips64-linux-gnu,mips64el-linux-gnu,powerpc-linux-gnu,powerpc64-linux-gnu,s390-linux-gnu,s390x-linux-gnu,sh-linux-gnu,sparc-linux-gnu,sparc64-linux-gnu,x86_64-linux,x86_64-kfreebsd-gnu,m32r-linux-gnu
+ 	$(MAKE) -C builddir-multi configure-host
+ 	touch configure-multi-stamp
+ 
+@@ -474,12 +477,18 @@
+ ifneq ($(filter sparc-linux-gnu powerpc-linux-gnu mips-linux-gnu, $(TARGET)),)
+ ADDITIONAL_TARGETS = --enable-targets=$(TARGET:%-linux-gnu=%64-linux-gnu)
+ endif
+-ifneq ($(filter i386-linux-gnu i486-linux-gnu i586-linux-gnu x86-linux-gnu, $(TARGET)),)
++ifneq ($(filter i386-linux-gnu i486-linux-gnu i586-linux-gnu i686-linux-gnu x86-linux-gnu, $(TARGET)),)
+ ADDITIONAL_TARGETS = --enable-targets=x86_64-linux-gnu
+ endif
++ifneq ($(filter i386-kfreebsd-gnu i486-kfreebsd-gnu i586-kfreebsd-gnu i686-kfreebsd-gnu x86-kfreebsd-gnu, $(TARGET)),)
++ADDITIONAL_TARGETS = --enable-targets=x86_64-kfreebsd-gnu
++endif
+ ifeq ($(TARGET), x86_64-linux-gnu)
+ ADDITIONAL_TARGETS = --enable-targets=i486-linux-gnu
+ endif
++ifeq ($(TARGET), x86_64-kfreebsd-gnu)
++ADDITIONAL_TARGETS = --enable-targets=i486-kfreebsd-gnu
++endif
+ ifeq ($(TARGET), mipsel-linux-gnu)
+ ADDITIONAL_TARGETS = --enable-targets=mips64el-linux-gnu
+ endif
+only in patch2:
+unchanged:
+--- binutils-2.17.orig/debian/patches/128_kfreebsd-amd64.dpatch
++++ binutils-2.17/debian/patches/128_kfreebsd-amd64.dpatch
+@@ -0,0 +1,173 @@
++#!/bin/sh -e
++## 128_kfreebsd-amd64.dpatch
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: Description: properly support kfreebsd-amd64
++## DP: Author: 
++## DP: Upstream status: 
++## DP: Date: 
++
++if [ $# -ne 1 ]; then
++    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
++    exit 1
++fi
++
++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
++patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
++
++case "$1" in
++       -patch) patch $patch_opts -p1 < $0;;
++       -unpatch) patch $patch_opts -p1 -R < $0;;
++        *)
++                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
++                exit 1;;
++esac
++
++exit 0
++
++ at DPATCH@
++diff -urN binutils-2.17/bfd/elf64-x86-64.c binutils-2.17/bfd/elf64-x86-64.c
++--- binutils-2.17/bfd/elf64-x86-64.c	2006-03-23 09:23:09.000000000 +0100
+++++ binutils-2.17/bfd/elf64-x86-64.c	2006-07-29 12:29:37.000000000 +0200
++@@ -3687,3 +3687,36 @@
++   elf64_x86_64_additional_program_headers
++ 
++ #include "elf64-target.h"
+++
+++/* FreeBSD support.  */
+++
+++#undef TARGET_LITTLE_SYM
+++#define TARGET_LITTLE_SYM		    bfd_elf64_x86_64_freebsd_vec
+++#undef TARGET_LITTLE_NAME
+++#define TARGET_LITTLE_NAME		    "elf64-x86-64-freebsd"
+++
+++/* The kernel recognizes executables as valid only if they carry a
+++   "FreeBSD" label in the ELF header.  So we put this label on all
+++   executables and (for simplicity) also all other object files.  */
+++
+++static void
+++elf64_x86_64_fbsd_post_process_headers (bfd * abfd,
+++	struct bfd_link_info * link_info ATTRIBUTE_UNUSED)
+++{
+++  Elf_Internal_Ehdr * i_ehdrp;	/* ELF file header, internal form.  */
+++
+++  i_ehdrp = elf_elfheader (abfd);
+++
+++  /* Put an ABI label supported by FreeBSD >= 4.1.  */
+++  i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_FREEBSD;
+++}
+++
+++#undef elf_backend_post_process_headers
+++#define elf_backend_post_process_headers \
+++  elf64_x86_64_fbsd_post_process_headers
+++
+++#undef  elf64_bed
+++#define elf64_bed elf64_x86_64_fbsd_bed
+++
+++#include "elf64-target.h"
+++
++diff -urN binutils-2.17/bfd/targets.c binutils-2.17/bfd/targets.c
++--- binutils-2.17/bfd/targets.c	2006-04-05 14:41:57.000000000 +0200
+++++ binutils-2.17/bfd/targets.c	2006-07-29 13:51:56.000000000 +0200
++@@ -668,6 +668,7 @@
++ extern const bfd_target bfd_elf64_sparc_vec;
++ extern const bfd_target bfd_elf64_tradbigmips_vec;
++ extern const bfd_target bfd_elf64_tradlittlemips_vec;
+++extern const bfd_target bfd_elf64_x86_64_freebsd_vec;
++ extern const bfd_target bfd_elf64_x86_64_vec;
++ extern const bfd_target bfd_mmo_vec;
++ extern const bfd_target bfd_powerpc_pe_vec;
++@@ -984,6 +985,7 @@
++ 	&bfd_elf64_sparc_vec,
++ 	&bfd_elf64_tradbigmips_vec,
++ 	&bfd_elf64_tradlittlemips_vec,
+++	&bfd_elf64_x86_64_freebsd_vec,
++ 	&bfd_elf64_x86_64_vec,
++ 	&bfd_mmo_vec,
++ #endif
++diff -urN binutils-2.17/gas/config/tc-i386.c binutils-2.17/gas/config/tc-i386.c
++--- binutils-2.17/gas/config/tc-i386.c	2006-04-07 08:40:57.000000000 +0200
+++++ binutils-2.17/gas/config/tc-i386.c	2006-07-29 12:18:19.000000000 +0200
++@@ -5469,7 +5469,7 @@
++ 
++ 	list = bfd_target_list ();
++ 	for (l = list; *l != NULL; l++)
++-	  if (strcmp (*l, "elf64-x86-64") == 0)
+++	  if (strncmp (*l, "elf64-x86-64", 12) == 0)
++ 	    {
++ 	      default_arch = "x86_64";
++ 	      break;
++@@ -5566,7 +5566,7 @@
++ 	    object_64bit = 1;
++ 	    use_rela_relocations = 1;
++ 	  }
++-	return flag_code == CODE_64BIT ? "elf64-x86-64" : ELF_TARGET_FORMAT;
+++	return flag_code == CODE_64BIT ? ELF_TARGET_FORMAT64 : ELF_TARGET_FORMAT;
++       }
++ #endif
++     default:
++diff -urN binutils-2.17/gas/config/tc-i386.h binutils-2.17/gas/config/tc-i386.h
++--- binutils-2.17/gas/config/tc-i386.h	2006-02-27 16:35:37.000000000 +0100
+++++ binutils-2.17/gas/config/tc-i386.h	2006-07-29 13:53:14.000000000 +0200
++@@ -55,6 +55,7 @@
++ 
++ #ifdef TE_FreeBSD
++ #define ELF_TARGET_FORMAT	"elf32-i386-freebsd"
+++#define ELF_TARGET_FORMAT64	"elf64-x86-64-freebsd"
++ #elif defined (TE_VXWORKS)
++ #define ELF_TARGET_FORMAT	"elf32-i386-vxworks"
++ #endif
++@@ -63,6 +64,10 @@
++ #define ELF_TARGET_FORMAT	"elf32-i386"
++ #endif
++ 
+++#ifndef ELF_TARGET_FORMAT64
+++#define ELF_TARGET_FORMAT64	"elf64-x86-64"
+++#endif
+++
++ #if ((defined (OBJ_MAYBE_COFF) && defined (OBJ_MAYBE_AOUT)) \
++      || defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))
++ extern const char *i386_target_format PARAMS ((void));
++diff -urN binutils-2.17/ld/emulparams/elf_x86_64_fbsd.sh binutils-2.17/ld/emulparams/elf_x86_64_fbsd.sh
++--- binutils-2.17/ld/emulparams/elf_x86_64_fbsd.sh	2002-02-18 10:38:01.000000000 +0100
+++++ binutils-2.17/ld/emulparams/elf_x86_64_fbsd.sh	2006-07-29 12:03:54.000000000 +0200
++@@ -1,2 +1,3 @@
++ . ${srcdir}/emulparams/elf_x86_64.sh
++ . ${srcdir}/emulparams/elf_fbsd.sh
+++OUTPUT_FORMAT="elf64-x86-64-freebsd"
++diff -urN binutils-2.17/bfd/config.bfd binutils-2.17/bfd/config.bfd
++--- binutils-2.17/bfd/config.bfd	2006-04-05 14:41:57.000000000 +0200
+++++ binutils-2.17/bfd/config.bfd	2006-07-29 14:14:03.000000000 +0200
++@@ -551,8 +551,8 @@
++     targ_selvecs="bfd_elf32_i386_vec i386coff_vec"
++     ;;
++   x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
++-    targ_defvec=bfd_elf64_x86_64_vec
++-    targ_selvecs="bfd_elf32_i386_vec i386coff_vec bfd_efi_app_ia32_vec"
+++    targ_defvec=bfd_elf64_x86_64_freebsd_vec
+++    targ_selvecs="bfd_elf32_i386_freebsd_vec i386coff_vec bfd_efi_app_ia32_vec bfd_elf32_i386_vec bfd_elf64_x86_64_vec"
++     ;;
++   x86_64-*-netbsd* | x86_64-*-openbsd*)
++     targ_defvec=bfd_elf64_x86_64_vec
++diff -urN binutils-2.17/bfd/configure.in binutils-2.17/bfd/configure.in
++--- binutils-2.17/bfd/configure.in	2006-06-23 20:17:07.000000000 +0200
+++++ binutils-2.17/bfd/configure.in	2006-07-29 14:08:19.000000000 +0200
++@@ -707,6 +707,7 @@
++     bfd_elf64_sparc_vec)	tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
++     bfd_elf64_tradbigmips_vec)	tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
++     bfd_elf64_tradlittlemips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
+++    bfd_elf64_x86_64_freebsd_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;;
++     bfd_elf64_x86_64_vec)	tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;;
++     bfd_mmo_vec)		tb="$tb mmo.lo" target_size=64 ;;
++     bfd_powerpc_pe_vec)         tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
++diff -urN binutils-2.17/bfd/configure binutils-2.17/bfd/configure
++--- binutils-2.17/bfd/configure	2006-06-23 20:17:03.000000000 +0200
+++++ binutils-2.17/bfd/configure	2006-07-29 14:08:54.000000000 +0200
++@@ -13194,6 +13194,7 @@
++     bfd_elf64_sparc_vec)	tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
++     bfd_elf64_tradbigmips_vec)	tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
++     bfd_elf64_tradlittlemips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
+++    bfd_elf64_x86_64_freebsd_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;;
++     bfd_elf64_x86_64_vec)	tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;;
++     bfd_mmo_vec)		tb="$tb mmo.lo" target_size=64 ;;
++     bfd_powerpc_pe_vec)         tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;




More information about the Glibc-bsd-commits mailing list