[SM-Commit] GIT changes to devel-gcc grimoire by Florian Franzmann (bbaaca54c1957e86abfddedd8df4b5410f9e6e2e)

Florian Franzmann scm at sourcemage.org
Fri Mar 19 05:30:24 EDT 2010


GIT changes to devel-gcc grimoire by Florian Franzmann <siflfran at hawo.stw.uni-erlangen.de>:

 ChangeLog     |    5 ++
 gnu/FUNCTIONS |  106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 111 insertions(+)

New commits:
commit bbaaca54c1957e86abfddedd8df4b5410f9e6e2e
Author: Florian Franzmann <siflfran at hawo.stw.uni-erlangen.de>
Commit: Florian Franzmann <siflfran at hawo.stw.uni-erlangen.de>

    gnu/FUNCTIONS: added functions to avoid code duplication in gnu spells

diff --git a/ChangeLog b/ChangeLog
index 5acd00a..2e041a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-03-19 Florian Franzmann <siflfran at hawo.stw.uni-erlangen.de>
+	* gnu/FUNCTIONS: created functions default_build_configure_gcc,
+	  default_build_make_gcc, default_build_gcc and default_install_gcc
+	  to avoid code duplication in gnu spells
+
 2010-03-13 Sukneet Saini <sukneet at sourcemage.org>
 	* ftp/axel: new spell, a light download accelerater
 	* wm-addons/tabbed: new spell, a generic tabbed frontend
diff --git a/gnu/FUNCTIONS b/gnu/FUNCTIONS
index c78b411..eb720d1 100755
--- a/gnu/FUNCTIONS
+++ b/gnu/FUNCTIONS
@@ -18,3 +18,109 @@ function default_configure_gcc ()
                       '--disable-multilib'
   fi
 }
+
+function default_build_configure_gcc ()
+{
+    cd ${SOURCE_DIRECTORY}.bld                                &&
+    persistent_read gmp GMP_BUILD_ARCH GMP_BUILD_ARCH         &&
+    persistent_read mpfr MPFR_BUILD_ARCH MPFR_BUILD_ARCH      &&
+
+    if [[ $GMP_BUILD_ARCH  != ${SMGL_COMPAT_ARCHS[4]}
+       || $MPFR_BUILD_ARCH != ${SMGL_COMPAT_ARCHS[4]} ]]; then
+      message "${PROBLEM_COLOR}" 1>&2 &&
+      message "gmp and/or mpfr have been built with a different archspec, building gcc now" 1>&2 &&
+      message "would result in a broken compiler" 1>&2 &&
+      message "${DEFAULT_COLOR}" 1>&2
+      return 1
+    fi                                                        &&
+
+    # install gcc libraries to /lib instead of /lib64
+    sedit "s/lib64/lib/" ${SOURCE_DIRECTORY}/gcc/config/i386/linux64.h &&
+    if [[ "$GCC_NOLIB64" == 'y' ]]; then
+      # tell gcc to target binaries to expect the linker in /lib instead of /lib64
+      sedit "s/lib64/lib/" ${SOURCE_DIRECTORY}gcc/config/i386/t-linux64 || return 1
+    fi                                                        &&
+
+    if  [[ "$ARCHITECTURE"  ==  "pentium4"  ||
+           "$ARCHITECTURE"  ==  "pentium-m"  ]];  then
+       CFLAGS=${CFLAGS//-ffast-math/}     &&
+       CXXFLAGS=${CXXFLAGS//-ffast-math/} || return 1
+    fi  &&
+
+    # fixes seg-fault on libiberty/splay.c in v 4.3.2
+    CFLAGS="-O1 $CFLAGS"                                      &&
+
+    if [[ $CROSS_INSTALL == on ]]; then
+        OPTS="--host=$HOST $OPTS" || return 1
+    else
+        OPTS="--build=$HOST $OPTS" || return 1
+    fi  &&
+
+    $SOURCE_DIRECTORY/configure                       \
+        --prefix="${INSTALL_ROOT}/usr"                \
+       --infodir="${INSTALL_ROOT}/usr/share/info"     \
+        --mandir="${INSTALL_ROOT}/usr/share/man"      \
+        --enable-threads=posix                        \
+        --with-system-zlib                            \
+        $GCC_MULTILIB                                 \
+        $OPTS
+}
+
+function default_build_make_gcc ()
+{
+    cd ${SOURCE_DIRECTORY}.bld                                 &&
+#make_single                                                    &&
+    make CFLAGS="$CFLAGS" BOOT_CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
+        profiledbootstrap-lean                                     
+#make_normal
+}
+
+function default_build_gcc ()
+{
+    default_build_configure_gcc &&
+    default_build_make_gcc
+}
+
+function default_install_gcc ()
+{
+    local COMPILER1 &&
+    local LIBRARY   &&
+    local SPECSNAME &&
+    SPECSNAME=$SPELL
+
+    if [[ "$SPELL" == "ada" ]]; then
+        COMPILER1=gnat1
+          LIBRARY=libada
+    elif [[ "$SPELL" == "fortran" ]]; then
+        COMPILER1=f951
+          LIBRARY=libgfortran
+    elif [[ "$SPELL" == "g++" ]]; then
+        COMPILER1=cc1plus
+          LIBRARY=libstdc++-v3
+    elif [[ "$SPELL" == "gcj" ]]; then
+        COMPILER1={jc1,jvgenmain}
+          LIBRARY=libjava
+    elif [[ "$SPELL" == "objc" ]]; then
+        COMPILER1=cc1obj
+          LIBRARY=libobjc
+    else
+        message "default_install_gcc: unknown spell $SPELL"
+        return 1
+    fi &&
+
+    cd  $SOURCE_DIRECTORY.bld  &&
+
+    make_single  &&
+
+    make -C gcc lang.install-common lang.install-man                        &&
+    install gcc/${COMPILER1} ${INSTALL_ROOT}/usr/libexec/gcc/$HOST/$VERSION &&
+    make -C $HOST/$LIBRARY install &&
+
+    make_normal  &&
+
+    # specs file stuff
+    local SPECSDIR=${INSTALL_ROOT}/usr/lib/gcc/$HOST/$VERSION  &&
+    if [[ -f $SPELL_DIRECTORY/specs_$SPECSNAME ]]; then
+        install $SPELL_DIRECTORY/specs_$SPECSNAME $SPECSDIR/specs-local || return 1
+    fi
+}



More information about the SM-Commit mailing list