[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tyndur-devel] [PATCH] [LBUILDS] binutils auf neueste Version geupdated + build_crosstools gefixt + Patch gefixt



* build_crosstools: BINUTILS_VERSION auf 2.21.1 geändert und bei Downloadpfaden a angehangen
+ binutils-2.21.1.patch: Patch umbenannt und gefixt

Signed-off-by: Alexander Kluth <hartmut@xxxxxxxxxx>
---
 patches/binutils/2.21.1/binutils-2.21.1.patch |  337 +++++++++++++++++++++++++
 scripts/build_crosstools                      |    8 +-
 2 files changed, 341 insertions(+), 4 deletions(-)
 create mode 100644 patches/binutils/2.21.1/binutils-2.21.1.patch

diff --git a/patches/binutils/2.21.1/binutils-2.21.1.patch b/patches/binutils/2.21.1/binutils-2.21.1.patch
new file mode 100644
index 0000000..1278268
--- /dev/null
+++ b/patches/binutils/2.21.1/binutils-2.21.1.patch
@@ -0,0 +1,337 @@
+diff -uNr ../binutils-2.21/bfd/config.bfd ./bfd/config.bfd
+--- ../binutils-2.21/bfd/config.bfd	2007-08-28 19:19:33.000000000 +0200
++++ ./bfd/config.bfd	2008-01-21 15:22:03.000000000 +0100
+@@ -600,6 +600,11 @@
+     targ_selvecs="i386linux_vec i386pei_vec"
+     targ64_selvecs="bfd_elf64_x86_64_vec bfd_elf64_l1om_vec"
+     ;;
++  i[3-7]86-*-tyndur)
++    targ_defvec=bfd_elf32_i386_vec
++    targ_selvecs=bfd_elf32_i386_vec
++    targ64_selvecs=bfd_elf64_x86_64_vec
++    ;;
+ #ifdef BFD64
+   x86_64-*-darwin*)
+     targ_defvec=mach_o_x86_64_vec
+diff -uNr ../binutils-2.21/config.sub ./config.sub
+--- ../binutils-2.21/config.sub	2007-08-06 22:00:30.000000000 +0200
++++ ./config.sub	2008-01-21 15:22:03.000000000 +0100
+@@ -127,8 +127,8 @@
+   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+   linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+   knetbsd*-gnu* | netbsd*-gnu* | \
+-  kopensolaris*-gnu* | \
+-  storm-chaos* | os2-emx* | rtmk-nova*)
++  tyndur | kopensolaris*-gnu* | \
++  netbsd*-gnu* |  storm-chaos* | os2-emx* | rtmk-nova*)
+     os=-$maybe_os
+     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+     ;;
+@@ -1347,6 +1347,9 @@
+ 	-linux*)
+ 		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ 		;;
++    -tyndur*)
++        os=-tyndur
++        ;;
+ 	-sunos5*)
+ 		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ 		;;
+diff -uNr ../binutils-2.21/gas/configure.tgt ./gas/configure.tgt
+--- ../binutils-2.21/gas/configure.tgt	2007-08-28 19:19:36.000000000 +0200
++++ ./gas/configure.tgt	2008-01-21 15:22:03.000000000 +0100
+@@ -199,6 +199,7 @@
+   i386-*-linux*oldld)			fmt=aout em=linux ;;
+   i386-*-linux*coff*)			fmt=coff em=linux ;;
+   i386-*-linux-*)			fmt=elf em=linux ;;
++  i386-*-tyndur)              fmt=elf ;;
+   i386-*-lynxos*)			fmt=elf em=lynx ;;
+   i386-*-sysv[45]*)			fmt=elf ;;
+   i386-*-solaris*)			fmt=elf em=solaris ;;
+diff -uNr ../binutils-2.21/ld/configure.tgt ./ld/configure.tgt
+--- ../binutils-2.21/ld/configure.tgt	2007-08-28 19:19:42.000000000 +0200
++++ ./ld/configure.tgt	2008-02-08 17:55:11.000000000 +0100
+@@ -207,6 +207,10 @@
+ 			targ_extra_libpath=elf_i386
+ 			tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
+ 			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
++i[3-7]86-*-tyndur*)
++                        targ_emul=elf_i386_tyndur
++                        targ_extra_emuls="elf_i386"
++                        ;;
+ i[3-7]86-*-sysv[45]*)	targ_emul=elf_i386 ;;
+ i[3-7]86-*-solaris2*)	targ_emul=elf_i386_sol2
+                         targ_extra_emuls="elf_i386_ldso elf_i386 elf_x86_64_sol2 elf_x86_64 elf_l1om"
+@@ -718,6 +718,10 @@
+ *-*-linux*)
+   ;;
+ 
++*-*-tyndur*)
++  NATIVE_LIB_DIRS='/system/links/lib'
++  ;;
++   
+ *-*-netbsd*)
+   ;;
+ 
+diff -uNr ../binutils-2.21/ld/emulparams/elf_i386_tyndur.sh ./ld/emulparams/elf_i386_tyndur.sh
+--- ../binutils-2.21/ld/emulparams/elf_i386_tyndur.sh	1970-01-01 01:00:00.000000000 +0100
++++ ./ld/emulparams/elf_i386_tyndur.sh	2008-02-04 08:05:57.000000000 +0100
+@@ -0,0 +1,17 @@
++SCRIPT_NAME=elf
++OUTPUT_FORMAT="elf32-i386"
++TEXT_START_ADDR=0x40000000
++MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
++COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
++ARCH=i386
++MACHINE=
++NOP=0x90909090
++TEMPLATE_NAME=elf32
++GENERATE_SHLIB_SCRIPT=yes
++GENERATE_PIE_SCRIPT=yes
++NO_SMALL_DATA=yes
++SEPARATE_GOTPLT=12
++CTOR_START="__ctor_start__ = .;"
++CTOR_END="__ctor_end__ = .;"
++DTOR_START="__dtor_start__ = .;"
++DTOR_END="__dtor_end__ = .;"
+diff -uNr ../binutils-2.21/ld/Makefile.am ./ld/Makefile.am
+--- ../binutils-2.21/ld/Makefile.am	2007-08-06 22:00:17.000000000 +0200
++++ ./ld/Makefile.am	2008-02-04 08:17:43.000000000 +0100
+@@ -1196,6 +1196,9 @@
+ eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \
+   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ 	${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)"
++eelf_i386_tyndur.c: $(srcdir)/emulparams/elf_i386_tyndur.sh \
++  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
++	${GENSCRIPTS} elf_i386_tyndur "$(tdir_elf_i386_tyndur)"
+ eelf_i386_sol2.c: $(srcdir)/emulparams/elf_i386_sol2.sh \
+   $(srcdir)/emulparams/solaris2.sh \
+   $(srcdir)/emultempl/solaris2.em \
+diff -uNr ../binutils-2.21/ld/Makefile.in ./ld/Makefile.in
+--- ../binutils-2.21/ld/Makefile.in	2007-08-06 22:29:54.000000000 +0200
++++ ./ld/Makefile.in	2008-02-04 08:17:13.000000000 +0100
+@@ -538,6 +538,7 @@
+ 	eelf_i386_chaos.c \
+ 	eelf_i386_fbsd.c \
+ 	eelf_i386_ldso.c \
++	eelf_i386_tyndur.o \
+ 	eelf_i386_sol2.c \
+ 	eelf_i386_vxworks.c \
+ 	eelf_s390.c \
+@@ -2619,6 +2619,10 @@
+ eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \
+   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ 	${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)"
++eelf_i386_tyndur.c: $(srcdir)/emulparams/elf_i386_tyndur.sh \
++  $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
++	${GENSCRIPTS} elf_i386_tyndur "$(tdir_elf_i386_tyndur)"
++
+ eelf_i386_sol2.c: $(srcdir)/emulparams/elf_i386_sol2.sh \
+   $(srcdir)/emulparams/solaris2.sh \
+   $(srcdir)/emultempl/solaris2.em \
+diff -uNr ../binutils-2.21/libiberty/configure ./libiberty/configure
+--- ../binutils-2.21/libiberty/configure	2007-08-06 21:59:45.000000000 +0200
++++ ./libiberty/configure	2008-01-21 15:22:03.000000000 +0100
+@@ -6579,6 +6579,7 @@
+      *-*-mingw* | *-*-winnt*)	pexecute=pex-win32  ;;
+      *-*-msdosdjgpp*)		pexecute=pex-djgpp  ;;
+      *-*-msdos*)		pexecute=pex-msdos  ;;
++     *-*-tyndur*)     pexecute=./pex-tyndur.o   ;;
+      *)				pexecute=pex-unix   ;;
+ esac
+ 
+diff -uNr ../binutils-2.21/libiberty/configure.ac ./libiberty/configure.ac
+--- ../binutils-2.21/libiberty/configure.ac	2007-08-06 21:59:45.000000000 +0200
++++ ./libiberty/configure.ac	2008-01-21 15:22:03.000000000 +0100
+@@ -689,6 +689,7 @@
+      *-*-mingw* | *-*-winnt*)	pexecute=pex-win32  ;;
+      *-*-msdosdjgpp*)		pexecute=pex-djgpp  ;;
+      *-*-msdos*)		pexecute=pex-msdos  ;;
++     *-*-tyndur*)         pexecute=./pex-tyndur.o   ;;
+      *)				pexecute=pex-unix   ;;
+ esac
+ AC_SUBST(pexecute)
+diff -uNr ../binutils-2.21/libiberty/Makefile.in ./libiberty/Makefile.in
+--- ../binutils-2.21/libiberty/Makefile.in	2007-08-06 21:59:45.000000000 +0200
++++ ./libiberty/Makefile.in	2008-01-21 15:22:03.000000000 +0100
+@@ -141,7 +141,7 @@
+ 	objalloc.c obstack.c						\
+ 	partition.c pexecute.c						\
+ 	 pex-common.c pex-djgpp.c pex-msdos.c pex-one.c			\
+-	 pex-unix.c pex-win32.c						\
++	 pex-unix.c pex-win32.c	pex-tyndur.c					\
+          physmem.c putenv.c						\
+ 	random.c regex.c rename.c rindex.c				\
+ 	safe-ctype.c setenv.c setproctitle.c sha1.c sigsetmask.c        \
+@@ -866,6 +866,13 @@
+ 	else true; fi
+ 	$(COMPILE.c) $(srcdir)/pex-djgpp.c $(OUTPUT_OPTION)
+ 
++./pex-tyndur.o: $(srcdir)/pex-tyndur.c stamp-h $(INCDIR)/ansidecl.h \
++	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h
++	if [ x"$(PICFLAG)" != x ]; then \
++	  $(COMPILE.c) $(PICFLAG) $(srcdir)/pex-tyndur.c -o pic/$@; \
++	else true; fi
++	$(COMPILE.c) $(srcdir)/pex-tyndur.c $(OUTPUT_OPTION)
++
+ ./pex-msdos.$(objext): $(srcdir)/pex-msdos.c config.h $(INCDIR)/ansidecl.h \
+ 	$(INCDIR)/libiberty.h $(srcdir)/pex-common.h \
+ 	$(INCDIR)/safe-ctype.h
+diff -uNr ../binutils-2.21/libiberty/pex-tyndur.c ./libiberty/pex-tyndur.c
+--- ../binutils-2.21/libiberty/pex-tyndur.c	1970-01-01 01:00:00.000000000 +0100
++++ ./libiberty/pex-tyndur.c	2008-01-21 15:22:03.000000000 +0100
+@@ -0,0 +1,154 @@
++/* Utilities to execute a program in a subprocess (possibly linked by pipes
++   with other subprocesses), and wait for it.  Generic Unix version
++   (also used for UWIN and VMS).
++   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
++   Free Software Foundation, Inc.
++
++This file is part of the libiberty library.
++Libiberty is free software; you can redistribute it and/or
++modify it under the terms of the GNU Library General Public
++License as published by the Free Software Foundation; either
++version 2 of the License, or (at your option) any later version.
++
++Libiberty is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++Library General Public License for more details.
++
++You should have received a copy of the GNU Library General Public
++License along with libiberty; see the file COPYING.LIB.  If not,
++write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
++Boston, MA 02110-1301, USA.  */
++
++#include "config.h"
++#include "libiberty.h"
++#include "pex-common.h"
++
++#include <stdio.h>
++#include <signal.h>
++#include <errno.h>
++#include <init.h>
++#ifdef NEED_DECLARATION_ERRNO
++extern int errno;
++#endif
++#ifdef HAVE_STDLIB_H
++#include <stdlib.h>
++#endif
++#ifdef HAVE_STRING_H
++#include <string.h>
++#endif
++#ifdef HAVE_UNISTD_H
++#include <unistd.h>
++#endif
++
++#include <sys/types.h>
++
++#ifdef HAVE_FCNTL_H
++#include <fcntl.h>
++#endif
++#ifdef HAVE_SYS_WAIT_H
++#include <sys/wait.h>
++#endif
++#ifdef HAVE_GETRUSAGE
++#include <sys/time.h>
++#include <sys/resource.h>
++#endif
++#ifdef HAVE_SYS_STAT_H
++#include <sys/stat.h>
++#endif
++
++
++static int pex_tyndur_open_read (struct pex_obj *, const char *, int);
++static int pex_tyndur_open_write (struct pex_obj *, const char *, int);
++static long pex_tyndur_exec_child (struct pex_obj *, int, const char *,
++				 char * const *, char * const *,
++				 int, int, int, int,
++				 const char **, int *);
++static int pex_tyndur_close (struct pex_obj *, int);
++static int pex_tyndur_wait (struct pex_obj *, long, int *, struct pex_time *,
++			  int, const char **, int *);
++static int pex_tyndur_pipe (struct pex_obj *, int *, int);
++static FILE *pex_tyndur_fdopenr (struct pex_obj *, int, int);
++static FILE *pex_tyndur_fdopenw (struct pex_obj *, int, int);
++static void pex_tyndur_cleanup (struct pex_obj *);
++
++/* The list of functions we pass to the common routines.  */
++
++const struct pex_funcs funcs =
++{
++  pex_tyndur_open_read,
++  pex_tyndur_open_write,
++  pex_tyndur_exec_child,
++  pex_tyndur_close,
++  pex_tyndur_wait,
++  NULL,
++  NULL,
++  NULL,
++  NULL
++};
++
++/* Return a newly initialized pex_obj structure.  */
++
++struct pex_obj *
++pex_init (int flags, const char *pname, const char *tempbase)
++{
++  return pex_init_common (flags, pname, tempbase, &funcs);
++}
++
++/* Open a file for reading.  */
++
++static int
++pex_tyndur_open_read (struct pex_obj *obj ATTRIBUTE_UNUSED, const char *name,
++		    int binary ATTRIBUTE_UNUSED)
++{
++  return open (name, O_RDONLY);
++}
++
++/* Open a file for writing.  */
++
++static int
++pex_tyndur_open_write (struct pex_obj *obj ATTRIBUTE_UNUSED, const char *name,
++		     int binary ATTRIBUTE_UNUSED)
++{
++  /* Note that we can't use O_EXCL here because gcc may have already
++     created the temporary file via make_temp_file.  */
++  return open (name, O_WRONLY | O_CREAT | O_TRUNC);
++}
++
++/* Close a file.  */
++
++static int
++pex_tyndur_close (struct pex_obj *obj ATTRIBUTE_UNUSED, int fd)
++{
++  return close (fd);
++}
++
++/* Execute a child.  */
++static long
++pex_tyndur_exec_child (struct pex_obj *obj, int flags, const char *executable,
++		     char * const * argv, char * const * env,
++                     int in, int out, int errdes,
++		     int toclose, const char **errmsg, int *err)
++{
++  // FIXME
++  return -1;
++}
++
++/* Wait for a child process to complete.  */
++
++static int
++pex_tyndur_wait (struct pex_obj *obj, long pid, int *status,
++	       struct pex_time *time, int done, const char **errmsg,
++	       int *err)
++{
++  /* If we are cleaning up when the caller didn't retrieve process
++     status for some reason, encourage the process to go away.  */
++  if (done)
++    kill (pid, SIGTERM);
++  
++  // FIXME
++  while (get_parent_pid(pid) != 0);
++  *status = 0;
++  return 0;
++}
++
diff --git a/scripts/build_crosstools b/scripts/build_crosstools
index b3589fd..20e288a 100755
--- a/scripts/build_crosstools
+++ b/scripts/build_crosstools
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 # Versionen der Tools
-BINUTILS_VERSION=2.21
+BINUTILS_VERSION=2.21.1
 GCC_VERSION=4.5.2
 NEEDS_GMP_MAJOR=4
 NEEDS_GMP_MINOR=3
@@ -128,11 +128,11 @@ rm -rf ${TMP}/cross-binutils/binutils-${BINUTILS_VERSION}/
 cd ${TMP}/cross-binutils
 echo "[binutils] Version " ${BINUTILS_VERSION}
 echo "[binutils] Herunterladen..."
-[ -f binutils-${BINUTILS_VERSION}.tar.bz2 ] || wget -q http://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VERSION}.tar.bz2 || die "Fehler beim Herunterladen."
+[ -f binutils-${BINUTILS_VERSION}.tar.bz2 ] || wget -q http://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VERSION}a.tar.bz2 || die "Fehler beim Herunterladen."
 echo "[binutils] Entpacken..."
-tar -xjf binutils-${BINUTILS_VERSION}.tar.bz2 || die "Fehler beim Entpacken."
+tar -xjf binutils-${BINUTILS_VERSION}a.tar.bz2 || die "Fehler beim Entpacken."
 echo "[binutils] Patch anwenden..."
-patch -p0 -d binutils-${BINUTILS_VERSION}/ < ${PATCHES}/binutils/${BINUTILS_VERSION}/binutils-${BINUTILS_VERSION}.patch >${LOGS}/binutils.log || die "Fehler beim Anwenden des Patches.\nSiehe tmp/binutils.log für Details."
+patch -p0 -d binutils-2.21.1/ < ${PATCHES}/binutils/${BINUTILS_VERSION}/binutils-${BINUTILS_VERSION}.patch >${LOGS}/binutils.log || die "Fehler beim Anwenden des Patches.\nSiehe tmp/binutils.log für Details."
 cd build
 echo "[binutils] Konfigurieren..."
 ../binutils-${BINUTILS_VERSION}/configure --prefix="${PREFIX}" --with-sysroot=${PREFIX} --target=${TARGET} --disable-nls --disable-werror >>${LOGS}/binutils.log || die "Fehler beim Konfigurieren.\nSiehe tmp/binutils.log für Details."
-- 
1.7.2.5