Skip to content

Commit

Permalink
Add gcc 11.5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
starg2 committed Aug 25, 2024
1 parent e8726e6 commit 1e6bcbf
Show file tree
Hide file tree
Showing 6 changed files with 220 additions and 4 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ At the moment, successfully building the following versions:
gcc-11.2.0
gcc-11.3.0
gcc-11.4.0
gcc-11.5.0
gcc-12.1.0
gcc-12.2.0
gcc-12.3.0
Expand All @@ -150,7 +151,7 @@ At the moment, successfully building the following versions:
gcc-8-branch (currently 8.5.1 prerelease)
gcc-9-branch (currently 9.5.1-prerelease)
gcc-10-branch (currently 10.5.1-prerelease)
gcc-11-branch (currently 11.4.1-prerelease)
gcc-11-branch (currently 11.5.1-prerelease)
gcc-12-branch (currently 12.4.1-prerelease)
gcc-13-branch (currently 13.3.1-prerelease)
gcc-14-branch (currently 14.2.1-prerelease)
Expand Down
3 changes: 2 additions & 1 deletion build
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,8 @@ readonly RUN_ARGS="$@"
echo " gcc-11.2.0 (11.2.0 release)"
echo " gcc-11.3.0 (11.3.0 release)"
echo " gcc-11.4.0 (11.4.0 release)"
echo " gcc-11-branch (currently 11.4.1-prerelease)"
echo " gcc-11.5.0 (11.5.0 release)"
echo " gcc-11-branch (currently 11.5.1-prerelease)"
echo " gcc-12.1.0 (12.1.0 release)"
echo " gcc-12.2.0 (12.2.0 release)"
echo " gcc-12.3.0 (12.3.0 release)"
Expand Down
2 changes: 1 addition & 1 deletion library/functions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -994,7 +994,7 @@ function func_map_gcc_name_to_gcc_version {
gcc-8-branch) echo "8.5.1" ;;
gcc-9-branch) echo "9.5.1" ;;
gcc-10-branch) echo "10.5.1" ;;
gcc-11-branch) echo "11.4.1" ;;
gcc-11-branch) echo "11.5.1" ;;
gcc-12-branch) echo "12.4.1" ;;
gcc-13-branch) echo "13.3.1" ;;
gcc-14-branch) echo "14.2.1" ;;
Expand Down
58 changes: 58 additions & 0 deletions patches/gcc/gcc-11.5.0-ktietz-libgomp.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
diff --git a/libgomp/team.c b/libgomp/team.c
index 82f26a05687..a5cdd99f4f7 100644
--- a/libgomp/team.c
+++ b/libgomp/team.c
@@ -171,7 +171,7 @@ gomp_new_team (unsigned nthreads)
{
size_t extra = sizeof (team->ordered_release[0])
+ sizeof (team->implicit_task[0]);
- team = team_malloc (sizeof (*team) + nthreads * extra);
+ team = gomp_malloc_cleared (sizeof (*team) + nthreads * extra);

#ifndef HAVE_SYNC_BUILTINS
gomp_mutex_init (&team->work_share_list_free_lock);
@@ -1095,7 +1095,7 @@ struct gomp_task_icv *
gomp_new_icv (void)
{
struct gomp_thread *thr = gomp_thread ();
- struct gomp_task *task = gomp_malloc (sizeof (struct gomp_task));
+ struct gomp_task *task = gomp_malloc_cleared (sizeof (struct gomp_task));
gomp_init_task (task, NULL, &gomp_global_icv);
thr->task = task;
#ifdef LIBGOMP_USE_PTHREADS
diff --git a/libgomp/testsuite/config/default.exp b/libgomp/testsuite/config/default.exp
index 01569e6ab62..c1ea978bd52 100644
--- a/libgomp/testsuite/config/default.exp
+++ b/libgomp/testsuite/config/default.exp
@@ -13,3 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
+
+# Support for old dejagnu. Must be loaded here, not in libstdc++.exp, to
+# make sure all existing procs are loaded when their presence is tested.
+load_file $srcdir/../../gcc/testsuite/lib/dejapatches.exp
diff --git a/libgomp/work.c b/libgomp/work.c
index 6817da8b4de..365d52de676 100644
--- a/libgomp/work.c
+++ b/libgomp/work.c
@@ -85,6 +85,7 @@ alloc_work_share (struct gomp_team *team)
#else
ws = gomp_malloc (team->work_share_chunk * sizeof (struct gomp_work_share));
#endif
+ memset (ws, 0, team->work_share_chunk * sizeof (struct gomp_work_share));
ws->next_alloc = team->work_shares[0].next_alloc;
team->work_shares[0].next_alloc = ws;
team->work_share_list_alloc = &ws[1];
@@ -191,7 +192,7 @@ gomp_work_share_start (size_t ordered)
/* Work sharing constructs can be orphaned. */
if (team == NULL)
{
- ws = gomp_malloc (sizeof (*ws));
+ ws = gomp_malloc_cleared (sizeof (*ws));
gomp_init_work_share (ws, ordered, 1);
thr->ts.work_share = ws;
return true;
--
2.26.0.windows.1

5 changes: 4 additions & 1 deletion scripts/gcc-11-branch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,11 @@ PKG_PATCHES=(
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-11.5.0-ktietz-libgomp.patch
gcc/gcc-libgomp-ftime64.patch
gcc/0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch
gcc/gcc-10-libgcc-ldflags.patch
gcc/gcc-11-replace-abort-with-fancy_abort.patch
)

#
Expand Down Expand Up @@ -136,6 +138,7 @@ PKG_CONFIGURE_FLAGS=(
CPPFLAGS="$COMMON_CPPFLAGS"
LDFLAGS="$COMMON_LDFLAGS $( [[ $BUILD_ARCHITECTURE == i686 ]] && echo -Wl,--large-address-aware )"
LD_FOR_TARGET=$PREFIX/bin/ld.exe
--with-boot-ldflags="\"$LDFLAGS -Wl,--disable-dynamicbase -static-libstdc++ -static-libgcc\""
)

#
Expand Down
153 changes: 153 additions & 0 deletions scripts/gcc-11.5.0.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@

#
# 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=11.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-11.5.0-ktietz-libgomp.patch
gcc/gcc-libgomp-ftime64.patch
gcc/0020-libgomp-Don-t-hard-code-MS-printf-attributes.patch
gcc/gcc-10-libgcc-ldflags.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" \
)
--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"
)
--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
--with-boot-ldflags="\"$LDFLAGS -Wl,--disable-dynamicbase -static-libstdc++ -static-libgcc\""
)

#

PKG_MAKE_FLAGS=(
-j$JOBS
all
)

#

PKG_INSTALL_FLAGS=(
-j1
DESTDIR=$BASE_BUILD_DIR
$( [[ $STRIP_ON_INSTALL == yes ]] && echo install-strip || echo install )
)

# **************************************************************************

0 comments on commit 1e6bcbf

Please sign in to comment.