소스 검색

gcc: Align configuration with StarFive's toolchain
Yocto has its own default toolchain configuration.
Align with StarFive's configuration to maximize compiled binaries' performance.

Signed-off-by: weiheng.cheng <weiheng.cheng@starfivetech.com>

weiheng.cheng 2 달 전
부모
커밋
2823e7f281

+ 4 - 13
recipes-devtools/gcc/gcc-13.2.inc

@@ -10,8 +10,8 @@ BINV = "13.2.0"
 
 FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:"
 
-DEPENDS =+ "mpfr gmp libmpc zlib zstd flex-native"
-NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native zstd-native"
+DEPENDS =+ "mpfr gmp libmpc zlib zstd flex-native isl"
+NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native zstd-native isl-native"
 
 LICENSE = "GPL-3.0-with-GCC-exception & GPL-3.0-only"
 
@@ -112,17 +112,8 @@ SSP:mingw32 = "--enable-libssp"
 
 EXTRA_OECONF_BASE = "\
     ${SSP} \
-    --enable-libitm \
-    --enable-lto \
-    --disable-bootstrap \
     --with-system-zlib \
-    ${@'--with-linker-hash-style=${LINKER_HASH_STYLE}' if '${LINKER_HASH_STYLE}' else ''} \
-    --enable-linker-build-id \
-    --with-ppl=no \
-    --with-cloog=no \
-    --enable-checking=release \
-    --enable-cheaders=c_global \
-    --without-isl \
+    --with-isl \
 "
 
 EXTRA_OECONF_INITIAL = "\
@@ -134,7 +125,7 @@ EXTRA_OECONF_INITIAL = "\
     --disable-plugin \
     --enable-linker-build-id \
     --enable-decimal-float=no \
-    --without-isl \
+    --with-isl \
     --disable-libssp \
 "
 

+ 13 - 6
recipes-devtools/gcc/gcc-configure-common.inc

@@ -21,19 +21,13 @@ SYMVERS_CONF ?= "--enable-symvers=gnu"
 
 EXTRA_OECONF = "\
     ${@['--enable-clocale=generic', ''][d.getVar('USE_NLS') != 'no']} \
-    --with-gnu-ld \
     --enable-shared \
     --enable-languages=${LANGUAGES} \
     --enable-threads=${GCCTHREADS} \
     ${GCCMULTILIB} \
-    ${GCCPIE} \
-    --enable-c99 \
     --enable-long-long \
-    ${SYMVERS_CONF} \
-    --enable-libstdcxx-pch \
     --program-prefix=${TARGET_PREFIX} \
     --without-local-prefix \
-    --disable-install-libiberty \
     ${EXTRA_OECONF_BASE} \
     ${EXTRA_OECONF_GCC_FLOAT} \
     ${EXTRA_OECONF_PATHS} \
@@ -42,6 +36,19 @@ EXTRA_OECONF = "\
     ${@get_gcc_multiarch_setting(bb, d)} \
 "
 
+EXTRA_OECONF += "\
+    --disable-libmudflap \
+    --disable-libssp \
+    --disable-libquadmath \
+    --disable-libquadmath-support \
+    --disable-libsanitizer \
+    --with-gmp \
+    --with-mpfr \
+    --with-mpc \
+    --with-isl \
+    --enable-tls \
+    "
+
 # glibc version is a minimum controlling whether features are enabled. 
 # Doesn't need to track glibc exactly
 EXTRA_OECONF:append:libc-glibc = " --with-glibc-version=2.28 "

+ 5 - 3
recipes-devtools/gcc/gcc-cross-canadian.inc

@@ -174,14 +174,16 @@ do_install () {
 }
 
 ELFUTILS = "nativesdk-elfutils"
-DEPENDS += "nativesdk-gmp nativesdk-mpfr nativesdk-libmpc ${ELFUTILS} nativesdk-zlib nativesdk-zstd"
-RDEPENDS:${PN} += "nativesdk-mpfr nativesdk-libmpc ${ELFUTILS}"
+DEPENDS += "nativesdk-gmp nativesdk-mpfr nativesdk-libmpc ${ELFUTILS} nativesdk-zlib nativesdk-zstd nativesdk-isl"
+RDEPENDS:${PN} += "nativesdk-mpfr nativesdk-libmpc ${ELFUTILS} nativesdk-isl"
 
 SYSTEMHEADERS = "${target_includedir}/"
 SYSTEMLIBS = "${target_base_libdir}/"
 SYSTEMLIBS1 = "${target_libdir}/"
 
-EXTRA_OECONF += "--enable-poison-system-directories"
+EXTRA_OECONF += "--enable-poison-system-directories \
+	--with-isl=${STAGING_DIR_HOST}${SDKPATHNATIVE}${prefix_nativesdk} \
+	"
 
 # gcc 4.7 needs -isystem
 export ARCH_FLAGS_FOR_TARGET = "--sysroot=${STAGING_DIR_TARGET} -isystem=${target_includedir}"

+ 1 - 2
recipes-devtools/gcc/gcc-cross-canadian_13.2.bb

@@ -1,5 +1,4 @@
 require recipes-devtools/gcc/gcc-${PV}.inc
 require gcc-cross-canadian.inc
 
-
-
+EXTRA_OECONF:append:riscv64 = " --with-arch=rv64gcb --with-abi=lp64d CFLAGS_FOR_TARGET="-O2 -mcmodel=medany -march=rv64gcb" CXXFLAGS_FOR_TARGET="-O2 -mcmodel=medany -march=rv64gcb" "

+ 1 - 0
recipes-devtools/gcc/gcc-cross_13.2.bb

@@ -1,3 +1,4 @@
 require recipes-devtools/gcc/gcc-${PV}.inc
 require gcc-cross.inc
 
+EXTRA_OECONF:append:riscv64 = " --with-arch=rv64gcb --with-abi=lp64d CFLAGS_FOR_TARGET="-O2 -mcmodel=medany -march=rv64gcb" CXXFLAGS_FOR_TARGET="-O2 -mcmodel=medany -march=rv64gcb" "

+ 2 - 0
recipes-devtools/gcc/gcc-crosssdk_13.2.bb

@@ -1,2 +1,4 @@
 require recipes-devtools/gcc/gcc-cross_${PV}.bb
 require gcc-crosssdk.inc
+
+EXTRA_OECONF:append:riscv64 = " --with-arch=rv64gcb --with-abi=lp64d CFLAGS_FOR_TARGET="-O2 -mcmodel=medany -march=rv64gcb" CXXFLAGS_FOR_TARGET="-O2 -mcmodel=medany -march=rv64gcb" "

+ 2 - 0
recipes-devtools/gcc/gcc-source_13.2.bb

@@ -2,3 +2,5 @@ require recipes-devtools/gcc/gcc-${PV}.inc
 require recipes-devtools/gcc/gcc-source.inc
 
 EXCLUDE_FROM_WORLD = "1"
+
+EXTRA_OECONF:append:riscv64 = " --with-arch=rv64gcb --with-abi=lp64d CFLAGS_FOR_TARGET="-O2 -mcmodel=medany -march=rv64gcb" CXXFLAGS_FOR_TARGET="-O2 -mcmodel=medany -march=rv64gcb" "