Compare commits
5 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
156d5b7d7e | ||
|
|
d5b90f270e | ||
|
|
4dfdcb3881 | ||
|
|
66c6b17f83 | ||
|
|
f02792836a |
5 changed files with 222 additions and 81 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
|
@ -15,9 +15,4 @@
|
|||
/gcc-11.3.0.tar.xz
|
||||
/gcc-12.1.0.tar.xz
|
||||
/gcc-12.2.0.tar.xz
|
||||
/gcc-12.3.0.tar.xz
|
||||
/gcc-13.1.0.tar.xz
|
||||
/gcc-13.2.0.tar.xz
|
||||
/gcc-14.1.0.tar.xz
|
||||
/gcc-15.1.0.tar.xz
|
||||
/gcc-15.2.0.tar.xz
|
||||
/gcc-12.4.0.tar.xz
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
%global processor_arch arm
|
||||
%global target %{processor_arch}-none-eabi
|
||||
%global gcc_ver %{version}
|
||||
%global gcc_short_ver 15.1
|
||||
%global gcc_ver 12.4.0
|
||||
%global gcc_short_ver 12.4
|
||||
|
||||
# we need newlib to compile complete gcc, but we need gcc to compile newlib,
|
||||
# so compile minimal gcc first
|
||||
|
|
@ -9,19 +9,34 @@
|
|||
|
||||
Name: %{target}-gcc-cs
|
||||
Epoch: 1
|
||||
Version: 15.2.0
|
||||
Release: 2%{?dist}
|
||||
Version: 12.4.0
|
||||
Release: 1%{?dist}
|
||||
Summary: GNU GCC for cross-compilation for %{target} target
|
||||
License: GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-2.0-or-later AND MIT AND BSD-2-Clause
|
||||
|
||||
# Most of the sources are licensed under GPLv3+ with these exceptions:
|
||||
# LGPLv2+ libquadmath/ libjava/libltdl/ gcc/testsuite/objc.dg/gnu-encoding/generate-random
|
||||
# libgcc/soft-fp/ libffi/msvcc.sh
|
||||
# LGPLv3+ gcc/prefix.c
|
||||
# BSD libgo/go/regexp/testdata/testregex.cz zlib/example.c libffi/
|
||||
# libjava/classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/DatatypeLibraryLoader.java
|
||||
# GPLv2+ libitm/testsuite/libitm.c/memset-1.c libjava/
|
||||
# Public Domain libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java
|
||||
# libjava/classpath/external/sax/org/xml/sax/ext/DeclHandler.java
|
||||
# BSL zlib/contrib/dotzlib/DotZLib/GZipStream.cs
|
||||
License: GPLv2+ and GPLv3+ and LGPLv2+ and BSD
|
||||
URL: https://gcc.gnu.org/
|
||||
|
||||
Source0: http://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.xz
|
||||
|
||||
Source1: README.fedora
|
||||
Source2: bootstrapexplain
|
||||
|
||||
Patch1: gcc12-hack.patch
|
||||
Patch2: gcc12-Wno-format-security.patch
|
||||
|
||||
#BuildRequires: autoconf = 2.69
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: %{target}-binutils >= 2.21, zlib-devel gmp-devel mpfr-devel libmpc-devel flex autogen
|
||||
BuildRequires: %{target}-binutils >= 2.21, zlib-devel gmp-devel mpfr-devel libmpc-devel flex
|
||||
%if ! %{bootstrap}
|
||||
BuildRequires: %{target}-newlib
|
||||
BuildRequires: make
|
||||
|
|
@ -29,12 +44,6 @@ BuildRequires: make
|
|||
Requires: %{target}-binutils >= 2.21
|
||||
Provides: %{target}-gcc = %{gcc_ver}
|
||||
|
||||
%if 0%{?fedora} > 39
|
||||
# as per https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
|
||||
# ppl-devel is no longer available for 32bit, so we have to skip it too
|
||||
ExcludeArch: %{ix86}
|
||||
%endif
|
||||
|
||||
%description
|
||||
This is a Cross Compiling version of GNU GCC, which can be used to
|
||||
compile for the %{target} platform, instead of for the
|
||||
|
|
@ -52,9 +61,16 @@ compile c++ code for the %{target} platform, instead of for the native
|
|||
|
||||
%prep
|
||||
%setup -q -c
|
||||
pushd gcc-%{gcc_ver}
|
||||
%patch -P 1 -p0 -b .hack
|
||||
%patch -P 2 -p0 -b .wnosecerr
|
||||
popd
|
||||
pushd gcc-%{gcc_ver}/libiberty
|
||||
#autoconf -f
|
||||
popd
|
||||
pushd gcc-%{gcc_ver}/intl
|
||||
#autoconf -f
|
||||
popd
|
||||
pushd gcc-%{gcc_ver}
|
||||
|
||||
contrib/gcc_update --touch
|
||||
|
|
@ -287,71 +303,17 @@ popd
|
|||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 1:15.2.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
||||
* Wed Sep 11 2024 Michal Hlavinka <mhlavink@redhat.com> - 1:12.4.0-1
|
||||
- updated to 12.4.0
|
||||
|
||||
* Thu Sep 18 2025 Michal Hlavinka <mhlavink@redhat.com> - 1:15.2.0-1
|
||||
- updated to 15.2.0
|
||||
* Sun Oct 30 2022 Michal Hlavinka <mhlavink@redhat.com> - 1:12.2.0-4
|
||||
- full build
|
||||
|
||||
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1:15.1.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
* Wed Oct 26 2022 Michal Hlavinka <mhlavink@redhat.com> - 1:12.2.0-3
|
||||
- autogen does not seem to be required anymore
|
||||
|
||||
* Wed May 21 2025 Michal Hlavinka <mhlavink@redhat.com> - 1:15.1.0-2
|
||||
- rebuild with refreshed newlib library
|
||||
|
||||
* Mon May 19 2025 Michal Hlavinka <mhlavink@redhat.com> - 1:15.1.0-1
|
||||
- updated to 15.1.0
|
||||
|
||||
* Tue Apr 15 2025 Michal Hlavinka <mhlavink@redhat.com> - 1:14.1.0-4
|
||||
- rebuild for new arm-none-eabi-newlib
|
||||
|
||||
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1:14.1.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:14.1.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Wed May 22 2024 Michal Hlavinka <mhlavink@redhat.com> - 1:14.1.0-1
|
||||
- full build of gcc 14.1
|
||||
|
||||
* Wed May 22 2024 Michal Hlavinka <mhlavink@redhat.com> - 1:14.1.0-0
|
||||
- updated to 14.1.0, bootstrap build, do not use
|
||||
|
||||
* Tue Mar 19 2024 Michal Hlavinka <mhlavink@redhat.com> - 1:13.2.0-5
|
||||
- drop i686 build as not all i686 requirements are available anymore
|
||||
|
||||
* Tue Mar 19 2024 Michal Hlavinka <mhlavink@redhat.com> - 1:13.2.0-4
|
||||
- rebuild with updated newlib
|
||||
|
||||
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:13.2.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:13.2.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Tue Aug 29 2023 Michal Hlavinka <mhlavink@redhat.com> - 1:13.2.0-1
|
||||
- updated to 13.2.0
|
||||
|
||||
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:13.1.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Wed Jul 12 2023 Michal Hlavinka <mhlavink@redhat.com> - 1:13.1.0-1
|
||||
- updated to 13.1.0
|
||||
|
||||
* Wed May 24 2023 Michal Hlavinka <mhlavink@redhat.com> - 1:12.3.0-1
|
||||
- updated to 12.3.0
|
||||
|
||||
* Wed May 10 2023 Michal Hlavinka <mhlavink@redhat.com> - 1:12.2.0-5
|
||||
- update license tag format (SPDX migration) for https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1
|
||||
|
||||
* Wed Apr 12 2023 Michal Hlavinka <mhlavink@redhat.com> - 1:12.2.0-4
|
||||
- rebuild for updated newlib package
|
||||
|
||||
* Thu Jan 19 2023 Florian Weimer <fweimer@redhat.com> - 1:12.2.0-3
|
||||
- Backport upstream patches for improved C99 compatibility
|
||||
|
||||
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:12.2.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
* Tue Oct 25 2022 Michal Hlavinka <mhlavink@redhat.com> - 1:12.2.0-2
|
||||
- bootstrap build (do not use)
|
||||
|
||||
* Tue Aug 23 2022 Michal Hlavinka <mhlavink@redhat.com> - 1:12.2.0-1
|
||||
- updated to 12.2.0
|
||||
|
|
|
|||
58
gcc12-Wno-format-security.patch
Normal file
58
gcc12-Wno-format-security.patch
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
2022-01-07 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* Makefile.tpl (GOCFLAGS, GDCFLAGS): Filter out -Wformat-security.
|
||||
* Makefile.in: Regenerated.
|
||||
|
||||
2017-02-25 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* configure.ac: When adding -Wno-format, also add -Wno-format-security.
|
||||
* configure: Regenerated.
|
||||
|
||||
--- gcc/configure.ac.jj 2017-02-13 12:20:53.000000000 +0100
|
||||
+++ gcc/configure.ac 2017-02-25 12:42:32.859175403 +0100
|
||||
@@ -570,7 +570,7 @@ AC_ARG_ENABLE(build-format-warnings,
|
||||
AS_HELP_STRING([--disable-build-format-warnings],[don't use -Wformat while building GCC]),
|
||||
[],[enable_build_format_warnings=yes])
|
||||
AS_IF([test $enable_build_format_warnings = no],
|
||||
- [wf_opt=-Wno-format],[wf_opt=])
|
||||
+ [wf_opt="-Wno-format -Wno-format-security"],[wf_opt=])
|
||||
ACX_PROG_CXX_WARNING_OPTS(
|
||||
m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings ],
|
||||
[-Wcast-qual $wf_opt])),
|
||||
--- gcc/configure.jj 2017-02-13 12:20:52.000000000 +0100
|
||||
+++ gcc/configure 2017-02-25 12:42:50.041946391 +0100
|
||||
@@ -7077,7 +7077,7 @@ else
|
||||
fi
|
||||
|
||||
if test $enable_build_format_warnings = no; then :
|
||||
- wf_opt=-Wno-format
|
||||
+ wf_opt="-Wno-format -Wno-format-security"
|
||||
else
|
||||
wf_opt=
|
||||
fi
|
||||
--- Makefile.tpl.jj 2021-12-30 15:12:42.188164847 +0100
|
||||
+++ Makefile.tpl 2022-01-07 12:06:12.115550714 +0100
|
||||
@@ -447,8 +447,8 @@ LDFLAGS = @LDFLAGS@
|
||||
LIBCFLAGS = $(CFLAGS)
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
|
||||
-GOCFLAGS = $(CFLAGS)
|
||||
-GDCFLAGS = $(CFLAGS)
|
||||
+GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
+GDCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
|
||||
# Pass additional PGO and LTO compiler options to the PGO build.
|
||||
BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
|
||||
--- Makefile.in.jj 2021-12-30 15:12:42.188164847 +0100
|
||||
+++ Makefile.in 2022-01-07 12:06:27.335334561 +0100
|
||||
@@ -444,8 +444,8 @@ LDFLAGS = @LDFLAGS@
|
||||
LIBCFLAGS = $(CFLAGS)
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
|
||||
-GOCFLAGS = $(CFLAGS)
|
||||
-GDCFLAGS = $(CFLAGS)
|
||||
+GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
+GDCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
|
||||
|
||||
# Pass additional PGO and LTO compiler options to the PGO build.
|
||||
BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
|
||||
126
gcc12-hack.patch
Normal file
126
gcc12-hack.patch
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
--- libada/Makefile.in.jj 2019-01-09 13:01:18.015608205 +0100
|
||||
+++ libada/Makefile.in 2019-01-11 18:16:23.441726931 +0100
|
||||
@@ -71,18 +71,40 @@ version := $(shell @get_gcc_base_ver@ $(
|
||||
libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR)
|
||||
ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
|
||||
|
||||
+DEFAULTMULTIFLAGS :=
|
||||
+ifeq ($(MULTISUBDIR),)
|
||||
+targ:=$(subst -, ,$(target))
|
||||
+arch:=$(word 1,$(targ))
|
||||
+ifeq ($(words $(targ)),2)
|
||||
+osys:=$(word 2,$(targ))
|
||||
+else
|
||||
+osys:=$(word 3,$(targ))
|
||||
+endif
|
||||
+ifeq ($(strip $(filter-out i%86 x86_64 powerpc% ppc% s390% sparc% linux%, $(arch) $(osys))),)
|
||||
+ifeq ($(shell $(CC) $(CFLAGS) -print-multi-os-directory),../lib64)
|
||||
+DEFAULTMULTIFLAGS := -m64
|
||||
+else
|
||||
+ifeq ($(strip $(filter-out s390%, $(arch))),)
|
||||
+DEFAULTMULTIFLAGS := -m31
|
||||
+else
|
||||
+DEFAULTMULTIFLAGS := -m32
|
||||
+endif
|
||||
+endif
|
||||
+endif
|
||||
+endif
|
||||
+
|
||||
# exeext should not be used because it's the *host* exeext. We're building
|
||||
# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus
|
||||
# definitions just in case something slips through the safety net provided
|
||||
# by recursive make invocations in gcc/ada/Makefile.in
|
||||
LIBADA_FLAGS_TO_PASS = \
|
||||
"MAKEOVERRIDES=" \
|
||||
- "LDFLAGS=$(LDFLAGS)" \
|
||||
+ "LDFLAGS=$(LDFLAGS) $(DEFAULTMULTIFLAGS)" \
|
||||
"LN_S=$(LN_S)" \
|
||||
"SHELL=$(SHELL)" \
|
||||
- "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
|
||||
- "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
|
||||
- "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
|
||||
+ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
|
||||
+ "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
|
||||
+ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
|
||||
"PICFLAG_FOR_TARGET=$(PICFLAG)" \
|
||||
"THREAD_KIND=$(THREAD_KIND)" \
|
||||
"TRACE=$(TRACE)" \
|
||||
@@ -93,7 +115,7 @@ LIBADA_FLAGS_TO_PASS = \
|
||||
"exeext=.exeext.should.not.be.used " \
|
||||
'CC=the.host.compiler.should.not.be.needed' \
|
||||
"GCC_FOR_TARGET=$(CC)" \
|
||||
- "CFLAGS=$(CFLAGS)"
|
||||
+ "CFLAGS=$(CFLAGS) $(DEFAULTMULTIFLAGS)"
|
||||
|
||||
.PHONY: libada gnatlib gnatlib-shared gnatlib-sjlj gnatlib-zcx osconstool
|
||||
|
||||
--- config-ml.in.jj 2019-01-09 12:50:16.646501448 +0100
|
||||
+++ config-ml.in 2019-01-11 18:16:23.442726914 +0100
|
||||
@@ -511,6 +511,8 @@ multi-do:
|
||||
ADAFLAGS="$(ADAFLAGS) $${flags}" \
|
||||
prefix="$(prefix)" \
|
||||
exec_prefix="$(exec_prefix)" \
|
||||
+ mandir="$(mandir)" \
|
||||
+ infodir="$(infodir)" \
|
||||
GOCFLAGS="$(GOCFLAGS) $${flags}" \
|
||||
GDCFLAGS="$(GDCFLAGS) $${flags}" \
|
||||
CXXFLAGS="$(CXXFLAGS) $${flags}" \
|
||||
--- libcpp/macro.cc.jj 2019-01-09 13:01:21.420552123 +0100
|
||||
+++ libcpp/macro.cc 2019-01-11 18:18:17.736876285 +0100
|
||||
@@ -3256,8 +3256,6 @@ static cpp_macro *
|
||||
create_iso_definition (cpp_reader *pfile)
|
||||
{
|
||||
bool following_paste_op = false;
|
||||
- const char *paste_op_error_msg =
|
||||
- N_("'##' cannot appear at either end of a macro expansion");
|
||||
unsigned int num_extra_tokens = 0;
|
||||
unsigned nparms = 0;
|
||||
cpp_hashnode **params = NULL;
|
||||
@@ -3382,7 +3380,9 @@ create_iso_definition (cpp_reader *pfile
|
||||
function-like macros, but not at the end. */
|
||||
if (following_paste_op)
|
||||
{
|
||||
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
|
||||
+ cpp_error (pfile, CPP_DL_ERROR,
|
||||
+ "'##' cannot appear at either end of a macro "
|
||||
+ "expansion");
|
||||
goto out;
|
||||
}
|
||||
if (!vaopt_tracker.completed ())
|
||||
@@ -3397,7 +3397,9 @@ create_iso_definition (cpp_reader *pfile
|
||||
function-like macros, but not at the beginning. */
|
||||
if (macro->count == 1)
|
||||
{
|
||||
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
|
||||
+ cpp_error (pfile, CPP_DL_ERROR,
|
||||
+ "'##' cannot appear at either end of a macro "
|
||||
+ "expansion");
|
||||
goto out;
|
||||
}
|
||||
|
||||
--- libcpp/expr.cc.jj 2019-01-09 13:01:22.415535734 +0100
|
||||
+++ libcpp/expr.cc 2019-01-11 18:16:23.444726882 +0100
|
||||
@@ -803,16 +803,17 @@ cpp_classify_number (cpp_reader *pfile,
|
||||
if ((result & CPP_N_WIDTH) == CPP_N_LARGE
|
||||
&& CPP_OPTION (pfile, cpp_warn_long_long))
|
||||
{
|
||||
- const char *message = CPP_OPTION (pfile, cplusplus)
|
||||
- ? N_("use of C++11 long long integer constant")
|
||||
- : N_("use of C99 long long integer constant");
|
||||
-
|
||||
if (CPP_OPTION (pfile, c99))
|
||||
cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
|
||||
- 0, message);
|
||||
+ 0, CPP_OPTION (pfile, cplusplus)
|
||||
+ ? N_("use of C++11 long long integer constant")
|
||||
+ : N_("use of C99 long long integer constant"));
|
||||
else
|
||||
cpp_pedwarning_with_line (pfile, CPP_W_LONG_LONG,
|
||||
- virtual_location, 0, message);
|
||||
+ virtual_location, 0,
|
||||
+ CPP_OPTION (pfile, cplusplus)
|
||||
+ ? N_("use of C++11 long long integer constant")
|
||||
+ : N_("use of C99 long long integer constant"));
|
||||
}
|
||||
|
||||
if ((result & CPP_N_SIZE_T) == CPP_N_SIZE_T
|
||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (gcc-15.2.0.tar.xz) = 89047a2e07bd9da265b507b516ed3635adb17491c7f4f67cf090f0bd5b3fc7f2ee6e4cc4008beef7ca884b6b71dffe2bb652b21f01a702e17b468cca2d10b2de
|
||||
SHA512 (gcc-12.4.0.tar.xz) = 5bd29402cad2deb5d9388d0236c7146414d77e5b8d5f1c6c941c7a1f47691c3389f08656d5f6e8e2d6717bf2c81f018d326f632fb468f42925b40bd217fc4853
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue