Hi Denys,
This is probably not about this new patch series for the r5f toolchain.
I am facing issues with the internal toolchain for A72
I was trying out u-boot and linux builds with these new internal
toolchains and everything works fine EXCEPT for u-boot-a72 build:
I get this error : "aarch64-oe-linux-ld.bfd: cannot find -lgcc: No such
file or directory"
I narrowed down the error to incorrect Ldir being parsed in the u-boot
Makefile here [1] which expects absolute path for the
print-libgcc-file-name.
The build with the external toolchain works coz that prints the absolute
path while the yocto internal toolchain is returning just the filename:
./bin/aarch64-none-linux-gnu-gcc -print-libgcc-file-name #Prints full
path to libgcc.a file
./linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-oe-linux/aarch64-oe-linux-gcc
-print-libgcc-file-name #Prints just "libgcc.a". The dirname for this
returns "."
[1]:
https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/Makefile?h=ti-u-boot-2023.04#n895
As it stands, I am unable to build u-boot with the internal toolchain.
Either something needs to be fixed in the toolchain itself or I am
missing some flag / Env variable?
Thanks,
Aniket
On 07/07/23 02:53, Denys Dmytriyenko wrote:
From: Denys Dmytriyenko<[email protected]>
No longer needed w/o external toolchain - use defaults from OE-Core.
Also remove extra code that was trying to unify internal and external
toolchains structures in meta-toolchain-arago.
Signed-off-by: Denys Dmytriyenko<[email protected]>
---
meta-arago-distro/conf/distro/arago.conf | 10 ----
.../conf/distro/include/toolchain-gcc.inc | 41 --------------
.../distro/include/toolchain-internal.inc | 4 --
.../recipes-core/meta/meta-toolchain-arago.bb | 54 +++++--------------
4 files changed, 14 insertions(+), 95 deletions(-)
delete mode 100644 meta-arago-distro/conf/distro/include/toolchain-gcc.inc
delete mode 100644
meta-arago-distro/conf/distro/include/toolchain-internal.inc
diff --git a/meta-arago-distro/conf/distro/arago.conf
b/meta-arago-distro/conf/distro/arago.conf
index ceb74b6e..f03c82bf 100644
--- a/meta-arago-distro/conf/distro/arago.conf
+++ b/meta-arago-distro/conf/distro/arago.conf
@@ -152,16 +152,6 @@ ARAGO_SYSTEST_ENABLE ?= "0"
ARAGO_KERNEL_SUFFIX:append ="${@oe.utils.conditional("ARAGO_SYSTEST_ENABLE", "1",
"-systest", "", d)}"
IMAGE_FSTYPES:remove ="${@['','ubi ubifs'][d.getVar('ARAGO_SYSTEST_ENABLE') ==
'1']}"
-# Toolchain should be selected by setting TOOLCHAIN_BRAND in local.conf
-# Set some sane defaults, in case someone forgets to set them in local.conf
-TC_SANE_DEFAULT ?= "arm"
-TOOLCHAIN_TYPE ?= "internal"
-TOOLCHAIN_TYPE:omapl138 = "internal"
-TOOLCHAIN_BRAND ?="${@[d.getVar('TC_SANE_DEFAULT'),'gcc'][d.getVar('TOOLCHAIN_TYPE') ==
'internal']}"
-
-require conf/distro/include/toolchain-${TOOLCHAIN_BRAND}.inc
-require conf/distro/include/toolchain-${TOOLCHAIN_TYPE}.inc
-
# Enable basic stack and buffer overflow protections
#TARGET_CPPFLAGS += "-fstack-protector -D_FORTIFY_SOURCE=1"
#TARGET_CPPFLAGS += "-fstack-protector"
diff --git a/meta-arago-distro/conf/distro/include/toolchain-gcc.inc
b/meta-arago-distro/conf/distro/include/toolchain-gcc.inc
deleted file mode 100644
index 1c059a6f..00000000
--- a/meta-arago-distro/conf/distro/include/toolchain-gcc.inc
+++ /dev/null
@@ -1,41 +0,0 @@
-# Select internal gcc toolchain to be built from sources
-TCMODE = "default"
-TCLIBC = "glibc"
-
-LIBCEXTENSION ="${@['', '-gnu'][(d.getVar('ABIEXTENSION') or '') != '']}"
-
-# Match some of the external vars
-TOOLCHAIN_SYS := "${TARGET_SYS}"
-TOOLCHAIN_PREFIX := "${TARGET_PREFIX}"
-
-PREFERRED_PROVIDER_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} ?=
"gcc-cross-canadian-${TRANSLATED_TARGET_ARCH}"
-PREFERRED_PROVIDER_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} ?=
"binutils-cross-canadian-${TRANSLATED_TARGET_ARCH}"
-PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} =
"gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}"
-
-# Set Cross and SDK toolchain preferences
-SDKGCCVERSION ?= "11%"
-SDKBINUVERSION ?= "2.38%"
-SDKGLIBCVERSION ?= "2.35%"
-
-PREFERRED_VERSION_gcc-crosssdk-${SDK_SYS} ?= "${SDKGCCVERSION}"
-PREFERRED_VERSION_gcc-crosssdk-initial-${SDK_SYS} ?= "${SDKGCCVERSION}"
-PREFERRED_VERSION_binutils-crosssdk-${SDK_SYS} ?= "${SDKBINUVERSION}"
-
-PREFERRED_VERSION_nativesdk-gcc-runtime ?= "${SDKGCCVERSION}"
-PREFERRED_VERSION_nativesdk-libgcc ?= "${SDKGCCVERSION}"
-PREFERRED_VERSION_nativesdk-libgcc-initial ?= "${SDKGCCVERSION}"
-PREFERRED_VERSION_nativesdk-glibc ?= "${SDKGLIBCVERSION}"
-PREFERRED_VERSION_nativesdk-glibc-locale ?= "${SDKGLIBCVERSION}"
-PREFERRED_VERSION_nativesdk-glibc-initial ?= "${SDKGLIBCVERSION}"
-
-# Set target toolchain preferences to match Cross/SDK by default
-# Can be overwritten globally, if needed
-GCCVERSION ?= "11%"
-BINUVERSION ?= "2.38%"
-GLIBCVERSION ?= "2.35%"
-
-PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
-PREFERRED_VERSION_binutils ?= "${BINUVERSION}"
-PREFERRED_VERSION_glibc ?= "${GLIBCVERSION}"
-PREFERRED_VERSION_glibc-locale ?= "${GLIBCVERSION}"
-PREFERRED_VERSION_glibc-initial ?= "${GLIBCVERSION}"
diff --git a/meta-arago-distro/conf/distro/include/toolchain-internal.inc
b/meta-arago-distro/conf/distro/include/toolchain-internal.inc
deleted file mode 100644
index cbc3b53d..00000000
--- a/meta-arago-distro/conf/distro/include/toolchain-internal.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-# No special handling is required for locating the internal toolchain, just
re-use existing vars
-TOOLCHAIN_PATH ?= "${STAGING_BINDIR_TOOLCHAIN}"
-TOOLCHAIN_SYSPATH ?= "${TOOLCHAIN_PATH}/${TARGET_SYS}"
-EXTERNAL_TOOLCHAIN = "${TOOLCHAIN_PATH}"
diff --git a/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
b/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
index 5c1c3ad0..8bff9abb 100644
--- a/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
+++ b/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
@@ -33,8 +33,8 @@ toolchain_create_sdk_env_script () {
echo 'fi' >> $script
echo 'export SDK_SYS=${SDK_SYS}' >> $script
echo 'export REAL_MULTIMACH_TARGET_SYS=${REAL_MULTIMACH_TARGET_SYS}' >>
$script
- echo 'export TOOLCHAIN_SYS=${TOOLCHAIN_SYS}' >> $script
- echo 'export TOOLCHAIN_PREFIX=$TOOLCHAIN_SYS-' >> $script
+ echo 'export TARGET_SYS=${TARGET_SYS}' >> $script
+ echo 'export TARGET_PREFIX=$TARGET_SYS-' >> $script
echo 'export SDK_PATH_NATIVE=$SDK_PATH/sysroots/$SDK_SYS' >> $script
echo 'export SDK_PATH_TARGET=$SDK_PATH/sysroots/$REAL_MULTIMACH_TARGET_SYS'
>> $script
echo 'export
PATH=$SDK_PATH_NATIVE${bindir_nativesdk}:$SDK_PATH_NATIVE${bindir_nativesdk}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}:$PATH'
>> $script
@@ -43,18 +43,18 @@ toolchain_create_sdk_env_script () {
echo 'export
PKG_CONFIG_PATH=$SDK_PATH_TARGET${libdir}/pkgconfig:$SDK_PATH_TARGET${datadir}/pkgconfig'
>> $script
echo 'export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1' >> $script
echo 'export CONFIG_SITE=$SDK_PATH/site-config-$REAL_MULTIMACH_TARGET_SYS'
>> $script
- printf 'export CC="\x24{TOOLCHAIN_PREFIX}gcc --sysroot=$SDK_PATH_TARGET"\n'
>> $script
- printf 'export CXX="\x24{TOOLCHAIN_PREFIX}g++ --sysroot=$SDK_PATH_TARGET"\n'
>> $script
- printf 'export GDB=\x24{TOOLCHAIN_PREFIX}gdb\n' >> $script
- printf 'export CPP="\x24{TOOLCHAIN_PREFIX}gcc -E
--sysroot=$SDK_PATH_TARGET"\n' >> $script
- printf 'export LD="\x24{TOOLCHAIN_PREFIX}ld --sysroot=$SDK_PATH_TARGET"\n'
>> $script
- printf 'export NM=\x24{TOOLCHAIN_PREFIX}nm\n' >> $script
- printf 'export AS=\x24{TOOLCHAIN_PREFIX}as\n' >> $script
- printf 'export AR=\x24{TOOLCHAIN_PREFIX}ar\n' >> $script
- printf 'export RANLIB=\x24{TOOLCHAIN_PREFIX}ranlib\n' >> $script
- printf 'export OBJCOPY=\x24{TOOLCHAIN_PREFIX}objcopy\n' >> $script
- printf 'export OBJDUMP=\x24{TOOLCHAIN_PREFIX}objdump\n' >> $script
- printf 'export STRIP=\x24{TOOLCHAIN_PREFIX}strip\n' >> $script
+ printf 'export CC="\x24{TARGET_PREFIX}gcc --sysroot=$SDK_PATH_TARGET"\n'
>> $script
+ printf 'export CXX="\x24{TARGET_PREFIX}g++ --sysroot=$SDK_PATH_TARGET"\n'
>> $script
+ printf 'export GDB=\x24{TARGET_PREFIX}gdb\n' >> $script
+ printf 'export CPP="\x24{TARGET_PREFIX}gcc -E --sysroot=$SDK_PATH_TARGET"\n'
>> $script
+ printf 'export LD="\x24{TARGET_PREFIX}ld --sysroot=$SDK_PATH_TARGET"\n'
>> $script
+ printf 'export NM=\x24{TARGET_PREFIX}nm\n' >> $script
+ printf 'export AS=\x24{TARGET_PREFIX}as\n' >> $script
+ printf 'export AR=\x24{TARGET_PREFIX}ar\n' >> $script
+ printf 'export RANLIB=\x24{TARGET_PREFIX}ranlib\n' >> $script
+ printf 'export OBJCOPY=\x24{TARGET_PREFIX}objcopy\n' >> $script
+ printf 'export OBJDUMP=\x24{TARGET_PREFIX}objdump\n' >> $script
+ printf 'export STRIP=\x24{TARGET_PREFIX}strip\n' >> $script
echo 'export CONFIGURE_FLAGS="--target=${TARGET_SYS} --host=${TARGET_SYS}
--build=${SDK_ARCH}-linux --with-libtool-sysroot=$SDK_PATH_TARGET"' >> $script
echo 'export CPPFLAGS="${TARGET_CC_ARCH} --sysroot=$SDK_PATH_TARGET"'
>> $script
echo 'export CFLAGS="$CPPFLAGS"' >> $script
@@ -97,32 +97,6 @@ arago_sdk_fixup () {
done
cleanup_toolchain_packages
-
- # Do some extra setup work due to new structure
- mkdir -p
"${SDK_OUTPUT}/${SDKPATHNATIVE}${prefix_nativesdk}/lib/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
- if [ "${TOOLCHAIN_TYPE}" = "internal" ]; then
-
lexec="${SDK_OUTPUT}/${SDKPATHNATIVE}${prefix_nativesdk}/libexec/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}/gcc/${TOOLCHAIN_SYS}"
- else
-
lexec="${SDK_OUTPUT}/${SDKPATHNATIVE}${prefix_nativesdk}/libexec/gcc/${TOOLCHAIN_SYS}"
- fi
- tcv=`ls -1 $lexec|head -1`
- [ -e ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/lib/$tcv ] || ln -s .
${SDK_OUTPUT}/${SDKTARGETSYSROOT}/lib/$tcv
- [ -e ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/usr/lib/$tcv ] || ln -s .
${SDK_OUTPUT}/${SDKTARGETSYSROOT}/usr/lib/$tcv
- [ -e ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/lib/${TOOLCHAIN_SYS} ] || ln -s
. ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/lib/${TOOLCHAIN_SYS}
- [ -e ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/usr/lib/${TOOLCHAIN_SYS} ] || ln
-s . ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/usr/lib/${TOOLCHAIN_SYS}
-
tcpath="${SDK_OUTPUT}/${SDKPATHNATIVE}${prefix_nativesdk}/${TOOLCHAIN_SYS}"
- mkdir -p $tcpath
- ( cd $tcpath; \
- ln -s ${SDKTARGETSYSROOT}/include include; \
- if [ "${TOOLCHAIN_BRAND}" != "arago" ]; then \
- mkdir -p libc; \
- cd libc; \
- fi; \
- mkdir -p usr; \
- ln -s ${SDKTARGETSYSROOT}/lib lib; \
- ln -s ${SDKTARGETSYSROOT}/usr/lib usr/lib; \
- ln -s ${SDKTARGETSYSROOT}/usr/include usr/include; \
- )
}
fakeroot create_sdk_files() {
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#14835):
https://lists.yoctoproject.org/g/meta-arago/message/14835
Mute This Topic: https://lists.yoctoproject.org/mt/99994847/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-arago/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-