diff --git a/README.md b/README.md index 6bef4b0e..f3671faf 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,7 @@ At the moment, successfully building the following versions: gcc-10.2.0 gcc-10.3.0 gcc-10.4.0 + gcc-10.5.0 gcc-11.1.0 gcc-11.2.0 gcc-11.3.0 @@ -143,7 +144,7 @@ At the moment, successfully building the following versions: gcc-7-branch (currently 7.5.1 prerelease) gcc-8-branch (currently 8.5.1 prerelease) gcc-9-branch (currently 9.5.1-prerelease) - gcc-10-branch (currently 10.4.1-prerelease) + gcc-10-branch (currently 10.5.1-prerelease) gcc-11-branch (currently 11.4.1-prerelease) gcc-12-branch (currently 12.3.1-prerelease) gcc-13-branch (currently 13.1.1-prerelease) diff --git a/build b/build index dfc30daf..3d19b5b8 100755 --- a/build +++ b/build @@ -162,7 +162,8 @@ readonly RUN_ARGS="$@" echo " gcc-10.2.0 (10.2.0 release)" echo " gcc-10.3.0 (10.3.0 release)" echo " gcc-10.4.0 (10.4.0 release)" - echo " gcc-10-branch (currently 10.4.1-prerelease)" + echo " gcc-10.5.0 (10.5.0 release)" + echo " gcc-10-branch (currently 10.5.1-prerelease)" echo " gcc-11.1.0 (11.1.0 release)" echo " gcc-11.2.0 (11.2.0 release)" echo " gcc-11.3.0 (11.3.0 release)" diff --git a/library/functions.sh b/library/functions.sh index 5f3268d1..4a195533 100644 --- a/library/functions.sh +++ b/library/functions.sh @@ -973,7 +973,7 @@ function func_map_gcc_name_to_gcc_version { gcc-7-branch) echo "7.5.1" ;; gcc-8-branch) echo "8.5.1" ;; gcc-9-branch) echo "9.5.1" ;; - gcc-10-branch) echo "10.4.1" ;; + gcc-10-branch) echo "10.5.1" ;; gcc-11-branch) echo "11.4.1" ;; gcc-12-branch) echo "12.3.1" ;; gcc-13-branch) echo "13.1.1" ;; diff --git a/scripts/gcc-10-branch.sh b/scripts/gcc-10-branch.sh index 4a2cdcb4..5e861320 100644 --- a/scripts/gcc-10-branch.sh +++ b/scripts/gcc-10-branch.sh @@ -61,6 +61,12 @@ PKG_PATCHES=( gcc/gcc-10-ktietz-libgomp.patch gcc/gcc-libgomp-ftime64.patch gcc/0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch + gcc/gcc-10.4.0-libiberty-pic-and-jit-shared.patch + gcc/c51f1e7427e6a5ae2a6d82b5a790df77a3adc99a.patch + $( [[ $RUNTIME_MAJOR_VERSION -ge 10 ]] \ + && echo "gcc/0001-gcc-config-i386-mingw32.h-Ensure-lmsvcrt-precede-lke.patch" \ + ) + gcc/gcc-11-replace-abort-with-fancy_abort.patch ) # diff --git a/scripts/gcc-10.5.0.sh b/scripts/gcc-10.5.0.sh new file mode 100644 index 00000000..22ece7ae --- /dev/null +++ b/scripts/gcc-10.5.0.sh @@ -0,0 +1,162 @@ + +# +# The BSD 3-Clause License. http://www.opensource.org/licenses/BSD-3-Clause +# +# This file is part of MinGW-W64(mingw-builds: https://github.com/niXman/mingw-builds) project. +# Copyright (c) 2011-2023 by niXman (i dotty nixman doggy gmail dotty com) +# Copyright (c) 2012-2015 by Alexpux (alexpux doggy gmail dotty com) +# All rights reserved. +# +# Project: MinGW-Builds ( https://github.com/niXman/mingw-builds ) +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the distribution. +# - Neither the name of the 'MinGW-W64' nor the names of its contributors may +# be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# ************************************************************************** + +PKG_VERSION=10.5.0 +PKG_NAME=gcc-${PKG_VERSION} +PKG_DIR_NAME=gcc-${PKG_VERSION} +PKG_TYPE=.tar.xz +PKG_URLS=( + "https://ftpmirror.gnu.org/gnu/gcc/gcc-${PKG_VERSION}/gcc-${PKG_VERSION}${PKG_TYPE}" +) + +PKG_PRIORITY=main + +# + +PKG_PATCHES=( + gcc/gcc-4.7-stdthreads.patch + gcc/gcc-5.1-iconv.patch + gcc/gcc-4.8-libstdc++export.patch + gcc/gcc-4.8.2-fix-for-windows-not-minding-non-existant-parent-dirs.patch + gcc/gcc-4.8.2-windows-lrealpath-no-force-lowercase-nor-backslash.patch + gcc/gcc-4.9.1-enable-shared-gnat-implib.mingw.patch + gcc/gcc-5.1.0-make-xmmintrin-header-cplusplus-compatible.patch + gcc/gcc-5.2-fix-mingw-pch.patch + gcc/gcc-5-dwarf-regression.patch + gcc/gcc-5.1.0-fix-libatomic-building-for-threads=win32.patch + gcc/gcc-10-ktietz-libgomp.patch + gcc/gcc-libgomp-ftime64.patch + gcc/0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch + gcc/gcc-10.4.0-libiberty-pic-and-jit-shared.patch + gcc/c51f1e7427e6a5ae2a6d82b5a790df77a3adc99a.patch + $( [[ $RUNTIME_MAJOR_VERSION -ge 10 ]] \ + && echo "gcc/0001-gcc-config-i386-mingw32.h-Ensure-lmsvcrt-precede-lke.patch" \ + ) + gcc/gcc-11-replace-abort-with-fancy_abort.patch +) + +# + +PKG_CONFIGURE_FLAGS=( + --host=$HOST + --build=$BUILD + --target=$TARGET + # + --prefix=$MINGWPREFIX + --with-sysroot=$PREFIX + #--with-gxx-include-dir=$MINGWPREFIX/$TARGET/include/c++ + # + $LINK_TYPE_GCC + # + $( [[ $USE_MULTILIB == yes ]] \ + && echo "--enable-targets=all --enable-multilib" \ + || echo "--disable-multilib" \ + ) + $( [[ "$DISABLE_GCC_LTO" == yes ]] \ + && echo "--enable-languages=$ENABLE_LANGUAGES" \ + || echo "--enable-languages=$ENABLE_LANGUAGES,lto" + ) + --enable-libstdcxx-time=yes + --enable-threads=$THREADS_MODEL + --enable-libgomp + --enable-libatomic + $( [[ "$MSVCRT_PHOBOS_OK" == yes && "$D_LANG_ENABLED" == yes ]] \ + && echo "--enable-libphobos" + ) + $( [[ "$DISABLE_GCC_LTO" == yes ]] \ + && echo "--disable-lto" \ + || echo "--enable-lto" + ) + --enable-graphite + --enable-checking=release + --enable-fully-dynamic-string + --enable-version-specific-runtime-libs + --enable-libstdcxx-filesystem-ts=yes + $( [[ $EXCEPTIONS_MODEL == dwarf ]] \ + && echo "--disable-sjlj-exceptions --with-dwarf2" \ + ) + $( [[ $EXCEPTIONS_MODEL == sjlj ]] \ + && echo "--enable-sjlj-exceptions" \ + ) + # + --disable-libstdcxx-pch + --disable-libstdcxx-debug + $( [[ $BOOTSTRAPING == yes ]] \ + && echo "--enable-bootstrap" \ + || echo "--disable-bootstrap" \ + ) + --disable-rpath + --disable-win32-registry + --disable-nls + --disable-werror + --disable-symvers + # + --with-gnu-as + --with-gnu-ld + # + $PROCESSOR_OPTIMIZATION + $PROCESSOR_TUNE + # + --with-libiconv + --with-system-zlib + --with-{gmp,mpfr,mpc,isl}=$PREREQ_DIR/$HOST-$LINK_TYPE_SUFFIX + --with-pkgversion="\"$BUILD_ARCHITECTURE-$THREADS_MODEL-$EXCEPTIONS_MODEL${REV_STRING}, $MINGW_W64_PKG_STRING\"" + --with-bugurl=$BUG_URL + # + CFLAGS="\"$COMMON_CFLAGS\"" + CXXFLAGS="\"$COMMON_CXXFLAGS\"" + CPPFLAGS="\"$COMMON_CPPFLAGS\"" + LDFLAGS="\"$COMMON_LDFLAGS $( [[ $BUILD_ARCHITECTURE == i686 ]] && echo -Wl,--large-address-aware )\"" + LD_FOR_TARGET=$PREFIX/bin/ld.exe +) + +# + +PKG_MAKE_FLAGS=( + -j$JOBS + all +) + +# + +PKG_INSTALL_FLAGS=( + -j1 + DESTDIR=$BASE_BUILD_DIR + $( [[ $STRIP_ON_INSTALL == yes ]] && echo install-strip || echo install ) +) + +# **************************************************************************