Merge pull request #13444 from MehdiChinoune/arm-gcc
arm-none-eabi-gcc: update to 12.2.0
This commit is contained in:
@@ -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 '{}' \;
|
||||
|
||||
Reference in New Issue
Block a user