From 843e042042e98755858be47db6bbbe66d3c97745 Mon Sep 17 00:00:00 2001 From: heitbaum Date: Mon, 2 Aug 2021 12:39:34 +1000 Subject: [PATCH] gcc: enable libatomic for linkage without GOLD linker (riscv) --- packages/lang/gcc/package.mk | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/lang/gcc/package.mk b/packages/lang/gcc/package.mk index fa55ca07cf..cdf44ecdae 100644 --- a/packages/lang/gcc/package.mk +++ b/packages/lang/gcc/package.mk @@ -14,6 +14,15 @@ PKG_DEPENDS_HOST="ccache:host autoconf:host binutils:host gmp:host mpfr:host mpc PKG_DEPENDS_INIT="toolchain" PKG_LONGDESC="This package contains the GNU Compiler Collection." +case ${TARGET_ARCH} in + riscv64) + OPTS_LIBATOMIC="--enable-libatomic" + ;; + *) + OPTS_LIBATOMIC="--disable-libatomic" + ;; +esac + GCC_COMMON_CONFIGURE_OPTS="--target=${TARGET_NAME} \ --with-sysroot=${SYSROOT_PREFIX} \ --with-gmp=${TOOLCHAIN} \ @@ -35,7 +44,6 @@ GCC_COMMON_CONFIGURE_OPTS="--target=${TARGET_NAME} \ --without-cloog \ --disable-libada \ --disable-libmudflap \ - --disable-libatomic \ --disable-libitm \ --disable-libquadmath \ --disable-libgomp \ @@ -47,6 +55,7 @@ PKG_CONFIGURE_OPTS_BOOTSTRAP="${GCC_COMMON_CONFIGURE_OPTS} \ --enable-languages=c \ --disable-libsanitizer \ --enable-cloog-backend=isl \ + --disable-libatomic \ --disable-shared \ --disable-threads \ --without-headers \ @@ -56,6 +65,7 @@ PKG_CONFIGURE_OPTS_BOOTSTRAP="${GCC_COMMON_CONFIGURE_OPTS} \ PKG_CONFIGURE_OPTS_HOST="${GCC_COMMON_CONFIGURE_OPTS} \ --enable-languages=c,c++ \ + ${OPTS_LIBATOMIC} \ --enable-decimal-float \ --enable-tls \ --enable-shared \ @@ -132,6 +142,9 @@ makeinstall_target() { mkdir -p ${INSTALL}/usr/lib cp -P ${PKG_BUILD}/.${HOST_NAME}/${TARGET_NAME}/libgcc/libgcc_s.so* ${INSTALL}/usr/lib cp -P ${PKG_BUILD}/.${HOST_NAME}/${TARGET_NAME}/libstdc++-v3/src/.libs/libstdc++.so* ${INSTALL}/usr/lib + if [ "${OPTS_LIBATOMIC}" = "--enable-libatomic" ]; then + cp -P ${PKG_BUILD}/.${HOST_NAME}/${TARGET_NAME}/libatomic/.libs/libatomic.so* ${INSTALL}/usr/lib + fi } configure_init() {