I've successfully build a custom Linux distro for the DE10 nano using Yocto. I am using among other things, meta-openembedded, meta-altera and poky. All of these are set to the dunfell branch.
I am now trying to cross compile software for this custom image using the SDK on Ubuntu 22.04 LTS. The same machine I used to build the distro and sdk.
$ bitbake custom-image-full -c populate_sdk
I've sourced the script
$ . /opt/custom/1.0/environment-setup-armv7at2hf-neon-custom-linux-gnueabi
$ cd /opt/custom/1.0/sysroots/armv7at2hf-neon-prose-linux-gnueabi/usr/src/kernel
$ make scripts
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.32' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.32' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.32' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.32' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.32' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.32' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.32' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
CC scripts/mod/empty.o
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.32' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
arm-custom-linux-gnueabi-gcc: /opt/custom/1.0/sysroots/x86_64-customsdk-linux/lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
make[2]: *** [scripts/Makefile.build:315: scripts/mod/empty.o] Error 1
make[1]: *** [scripts/Makefile.build:573: scripts/mod] Error 2
make: *** [Makefile:562: scripts] Error 2
If I check the glibc version of my Ubuntu 22.04 LTS machine.
$ ldd --version
ldd (Ubuntu GLIBC 2.35-0ubuntu3.1) 2.35
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
This is higher than that required by the library inside the sdk.
As far as I understand, it isn't possible or wise to try downgrade my GLIBC version, as its integral to the kernel version. I could perhaps upgrade my recipes to use a newer version than dunfell, perhaps kirkstone, but this is a huge amount of work.
I don't have the option of rolling back my machine to an earlier version of Ubuntu either.
Thanks for the suggestions @Employed Russian and @Yoda. Both your comments lead me toward a solution that worked.
The issue was that my shell environment was polluted. Running unset LD_LIBRARY_PATH
didn't work for me, hwoever it made me realize that something in my environment might be causing the wrong library linkage to occur.
To test this idea, I cleared the shell environment:
$ env -i bash --noprofile --norc
Ran the sdk environment script
$ . /opt/custom/1.0/environment-setup-armv7at2hf-neon-custom-linux-gnueabi
Built scripts
$ cd /opt/custom/1.0/sysroots/armv7at2hf-neon-prose-linux-gnueabi/usr/src/kernel
$ make scripts
It builds correctly now.