Merge pull request #13444 from MehdiChinoune/arm-gcc

arm-none-eabi-gcc: update to 12.2.0
This commit is contained in:
Christoph Reiter
2022-10-27 11:40:36 +02:00
committed by GitHub

View File

@@ -5,23 +5,24 @@
_realname=gcc
_target=arm-none-eabi
_enable_ada=yes
_enable_ada=no
pkgbase=mingw-w64-${_target}-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_target}-${_realname}")
pkgver=10.1.0
pkgrel=2
pkgver=12.2.0
pkgrel=1
pkgdesc='GNU Tools for ARM Embedded Processors - GCC (mingw-w64)'
arch=('any')
mingw_arch=('mingw32' 'mingw64')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
license=('GPL')
url='https://www.gnu.org/software/gcc/gcc.html'
groups=("${MINGW_PACKAGE_PREFIX}-${_target}-toolchain")
provides=("${MINGW_PACKAGE_PREFIX}-${_target}-gcc-ada")
provides=($([[ "$_enable_ada" == "yes" ]] && echo "${MINGW_PACKAGE_PREFIX}-${_target}-gcc-ada"))
depends=(
"${MINGW_PACKAGE_PREFIX}-${_target}-binutils"
"${MINGW_PACKAGE_PREFIX}-${_target}-newlib"
"${MINGW_PACKAGE_PREFIX}-isl"
"${MINGW_PACKAGE_PREFIX}-libwinpthread-git"
"${MINGW_PACKAGE_PREFIX}-mpc"
"${MINGW_PACKAGE_PREFIX}-zlib"
"${MINGW_PACKAGE_PREFIX}-zstd"
@@ -35,25 +36,30 @@ makedepends=(
)
options=('!emptydirs' '!strip')
source=("https://ftp.gnu.org/gnu/gcc/gcc-${pkgver}/gcc-${pkgver}.tar.xz")
sha256sums=('b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2')
sha256sums=('e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff')
prepare() {
cd ${srcdir}/gcc-${pkgver}
mkdir gcc-build-${MINGW_CHOST}
mkdir gcc-build-nano-${MINGW_CHOST}
mkdir gcc-build-${MSYSTEM}
mkdir gcc-build-nano-${MSYSTEM}
}
_build_gcc() {
local _languages=$1 # Comma separated list of languages support to build
if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then
CFLAGS+=" -Wno-int-conversion -Wno-array-bounds -Wno-mismatched-tags"
CXXFLAGS+=" -Wno-int-conversion -Wno-array-bounds -Wno-mismatched-tags"
fi
local _GCC_LDFLAGS="${LDFLAGS} -Wl,--disable-dynamicbase"
../configure \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--prefix=${MINGW_PREFIX} \
--target=${_target} \
--with-native-system-header-dir=${MINGW_PREFIX}/${MINGW_CHOST}/include \
--with-native-system-header-dir=${MINGW_PREFIX}/include \
--libexecdir=${MINGW_PREFIX}/lib \
--enable-languages=${_languages} \
--enable-plugins \
@@ -88,11 +94,10 @@ _build_gcc() {
make INHIBIT_LIBC_CFLAGS='-DUSE_TM_CLONE_REGISTRY=0'
if [[ "${_languages}" == *ada* ]]; then
make -C gcc cross-gnattools
make -C gcc ada.all.cross
if [[ "${_languages}" == *ada* ]]; then
make -C gcc cross-gnattools
make -C gcc ada.all.cross
fi
}
build() {
@@ -101,31 +106,31 @@ build() {
_languages+=",ada"
fi
cd ${srcdir}/gcc-${pkgver}/gcc-build-${MINGW_CHOST}
cd ${srcdir}/gcc-${pkgver}/gcc-build-${MSYSTEM}
export CFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections'
export CXXFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections'
_build_gcc ${_languages}
# Build libstdc++ without exceptions support (the 'nano' variant)
cd ${srcdir}/gcc-${pkgver}/gcc-build-nano-${MINGW_CHOST}
cd ${srcdir}/gcc-${pkgver}/gcc-build-nano-${MSYSTEM}
export CFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections -fno-exceptions'
export CXXFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections -fno-exceptions'
# Only C and C++ are required for the nano build
# Only C and C++ are required for the nano build
_build_gcc "c,c++"
}
package() {
cd ${srcdir}/gcc-${pkgver}/gcc-build-${MINGW_CHOST}
cd ${srcdir}/gcc-${pkgver}/gcc-build-${MSYSTEM}
make DESTDIR="${pkgdir}" install
cd ${srcdir}/gcc-${pkgver}/gcc-build-nano-${MINGW_CHOST}
cd ${srcdir}/gcc-${pkgver}/gcc-build-nano-${MSYSTEM}
mkdir ${pkgdir}/nano-install-${MINGW_CHOST}
mkdir ${pkgdir}/nano-install-${MSYSTEM}
make DESTDIR="${pkgdir}/nano-install-${MINGW_CHOST}" install
make DESTDIR="${pkgdir}/nano-install-${MSYSTEM}" install
cd ${pkgdir}${MINGW_PREFIX}
@@ -133,13 +138,13 @@ package() {
multilibs=($(bin/${_target}-gcc -print-multi-lib 2>/dev/null))
for multilib in "${multilibs[@]}"; do
dir="${multilib%%;*}"
from_dir=${pkgdir}/nano-install-${MINGW_CHOST}${MINGW_PREFIX}/${_target}/lib/"$dir"
from_dir=${pkgdir}/nano-install-${MSYSTEM}${MINGW_PREFIX}/${_target}/lib/"$dir"
to_dir=${_target}/lib/"$dir"
cp -f "$from_dir"/libstdc++.a "$to_dir"/libstdc++_nano.a
cp -f "$from_dir"/libsupc++.a "$to_dir"/libsupc++_nano.a
done
rm -r ${pkgdir}/nano-install-${MINGW_CHOST}
rm -r ${pkgdir}/nano-install-${MSYSTEM}
# strip target binaries
find lib/gcc/${_target}/${pkgver} ${_target}/lib -type f -and \( -name \*.a -or -name \*.o \) -exec ${_target}-objcopy -R .comment -R .note -R .debug_info -R .debug_aranges -R .debug_pubnames -R .debug_pubtypes -R .debug_abbrev -R .debug_line -R .debug_str -R .debug_ranges -R .debug_loc '{}' \;