From 3f295388251f28459a2f76e315ecd8af0a4b8d96 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Wed, 23 May 2007 20:26:35 +0000 Subject: [PATCH] Clifford Wolf: Added gcc42 package fork (4.2.0) [2007051617562425485] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@8420 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- package/base/gcc/config-300.in | 13 ++++- package/base/gcc/gcc.conf | 4 ++ package/base/gcc/gcc.desc | 5 ++ package/base/gcc/gcc42/auxbase.patch | 50 +++++++++++++++++++ package/base/gcc/gcc42/install_so.patch | 39 +++++++++++++++ .../base/gcc/gcc42/no-install-libiberty.patch | 36 +++++++++++++ package/base/gcc/gcc42/no-install-zlib.patch | 30 +++++++++++ package/base/gcc/wrappers.in | 12 ++--- 8 files changed, 182 insertions(+), 7 deletions(-) create mode 100644 package/base/gcc/gcc42/auxbase.patch create mode 100644 package/base/gcc/gcc42/install_so.patch create mode 100644 package/base/gcc/gcc42/no-install-libiberty.patch create mode 100644 package/base/gcc/gcc42/no-install-zlib.patch diff --git a/package/base/gcc/config-300.in b/package/base/gcc/config-300.in index 81af0c856..b57aa5b41 100644 --- a/package/base/gcc/config-300.in +++ b/package/base/gcc/config-300.in @@ -30,6 +30,7 @@ then bool 'Building gcc 3.4.x package' ROCKCFG_PKG_GCC_GCC34 0 bool 'Building gcc 4.0.x package' ROCKCFG_PKG_GCC_GCC40 1 bool 'Building gcc 4.1.x package' ROCKCFG_PKG_GCC_GCC41 0 + bool 'Building gcc 4.2.x package' ROCKCFG_PKG_GCC_GCC42 0 d="none" ; l="" ; m="" if [ $ROCKCFG_PKG_GCC_GCC2 = 1 ]; then pkgfork gcc gcc2; d="gcc2"; l="$l $d"; fi @@ -38,6 +39,7 @@ then if [ $ROCKCFG_PKG_GCC_GCC34 = 1 ]; then pkgfork gcc gcc34; d="gcc34"; l="$l $d"; fi if [ $ROCKCFG_PKG_GCC_GCC40 = 1 ]; then pkgfork gcc gcc40; d="gcc40"; l="$l $d"; m="$m $d"; fi if [ $ROCKCFG_PKG_GCC_GCC41 = 1 ]; then pkgfork gcc gcc41; d="gcc41"; l="$l $d"; m="$m $d"; fi + if [ $ROCKCFG_PKG_GCC_GCC42 = 1 ]; then pkgfork gcc gcc42; d="gcc42"; l="$l $d"; m="$m $d"; fi pkgremove gcc k=""; for x in $l; do @@ -67,7 +69,7 @@ then # build non-default CCs in stages 5 and 9 # and dedicated C++ and Fortran77 compilers in stages 2 and 9 - k=""; for x in gcc2 gcc32 gcc33 gcc34 gcc40 gcc41; do + k=""; for x in gcc2 gcc32 gcc33 gcc34 gcc40 gcc41 gcc42; do if [ "$ROCKCFG_DEFAULT_CC" != "$x" ] ; then if [[ "$ROCKCFG_DEFAULT_CXX" != "$x" && "$ROCKCFG_DEFAULT_F77" != "$x" ]]; then k="$k / gcc=$x / s/^\(.\) [0-9-]*/\1 -----5---9/;"; @@ -130,6 +132,15 @@ then ROCKCFG_PKG_GCC41_PROFILED 1 include "package/*/*/subconfig-gcc41.in" fi + if pkgcheck gcc=gcc42 X; then + comment ' ' + comment '--- GCC 4.2.x options' + bool 'Do not build JAVA compiler' \ + ROCKCFG_PKG_GCC42_NO_JAVA 1 + bool 'Do profiled bootstrap' \ + ROCKCFG_PKG_GCC42_PROFILED 1 + include "package/*/*/subconfig-gcc42.in" + fi menu_end fi diff --git a/package/base/gcc/gcc.conf b/package/base/gcc/gcc.conf index 52cc6df34..f5847378e 100644 --- a/package/base/gcc/gcc.conf +++ b/package/base/gcc/gcc.conf @@ -218,6 +218,8 @@ custmain() { elif [ $xpkg = gcc40 -a "$ROCKCFG_PKG_GCC40_NO_JAVA" != 0 ] || \ [ $xpkg = gcc41 -a "$ROCKCFG_PKG_GCC41_NO_JAVA" != 0 ]; then confopt="$confopt --enable-languages=c,c++,objc,f95" + elif [ $xpkg = gcc42 -a "$ROCKCFG_PKG_GCC42_NO_JAVA" != 0 ]; then + confopt="$confopt --enable-languages=c,c++,objc,fortran" elif [ "$arch" = mips ] ; then # FIXME: MIPS doesn't like the Java compiler confopt="$confopt --disable-libgcj" @@ -249,6 +251,8 @@ custmain() { eval "$MAKE GCJFLAGS=\"$CXXFLAGS\" profiledbootstrap" elif [ $xpkg = gcc41 -a "$ROCKCFG_PKG_GCC41_PROFILED" != 0 ]; then eval "$MAKE GCJFLAGS=\"$CXXFLAGS\" profiledbootstrap" + elif [ $xpkg = gcc42 -a "$ROCKCFG_PKG_GCC42_PROFILED" != 0 ]; then + eval "$MAKE GCJFLAGS=\"$CXXFLAGS\" profiledbootstrap" else eval "$MAKE GCJFLAGS=\"$CXXFLAGS\" all" fi diff --git a/package/base/gcc/gcc.desc b/package/base/gcc/gcc.desc index e2ba3c873..35a427165 100644 --- a/package/base/gcc/gcc.desc +++ b/package/base/gcc/gcc.desc @@ -80,6 +80,11 @@ [D] 1410840800 gcc-4.1.2.tar.bz2 ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.1.2/ #endif +#if xpkg == gcc42.* +[V] 4.2.0 +[D] 4172407453 gcc-4.2.0.tar.bz2 ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.2.0/ +#endif + [CD] for x in $cachedir/*.cache; do cp $x $confdir/$pkg.cache; done [CV-URL] ftp://gcc.gnu.org/pub/gcc/releases/ diff --git a/package/base/gcc/gcc42/auxbase.patch b/package/base/gcc/gcc42/auxbase.patch new file mode 100644 index 000000000..203b1ae40 --- /dev/null +++ b/package/base/gcc/gcc42/auxbase.patch @@ -0,0 +1,50 @@ +# --- ROCK-COPYRIGHT-NOTE-BEGIN --- +# +# This copyright note is auto-generated by ./scripts/Create-CopyPatch. +# Please add additional copyright information _after_ the line containing +# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by +# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! +# +# ROCK Linux: rock-src/package/base/gcc/gcc41/auxbase.patch +# ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf +# +# This patch file is dual-licensed. It is available under the license the +# patched project is licensed under, as long as it is an OpenSource license +# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms +# of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# --- ROCK-COPYRIGHT-NOTE-END --- + + +This fix is for passing -auxbase or -auxbase-strip thru the "gcc" driver +programs (e.g. 'gcc') to the backend compilers (e.g. 'cc1'). We will need +this for supporting feedback compilation using the ROCK toolchain... + + - Clifford + +--- ./gcc/gcc.h.orig 2004-09-24 15:42:27.000000000 +0200 ++++ ./gcc/gcc.h 2004-09-24 15:43:24.000000000 +0200 +@@ -46,6 +46,7 @@ + (!strcmp (STR, "Tdata") || !strcmp (STR, "Ttext") \ + || !strcmp (STR, "Tbss") || !strcmp (STR, "include") \ + || !strcmp (STR, "imacros") || !strcmp (STR, "aux-info") \ ++ || !strcmp (STR, "auxbase") || !strcmp (STR, "auxbase-strip") \ + || !strcmp (STR, "idirafter") || !strcmp (STR, "iprefix") \ + || !strcmp (STR, "iwithprefix") || !strcmp (STR, "iwithprefixbefore") \ + || !strcmp (STR, "isystem") || !strcmp (STR, "-param") \ +--- ./gcc/gcc.c.orig 2004-09-24 15:44:36.000000000 +0200 ++++ ./gcc/gcc.c 2004-09-24 15:48:48.000000000 +0200 +@@ -788,9 +788,9 @@ + /* NB: This is shared amongst all front-ends. */ + static const char *cc1_options = + "%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\ +- %1 %{!Q:-quiet} -dumpbase %B %{d*} %{m*} %{a*}\ ++ %1 %{!Q:-quiet} -dumpbase %B %{d*} %{m*}\ + %{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}%{!c:%{!S:-auxbase %b}}\ +- %{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi&trigraphs}\ ++ %{a*} %{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi&trigraphs}\ + %{v:-version} %{pg:-p} %{p} %{f*} %{undef}\ + %{Qn:-fno-ident} %{--help:--help}\ + %{--target-help:--target-help}\ diff --git a/package/base/gcc/gcc42/install_so.patch b/package/base/gcc/gcc42/install_so.patch new file mode 100644 index 000000000..1288dba8b --- /dev/null +++ b/package/base/gcc/gcc42/install_so.patch @@ -0,0 +1,39 @@ +# --- ROCK-COPYRIGHT-NOTE-BEGIN --- +# +# This copyright note is auto-generated by ./scripts/Create-CopyPatch. +# Please add additional copyright information _after_ the line containing +# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by +# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! +# +# ROCK Linux: rock-src/package/base/gcc/gcc41/install_so.patch +# ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf +# +# This patch file is dual-licensed. It is available under the license the +# patched project is licensed under, as long as it is an OpenSource license +# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms +# of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# --- ROCK-COPYRIGHT-NOTE-END --- + +--- ./install-sh.orig 2003-07-20 11:40:28.000000000 +0200 ++++ ./install-sh 2003-11-02 17:04:13.000000000 +0100 +@@ -279,8 +279,15 @@ + && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && + + # Now rename the file to the real destination. +- { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ +- || { ++ { if echo $dstdir/$dstfile | grep -q 'lib/.*\.so' ; then ++ $doit $mvcmd $dsttmp $dstdir/$dstfile ++ rc=$? ++ else ++ $doit $rmcmd -f $dstdir/$dstfile && ++ $doit $mvcmd $dsttmp $dstdir/$dstfile ++ rc=$? ++ fi ++ [ $rc -eq 0 ] || { + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. diff --git a/package/base/gcc/gcc42/no-install-libiberty.patch b/package/base/gcc/gcc42/no-install-libiberty.patch new file mode 100644 index 000000000..9b394f811 --- /dev/null +++ b/package/base/gcc/gcc42/no-install-libiberty.patch @@ -0,0 +1,36 @@ +# --- ROCK-COPYRIGHT-NOTE-BEGIN --- +# +# This copyright note is auto-generated by ./scripts/Create-CopyPatch. +# Please add additional copyright information _after_ the line containing +# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by +# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! +# +# ROCK Linux: rock-src/package/base/gcc/gcc41/no-install-libiberty.patch +# ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf +# +# This patch file is dual-licensed. It is available under the license the +# patched project is licensed under, as long as it is an OpenSource license +# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms +# of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# --- ROCK-COPYRIGHT-NOTE-END --- + +--- ./libiberty/Makefile.in.orig 2003-03-23 06:16:03.000000000 -0400 ++++ ./libiberty/Makefile.in 2003-05-15 17:02:18.000000000 -0400 +@@ -342,10 +342,10 @@ + # since it will be passed the multilib flags. + MULTIOSDIR = `$(CC) $(LIBCFLAGS) -print-multi-os-directory` + install_to_libdir: all +- ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR) +- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n +- ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ) +- mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB) ++ #${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR) ++ #$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n ++ #( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ) ++ #mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB) + if test -n "${target_header_dir}"; then \ + case "${target_header_dir}" in \ + /*) thd=${target_header_dir};; \ diff --git a/package/base/gcc/gcc42/no-install-zlib.patch b/package/base/gcc/gcc42/no-install-zlib.patch new file mode 100644 index 000000000..736adb47f --- /dev/null +++ b/package/base/gcc/gcc42/no-install-zlib.patch @@ -0,0 +1,30 @@ +# --- ROCK-COPYRIGHT-NOTE-BEGIN --- +# +# This copyright note is auto-generated by ./scripts/Create-CopyPatch. +# Please add additional copyright information _after_ the line containing +# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by +# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! +# +# ROCK Linux: rock-src/package/base/gcc/gcc41/no-install-zlib.patch +# ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf +# +# This patch file is dual-licensed. It is available under the license the +# patched project is licensed under, as long as it is an OpenSource license +# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms +# of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# --- ROCK-COPYRIGHT-NOTE-END --- + +--- ./zlib/Makefile.in.orig 2002-11-25 21:28:45.000000000 +0200 ++++ ./zlib/Makefile.in 2003-01-25 15:39:06.000000000 +0200 +@@ -510,7 +510,7 @@ + for dir in "$(DESTDIR)$(toolexeclibdir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +-install: install-am ++install: + install-exec: install-exec-am + install-data: install-data-am + uninstall: uninstall-am diff --git a/package/base/gcc/wrappers.in b/package/base/gcc/wrappers.in index f93f266bf..e2dc73133 100644 --- a/package/base/gcc/wrappers.in +++ b/package/base/gcc/wrappers.in @@ -41,14 +41,14 @@ gcc_build_wrapper() { done } -gcc_build_wrapper CC ${arch_target}-cc ${arch_target}-gcc{-2,-32,-33,-34,-40,-41,} -gcc_build_wrapper KCC ${arch_target}-kcc{-2,-32,-33,-34,-40,-41,} +gcc_build_wrapper CC ${arch_target}-cc ${arch_target}-gcc{-2,-32,-33,-34,-40,-41,-42,} +gcc_build_wrapper KCC ${arch_target}-kcc{-2,-32,-33,-34,-40,-41,-42,} if [ $stagelevel -gt 1 -o "$ROCKCFG_USE_CROSSCC" = 0 ]; then - gcc_build_wrapper CC cc gcc{-2,-32,-33,-34,-40,-41,} - gcc_build_wrapper CXX {c,g}++{-2,-32,-33,-34,-40,-41,} - gcc_build_wrapper F77 {g,f}77{-2,-32,-33,-34,-40,-41,} - gcc_build_wrapper KCC kcc{-2,-32,-33,-34,-40,-41,} + gcc_build_wrapper CC cc gcc{-2,-32,-33,-34,-40,-41,-42,} + gcc_build_wrapper CXX {c,g}++{-2,-32,-33,-34,-40,-41,-42,} + gcc_build_wrapper F77 {g,f}77{-2,-32,-33,-34,-40,-41,-42,} + gcc_build_wrapper KCC kcc{-2,-32,-33,-34,-40,-41,-42,} fi if [ $stagelevel -le 1 ]; then