Author: cfinck
Date: Mon Jan 25 21:11:29 2010
New Revision: 45254
URL:
http://svn.reactos.org/svn/reactos?rev=45254&view=rev
Log:
- Updated toolchain versions again (GCC 4.4.3, GMP 4.3.2, MinGW-Runtime 3.17, w32api
3.14).
- Use -march=native if supported for compiling the RosBE-Unix toolchain.
- Use --disable-werror for all toolchain components to be prepared for future unknown
warnings.
- Use the safer and recommended -O2 optimization level instead of the more aggressive and
buggy -O3.
- Denote our versions of GCC using --with-pkgversion.
- Remove some wrong or redundant build flags.
- Properly unset variables.
Added:
trunk/tools/RosBE/RosBE-Unix/Base-i386/tools/dummy.c (with props)
Modified:
trunk/tools/RosBE/RosBE-Unix/Base-i386/README
trunk/tools/RosBE/RosBE-Unix/Base-i386/README.odt
trunk/tools/RosBE/RosBE-Unix/Base-i386/RosBE-Builder.sh
trunk/tools/RosBE/RosBE-Windows/Buildtoolchain/rosbe_1.5/buildtoolchain.sh
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/README
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/README [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/README [iso-8859-1] Mon Jan 25 21:11:29 2010
@@ -1,5 +1,5 @@
ReactOS Build Environment
- Version 1.5-RC1 for Unix-based operating systems
+ Version 1.5 for Unix-based operating systems
Base package and i386 build tools
by Colin Finck (colin(a)reactos.org)
@@ -103,10 +103,10 @@
This version of RosBE for Unix-based operating systems uses the following
components:
- * GNU Binutils v2.20-20091017 (snapshot)
+ * GNU Binutils v2.20-20091222 (snapshot)
compiled for mingw32
- * GCC, The GNU Compiler Collection v4.4.2
+ * GCC, The GNU Compiler Collection v4.4.3
compiled for mingw32
patched with:
-
http://gcc.gnu.org/bugzilla/attachment.cgi?id=18882&action=view
@@ -115,9 +115,9 @@
NOTE: This GCC version only supports C and C++
* Make 20071219 (CVS version)
- * MinGW-Runtime 3.16
+ * MinGW-Runtime 3.17
* NASM, The Netwide assembler v2.07
- * W32api 3.13
+ * W32api 3.14
Tested Operating Systems
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/README.odt
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
Binary files - no diff available.
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/RosBE-Builder.sh
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/RosBE-Builder.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/RosBE-Builder.sh [iso-8859-1] Mon Jan 25
21:11:29 2010
@@ -1,17 +1,17 @@
#!/bin/bash
#
# ReactOS Build Environment for Unix-based Operating Systems - Builder Tool for the Base
package
-# Copyright 2007-2009 Colin Finck <colin(a)reactos.org>
+# Copyright 2007-2010 Colin Finck <colin(a)reactos.org>
# partially based on the BuildMingwCross script
(
http://www.mingw.org/MinGWiki/index.php/BuildMingwCross)
#
# Released under GNU GPL v2 or any later version.
# RosBE Setup Variables
-rs_host_cflags="-pipe -fno-common -O3 -march=pentium3 -mfpmath=sse"
+rs_host_cflags="-pipe -O2"
rs_needed_tools="bison flex gcc g++ grep makeinfo" # GNU Make has a
special check
rs_target="mingw32"
-rs_target_cflags="-pipe -gstabs+ -O3 -march=pentium -mtune=i686"
+rs_target_cflags="-pipe -gstabs+ -O2 -march=pentium -mtune=i686"
# Get the absolute path to the script directory
cd `dirname $0`
@@ -22,7 +22,7 @@
# RosBE-Unix Constants
DEFAULT_INSTALL_DIR="/usr/local/RosBE"
KNOWN_ROSBE_VERSIONS="0.3.6 1.1 1.4 1.4.2 1.5-RC1"
-ROSBE_VERSION="1.5-RC1"
+ROSBE_VERSION="1.5"
TARGET_ARCH="i386"
source "$rs_scriptdir/scripts/rosbelibrary.sh"
@@ -227,6 +227,17 @@
rs_mkdir_if_not_exists "$rs_prefixdir/$rs_target"
rs_mkdir_if_not_exists "$rs_supportprefixdir"
+# Use -march=native if the host compiler supports it
+echo -n "Checking if the host compiler supports -march=native... "
+
+if `gcc -march=native -o "$rs_workdir/dummy"
"$rs_scriptdir/tools/dummy.c" >& /dev/null`; then
+ echo "yes"
+ rs_host_cflags+=" -march=native"
+ rm "$rs_workdir/dummy"
+else
+ echo "no"
+fi
+
rs_extract_module "mingw_runtime_dev" "$rs_prefixdir/$rs_target"
rs_extract_module "w32api" "$rs_prefixdir/$rs_target"
@@ -249,39 +260,34 @@
fi
if rs_prepare_module "gmp"; then
- export CFLAGS="$rs_host_cflags"
-
- rs_do_command ../gmp/configure ABI=32 --prefix="$rs_supportprefixdir"
--disable-shared
+ rs_do_command ../gmp/configure --prefix="$rs_supportprefixdir"
--disable-shared --disable-werror
rs_do_command $rs_makecmd -j $rs_cpucount
rs_do_command $rs_makecmd check
rs_do_command $rs_makecmd install
rs_clean_module "gmp"
-
- export CFLAGS=""
fi
if rs_prepare_module "mpfr"; then
export CFLAGS="$rs_host_cflags"
- rs_do_command ../mpfr/configure --prefix="$rs_supportprefixdir"
--with-gmp="$rs_supportprefixdir" --disable-shared
+ rs_do_command ../mpfr/configure --prefix="$rs_supportprefixdir"
--with-gmp="$rs_supportprefixdir" --disable-shared --disable-werror
rs_do_command $rs_makecmd -j $rs_cpucount
rs_do_command $rs_makecmd check
rs_do_command $rs_makecmd install
rs_clean_module "mpfr"
- export CFLAGS=""
+ unset CFLAGS
fi
if rs_prepare_module "binutils"; then
- # At least the GCC 4.4.1 in Ubuntu 9.10 incorrectly warns about a potentially
uninitialized variable, so don't count this as an error.
- export CFLAGS="$rs_host_cflags -Wno-error=uninitialized"
+ export CFLAGS="$rs_host_cflags"
- rs_do_command ../binutils/configure --prefix="$rs_prefixdir"
--target="$rs_target" --disable-nls
+ rs_do_command ../binutils/configure --prefix="$rs_prefixdir"
--target="$rs_target" --disable-nls --disable-werror
rs_do_command $rs_makecmd -j $rs_cpucount
rs_do_command $rs_makecmd install
rs_clean_module "binutils"
- export CFLAGS=""
+ unset CFLAGS
fi
if rs_prepare_module "gcc"; then
@@ -289,25 +295,25 @@
export CFLAGS_FOR_TARGET="$rs_target_cflags"
export CXXFLAGS_FOR_TARGET="$rs_target_cflags"
- rs_do_command ../gcc/configure --prefix="$rs_prefixdir"
--target="$rs_target" --with-gmp="$rs_supportprefixdir"
--with-mpfr="$rs_supportprefixdir" --enable-languages=c,c++
--enable-checking=release --enable-version-specific-runtime-libs --enable-threads=win32
--disable-win32-registry --disable-shared --disable-nls
+ rs_do_command ../gcc/configure --prefix="$rs_prefixdir"
--target="$rs_target" --with-gmp="$rs_supportprefixdir"
--with-mpfr="$rs_supportprefixdir" --with-pkgversion="RosBE-Unix
$ROSBE_VERSION" --enable-languages=c,c++ --enable-checking=release
--enable-version-specific-runtime-libs --disable-shared --disable-nls --disable-werror
rs_do_command $rs_makecmd -j $rs_cpucount
rs_do_command $rs_makecmd install
rs_clean_module "gcc"
- export CFLAGS=""
- export CFLAGS_FOR_TARGET=""
- export CXXFLAGS_FOR_TARGET=""
+ unset CFLAGS
+ unset CFLAGS_FOR_TARGET
+ unset CXXFLAGS_FOR_TARGET
fi
if rs_prepare_module "make"; then
export CFLAGS="$rs_host_cflags"
- rs_do_command ../make/configure --prefix="$installdir"
--disable-dependency-tracking --disable-nls --enable-case-insensitive-file-system
--disable-job-server --disable-rpath
+ rs_do_command ../make/configure --prefix="$installdir"
--disable-dependency-tracking --disable-nls --enable-case-insensitive-file-system
--disable-job-server --disable-rpath --disable-werror
rs_do_command $rs_makecmd -j $rs_cpucount
rs_do_command $rs_makecmd install
rs_clean_module "make"
- export CFLAGS=""
+ unset CFLAGS
fi
# NASM doesn't compile in a dedicated build directory, so just extract it
@@ -315,12 +321,12 @@
export CFLAGS="$rs_host_cflags"
cd "nasm"
- rs_do_command ./configure --prefix="$rs_prefixdir"
+ rs_do_command ./configure --prefix="$rs_prefixdir" --disable-werror
rs_do_command $rs_makecmd -j $rs_cpucount
rs_do_command $rs_makecmd install
rs_clean_module "nasm"
- export CFLAGS=""
+ unset CFLAGS
fi
# Final actions
Added: trunk/tools/RosBE/RosBE-Unix/Base-i386/tools/dummy.c
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/t…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/tools/dummy.c (added)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/tools/dummy.c [iso-8859-1] Mon Jan 25 21:11:29
2010
@@ -1,0 +1,2 @@
+int main() {return 0;}
+
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/tools/dummy.c
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/tools/RosBE/RosBE-Windows/Buildtoolchain/rosbe_1.5/buildtoolchain.sh
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Windows/Buildtoo…
==============================================================================
--- trunk/tools/RosBE/RosBE-Windows/Buildtoolchain/rosbe_1.5/buildtoolchain.sh
[iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Windows/Buildtoolchain/rosbe_1.5/buildtoolchain.sh
[iso-8859-1] Mon Jan 25 21:11:29 2010
@@ -2,7 +2,7 @@
#
# ReactOS Build Environment for Windows - Script for building a
binutils/GCC/mingw-runtime/w32api toolchain for Windows
# Partly based on RosBE-Unix' "RosBE-Builder.sh"
-# Copyright 2009 Colin Finck <colin(a)reactos.org>
+# Copyright 2009-2010 Colin Finck <colin(a)reactos.org>
#
# Released under GNU GPL v2 or any later version.
@@ -11,13 +11,13 @@
#
# This script was built for the following toolchain versions:
# - binutils 2.20.51-20091222 (snapshot)
-# - gcc 4.4.2
+# - gcc 4.4.3
# patched with:
# *
http://gcc.gnu.org/bugzilla/attachment.cgi?id=18882&action=view (committed
in GCC r153606)
-# - gmp 4.3.1
-# - mingw-runtime 3.16
+# - gmp 4.3.2
+# - mingw-runtime 3.17
# - mpfr 2.4.2
-# - w32api 3.13
+# - w32api 3.14
#
# These tools have to be compiled under MSYS with "gcc version 3.4.5 (mingw-vista
special r3)"
#
@@ -27,10 +27,10 @@
# RosBE Setup Variables
-rs_host_cflags="-pipe -fno-common -O3 -march=pentium3 -mfpmath=sse"
-rs_needed_tools="bison flex gcc g++ grep makeinfo" # GNU Make has a
special check
+rs_host_cflags="-pipe -fno-common -O2 -march=pentium3 -mfpmath=sse" #
-fno-common needed for native builds due to GCC 4.4 bug according to Dmitry Gorbachev
+rs_needed_tools="bison flex gcc g++ grep makeinfo" # GNU
Make has a special check
rs_target="mingw32"
-rs_target_cflags="-pipe -gstabs+ -O3 -march=pentium -mtune=i686"
+rs_target_cflags="-pipe -gstabs+ -O2 -march=pentium -mtune=i686"
# Get the absolute path to the script directory
cd `dirname $0`
@@ -151,20 +151,16 @@
# The "mingw_runtime_dev" package needed for RosBE-Unix is manually created
from the result of this build.
- export CFLAGS=""
- export C_INCLUDE_PATH=""
+ unset CFLAGS
+ unset C_INCLUDE_PATH
fi
if rs_prepare_module "gmp"; then
- export CFLAGS="$rs_host_cflags"
-
rs_do_command ../gmp/configure --prefix="$rs_supportprefixdir"
--host="$rs_target" --build="$rs_target" --disable-shared
--disable-werror
rs_do_command $rs_makecmd -j $rs_cpucount
rs_do_command $rs_makecmd check
rs_do_command $rs_makecmd install
rs_clean_module "gmp"
-
- export CFLAGS=""
fi
if rs_prepare_module "mpfr"; then
@@ -176,7 +172,7 @@
rs_do_command $rs_makecmd install
rs_clean_module "mpfr"
- export CFLAGS=""
+ unset CFLAGS
fi
if rs_prepare_module "binutils"; then
@@ -187,7 +183,7 @@
rs_do_command $rs_makecmd install
rs_clean_module "binutils"
- export CFLAGS=""
+ unset CFLAGS
fi
if rs_prepare_module "gcc"; then
@@ -198,17 +194,17 @@
export C_INCLUDE_PATH="$rs_prefixdir/$rs_target/include"
export LIBRARY_PATH="$rs_prefixdir/$rs_target/lib"
- rs_do_command ../gcc/configure --prefix="$rs_prefixdir"
--host="$rs_target" --build="$rs_target"
--target="$rs_target" --with-gmp="$rs_supportprefixdir"
--with-mpfr="$rs_supportprefixdir" --enable-languages=c,c++
--enable-checking=release --enable-version-specific-runtime-libs --enable-threads=win32
--disable-win32-registry --disable-shared --disable-nls --disable-werror
+ rs_do_command ../gcc/configure --prefix="$rs_prefixdir"
--host="$rs_target" --build="$rs_target"
--target="$rs_target" --with-gmp="$rs_supportprefixdir"
--with-mpfr="$rs_supportprefixdir" --with-pkgversion="RosBE-Windows"
--enable-languages=c,c++ --enable-checking=release --enable-version-specific-runtime-libs
--disable-win32-registry --disable-shared --disable-nls --disable-werror
rs_do_command $rs_makecmd profiledbootstrap
rs_do_command $rs_makecmd install
rs_clean_module "gcc"
- export STAGE1_CFLAGS=""
- export BOOT_CFLAGS=""
- export CFLAGS_FOR_TARGET=""
- export CXXFLAGS_FOR_TARGET=""
- export C_INCLUDE_PATH=""
- export LIBRARY_PATH=""
+ unset STAGE1_CFLAGS
+ unset BOOT_CFLAGS
+ unset CFLAGS_FOR_TARGET
+ unset CXXFLAGS_FOR_TARGET
+ unset C_INCLUDE_PATH
+ unset LIBRARY_PATH
fi
# Final actions