From 8822818ed1b4bd31caadca42f59bfb09e99b398c Mon Sep 17 00:00:00 2001 From: Colin Finck Date: Sun, 18 Aug 2019 16:05:59 +0200 Subject: [PATCH] [ROSBE-UNIX] Adapt RosBE-Windows Buildtoolchain's commands for building the new Binutils/GCC/Mingw-w64/... toolchain to RosBE-Builder.sh --- RosBE-Unix/Base-i386/README | 24 +++++------ RosBE-Unix/Base-i386/README.odt | Bin 86928 -> 86314 bytes RosBE-Unix/Base-i386/RosBE-Builder.sh | 59 ++++++++++---------------- 3 files changed, 35 insertions(+), 48 deletions(-) diff --git a/RosBE-Unix/Base-i386/README b/RosBE-Unix/Base-i386/README index b3ae5d5..abec760 100644 --- a/RosBE-Unix/Base-i386/README +++ b/RosBE-Unix/Base-i386/README @@ -99,21 +99,22 @@ Version Information This version of RosBE for Unix-based operating systems uses the following components: - * GNU Binutils v2.31.1 - compiled for mingw32 + * GNU Binutils v2.32 + compiled for i686-w64-mingw32 - * GCC, The GNU Compiler Collection v8.2.0 - compiled for mingw32 + * GCC, The GNU Compiler Collection v8.3.0 + compiled for i686-w64-mingw32 NOTE: This GCC version only supports C and C++ - * CMake 3.14.3 + * CMake 3.15.2 * GMP 6.1.2 - * Ninja 1.9.0 - * MinGW-Runtime 5.0.4 - * MPFR 4.0.2 - * W32api 5.0.4 + * Mingw-w64 6.0.0 * MPC 1.1.0 + * MPFR 4.0.2 + * Ninja 1.9.0 + patched with: + - https://raw.githubusercontent.com/reactos/RosBE/master/Patches/ninja-v1.9.0-Fix-MinGW-bootstrap-build.patch Tested Operating Systems @@ -130,9 +131,6 @@ x86_64 (64-bit) systems. Websites --------- -MinGW - Minimalist GNU for Windows -http://www.mingw.org - Binutils, the Binary Tools Collection https://www.gnu.org/software/binutils @@ -148,6 +146,8 @@ https://gmplib.org The GNU MPFR library http://www.mpfr.org +Mingw-w64 +https://mingw-w64.org Credits -------- diff --git a/RosBE-Unix/Base-i386/README.odt b/RosBE-Unix/Base-i386/README.odt index 5008ccab1aafeeae0bd3b490b8b07de293ca9175..517c2fc6d0975ba599154a19a8d51c595aa60f03 100644 GIT binary patch delta 23845 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%0AZzcQpma8#7$dNEnY#MYZ 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 delta 24403 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 diff --git a/RosBE-Unix/Base-i386/RosBE-Builder.sh b/RosBE-Unix/Base-i386/RosBE-Builder.sh index 4881695..d12d43e 100755 --- a/RosBE-Unix/Base-i386/RosBE-Builder.sh +++ b/RosBE-Unix/Base-i386/RosBE-Builder.sh @@ -26,7 +26,7 @@ fi # RosBE Setup Variables rs_host_cflags="-pipe -O2 -Wl,-S -g0" -rs_needed_tools="as bison flex $CC $CXX grep makeinfo python tar bzip2 find" # GNU Make has a special check +rs_needed_tools="as bison bzip2 find flex $CC $CXX grep makeinfo python re2c tar" # GNU Make has a special check rs_needed_libs="zlib" rs_target="i686-w64-mingw32" rs_target_cflags="-pipe -O2 -Wl,-S -g0 -march=pentium -mtune=i686" @@ -154,15 +154,9 @@ if [ "$1" = "" ]; then case "$choice" in "U"|"u") - # We only allow update from 2.1.2 to 2.2 - # For other releases: # We don't support update in this version due to lots of changes # To reenable updating, change this to "update=true" - if [ "$installed_version" = "2.1.2" ] && [ "$ROSBE_VERSION" = "2.2" ]; then - update=true - else - reinstall=true - fi + reinstall=true ;; "R"|"r") reinstall=true @@ -208,26 +202,17 @@ else fi if $update; then - # For 2.1.2 -> 2.2 - rs_process_gcc=true - rs_process_gmp=true - rs_process_ninja=true - rs_process_mingw_w64_headers=true - rs_process_mingw_w64_crt=true - rs_process_mpfr=true - rs_process_mpc=true + # No update supported for RosBE-Unix 2.2 due to lots of changes. + # Add this part back from older versions once we need to update again. + exit 1 else rs_process_binutils=true rs_process_buildtime=true rs_process_cmake=true rs_process_cpucount=true rs_process_gcc=true - rs_process_gmp=true + rs_process_mingw_w64=true rs_process_ninja=true - rs_process_mingw_w64_headers=true - rs_process_mingw_w64_crt=true - rs_process_mpfr=true - rs_process_mpc=true rs_process_scut=true if $reinstall; then @@ -311,17 +296,16 @@ if rs_prepare_module "binutils"; then fi fi -if rs_prepare_module "mingw_w64_headers"; then +if rs_prepare_module "mingw_w64"; then if [ $use_cflags -eq 0 ]; then export CFLAGS="$rs_host_cflags" fi - rs_do_command ../mingw_w64_headers/configure --prefix="$rs_archprefixdir/$rs_target" --host="$rs_target" + rs_do_command ../mingw_w64/mingw-w64-headers/configure --prefix="$rs_archprefixdir/$rs_target" --host="$rs_target" rs_do_command $rs_makecmd -j $rs_cpucount rs_do_command $rs_makecmd install rs_do_command ln -s -f $rs_archprefixdir/$rs_target $rs_archprefixdir/mingw - rs_do_command mkdir -p $rs_archprefixdir/$rs_target/lib - rs_clean_module "mingw_w64_headers" + rs_clean_module "mingw_w64" if [ $use_cflags -eq 0 ]; then unset CFLAGS @@ -339,28 +323,26 @@ if rs_prepare_module "gcc"; then cd ../gcc-build - rs_do_command ln -s "$rs_archprefixdir" ../gcc/winsup - export old_path=$PATH export PATH="$PATH:$rs_archprefixdir/bin" export CFLAGS_FOR_TARGET="$rs_target_cflags" export CXXFLAGS_FOR_TARGET="$rs_target_cflags" - rs_do_command ../gcc/configure --target="$rs_target" --prefix="$rs_archprefixdir" --with-sysroot="$rs_archprefixdir" --with-pkgversion="RosBE-Unix" --enable-languages=c,c++ --enable-fully-dynamic-string --enable-checking=release --enable-version-specific-runtime-libs --enable-plugins --disable-shared --disable-multilib --disable-nls --disable-werror --disable-sjlj-exceptions --with-gnu-ld --with-gnu-as + rs_do_command ../gcc/configure --target="$rs_target" --prefix="$rs_archprefixdir" --with-sysroot="$rs_archprefixdir" --with-pkgversion="RosBE-Windows" --enable-languages=c,c++ --enable-fully-dynamic-string --enable-checking=release --enable-version-specific-runtime-libs --enable-plugins --disable-shared --disable-multilib --disable-nls --disable-werror --disable-win32-registry --disable-sjlj-exceptions --disable-libstdcxx-verbose rs_do_command $rs_makecmd -j $rs_cpucount all-gcc rs_do_command $rs_makecmd install-gcc rs_do_command_can_fail $rs_makecmd install-lto-plugin - if rs_prepare_module "mingw_w64_crt"; then + if rs_prepare_module "mingw_w64"; then if [ $use_cflags -eq 0 ]; then export CFLAGS="$rs_host_cflags" fi - rs_do_command ../mingw_w64_crt/configure --prefix="$rs_archprefixdir/$rs_target" --with-sysroot="$rs_archprefixdir/$rs_target" --host="$rs_target" + rs_do_command ../mingw_w64/mingw-w64-crt/configure --prefix="$rs_archprefixdir/$rs_target" --with-sysroot="$rs_archprefixdir/$rs_target" --host="$rs_target" rs_do_command $rs_makecmd -j $rs_cpucount rs_do_command $rs_makecmd install - rs_clean_module "mingw_w64_crt" + rs_clean_module "mingw_w64" if [ $use_cflags -eq 0 ]; then unset CFLAGS @@ -387,15 +369,21 @@ if rs_prepare_module "ninja"; then if [ $use_cflags -eq 0 ]; then export CFLAGS="$rs_host_cflags" fi + + export old_path=$PATH + export PATH=".:$PATH" + rs_do_command cd ../ninja rs_do_command ./configure.py --bootstrap - rs_do_command cd ../ninja-build - rs_do_command install ../ninja/ninja $rs_prefixdir/bin/ninja + rs_do_command install ninja "$rs_prefixdir/bin" rs_clean_module "ninja" if [ $use_cflags -eq 0 ]; then unset CFLAGS fi + + export PATH=$old_path + unset old_path fi # Final actions @@ -407,8 +395,9 @@ cd "$rs_prefixdir" rm -rf doc man share/info share/man cd "$rs_archprefixdir" -rm -rf $rs_target/doc $rs_target/share include info man share +rm -rf $rs_target/doc $rs_target/share include info man mingw share rm -f lib/* >& /dev/null +##### END almost shared buildtoolchain/RosBE-Unix building part ############### # See: https://jira.reactos.org/browse/ROSBE-35 osname=`uname` @@ -434,8 +423,6 @@ if [ "$osname" != "Darwin" ]; then $rs_archprefixdir/bin/i686-w64-mingw32-objcopy --add-gnu-debuglink=$exe.dbg $exe 2>/dev/null done fi -##### END almost shared buildtoolchain/RosBE-Unix building part ############### - echo "Copying scripts..." cp -R "$rs_scriptdir/scripts/"* "$installdir"