All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aniket Limaye <a-limaye@ti.com>
To: Denys Dmytriyenko <denis@denix.org>, <meta-arago@lists.yoctoproject.org>
Cc: Denys Dmytriyenko <denys@konsulko.com>
Subject: Re: [EXTERNAL] [meta-arago] [kirkstone][PATCH 5/6] meta-arago: remove extra plumbing for internal toolchain
Date: Fri, 11 Aug 2023 17:00:30 +0530	[thread overview]
Message-ID: <dfefcf02-11bd-75bb-4400-33e7e30463bf@ti.com> (raw)
In-Reply-To: <20230706212335.1893675-6-denis@denix.org>

[-- Attachment #1: Type: text/plain, Size: 10911 bytes --]

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<denys@konsulko.com>
>
> 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<denys@konsulko.com>
> ---
>   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() {

[-- Attachment #2: Type: text/html, Size: 12604 bytes --]

  reply	other threads:[~2023-08-11 11:30 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-06 21:23 [kirkstone][PATCH 0/6] Rework secondary toolchain for K3R5 Denys Dmytriyenko
2023-07-06 21:23 ` [kirkstone][PATCH 1/6] recipe-data: deprecate Denys Dmytriyenko
2023-07-10 12:11   ` [EXTERNAL] [meta-arago] " Aniket Limaye
2023-07-11 17:21     ` Denys Dmytriyenko
2023-07-06 21:23 ` [kirkstone][PATCH 2/6] tisdk-core-bundle: simplify toolchain/SDK selection Denys Dmytriyenko
2023-07-06 21:23 ` [kirkstone][PATCH 3/6] meta-arago-distro: remove old secondary toolchain support Denys Dmytriyenko
2023-07-06 21:23 ` [kirkstone][PATCH 4/6] meta-arago: remove external " Denys Dmytriyenko
2023-07-06 21:23 ` [kirkstone][PATCH 5/6] meta-arago: remove extra plumbing for internal toolchain Denys Dmytriyenko
2023-08-11 11:30   ` Aniket Limaye [this message]
2023-08-14 19:25     ` [EXTERNAL] [meta-arago] " Denys Dmytriyenko
2023-08-17 10:47       ` Aniket Limaye
2023-07-06 21:23 ` [kirkstone][PATCH 6/6] tisdk-bundle: package up secondary K3R5 toolchain Denys Dmytriyenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=dfefcf02-11bd-75bb-4400-33e7e30463bf@ti.com \
    --to=a-limaye@ti.com \
    --cc=denis@denix.org \
    --cc=denys@konsulko.com \
    --cc=meta-arago@lists.yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.