# Template file for 'cross-${_triplet}-libstdc++' _triplet=arm-none-eabi pkgname=cross-${_triplet}-libstdc++ version=9.3.0 revision=2 wrksrc="gcc-${version}" # gnu-configure implicitly passes stuff we don't want build_style=configure configure_args=" --disable-libstdcxx-pch --disable-libstdcxx-threads --disable-nls --disable-shared --disable-tls --disable-werror --enable-multilib --host=${_triplet} --target=${_triplet} --libdir=/usr/${_triplet}/lib --prefix=/usr/${_triplet} --with-gnu-ld --with-gxx-include-dir=/usr/${_triplet}/include/c++/${version} --with-newlib --with-python-dir=share/gcc-${_triplet}" make_build_args="INHIBIT_LIBC_CFLAGS='-DUSE_TM_CLONE_REGISTRY=0'" hostmakedepends="autoconf automake cross-arm-none-eabi-binutils cross-arm-none-eabi-gcc cross-arm-none-eabi-newlib bison flex perl" makedepends="gmp-devel isl15-devel libmpc-devel mpfr-devel zlib-devel" depends="cross-arm-none-eabi-gcc" short_desc="GNU Compiler Collection - Standard C++ Library" maintainer="q66 " license="GPL-3.0-or-later" homepage="https://gcc.gnu.org" distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz" checksum=71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1 nocross=yes nopie=yes nostrip=yes post_extract() { mkdir -p build-{regular,nano} } do_configure() { export CC=arm-none-eabi-gcc export CXX=arm-none-eabi-g++ export CPP=arm-none-eabi-cpp export AR=arm-none-eabi-ar export AS=arm-none-eabi-as pushd build-regular export CFLAGS="-g -O2 -ffunction-sections -fdata-sections" export CXXFLAGS="-g -O2 -ffunction-sections -fdata-sections" ../libstdc++-v3/configure ${configure_args} popd pushd build-nano export CFLAGS="-g -Os -ffunction-sections -fdata-sections -fno-exceptions" export CXXFLAGS="-g -Os -ffunction-sections -fdata-sections -fno-exceptions" ../libstdc++-v3/configure ${configure_args} popd } do_build() { unset CC CXX CPP AR AS CFLAGS CXXFLAGS pushd build-regular make ${makejobs} ${make_build_args} popd pushd build-nano make ${makejobs} ${make_build_args} popd } do_install() { pushd build-regular make DESTDIR=${DESTDIR} install popd pushd build-nano mkdir -p dest-nano make DESTDIR=$(pwd)/dest-nano install # only install the static libs for nano, no headers local multilibs=( $(${_triplet}-gcc -print-multi-lib 2>/dev/null) ) for multilib in "${multilibs[@]}"; do local dir="${multilib%%;*}" local from_dir=dest-nano/usr/${_triplet}/lib/${dir} local to_dir=${DESTDIR}/usr/${_triplet}/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 popd }