Hi There,

Following the instruction from TI

https://software-dl.ti.com/processor-sdk-linux-rt/esd/AM64X/latest/exports/docs/linux/Overview_Building_the_SDK.html

I've successfully set up a yocto project for the AM64x.

Toolchain used is 9.2-2019.12

Now I need to add support for multilib32 because I have some software that can 
be compiled only 32 bit.

I added the following lines to conf/local.conf

# Define multilib target
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "armv7athf-neon"

And I am able to build a few packages with lib32- successfully, however, 
lib32-libtool-cross fails at the configure stage:

--host is set to the value armmllib32-linux-gnueabi

ERROR: lib32-libtool-cross-2.4.6-r0 do_configure: configure failed
ERROR: lib32-libtool-cross-2.4.6-r0 do_configure: Execution of 
'/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/temp/run.do_configure.29261'
 failed with exit code 1:
automake (GNU automake) 1.16.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later 
<https://gnu.org/licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Tom Tromey <tromey@...<mailto:tromey@...>>
       and Alexandre Duret-Lutz <adl@...<mailto:adl@...>>.
AUTOV is 1.16
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal 
--system-acdir=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/lib32-recipe-sysroot/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/lib32-recipe-sysroot/usr/share/aclocal/
 
--automake-acdir=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/recipe-sysroot-native/usr/share/aclocal-1.16
 -I 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/libtool-2.4.6/m4/
 -I 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/libtool-2.4.6/tests/
 -I 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/recipe-sysroot-native/usr/share/aclocal/
 --force --warnings=cross -I m4
aclocal: warning: unknown warning category 'cross'
autoreconf: configure.ac: tracing
autoreconf: running: 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/recipe-sysroot-native/usr/bin/autoconf
 
--include=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/libtool-2.4.6/m4/
 
--include=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/libtool-2.4.6/tests/
 
--include=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/recipe-sysroot-native/usr/share/aclocal/
 --force --warnings=cross
autoreconf: running: 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/recipe-sysroot-native/usr/bin/autoheader
 
--include=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/libtool-2.4.6/m4/
 
--include=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/libtool-2.4.6/tests/
 
--include=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/recipe-sysroot-native/usr/share/aclocal/
 --force --warnings=cross
autoreconf: running: automake --add-missing --copy --force-missing 
--warnings=cross
automake: warning: unknown warning category 'cross'
autoreconf: running: gnu-configize
autoreconf: Leaving directory `.'
| NOTE: Running ../libtool-2.4.6/configure  --build=x86_64-linux                
                 --host=armmllib32-linux-gnueabi                   
--target=armmllib32-linux-gnueabi                         --prefix=/usr         
  --exec_prefix=/usr                          --bindir=/usr/bin                 
            --sbindir=/usr/sbin                              
--libexecdir=/usr/libexec                             
--datadir=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/lib32-recipe-sysroot/usr/share
                      --sysconfdir=/etc                            
--sharedstatedir=/com                                 --localstatedir=/var      
                       --libdir=/usr/lib                               
--includedir=/usr/include                                 
--oldincludedir=/usr/include                      
--infodir=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/lib32-recipe-sysroot/usr/share/info
                                 
--mandir=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/lib32-recipe-sysroot/usr/share/man
                   --disable-silent-rules                      
--disable-dependency-tracking                                
--with-libtool-sysroot=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/lib32-recipe-sysroot
configure: loading site script 
/home/build/tisdk/sources/meta-openembedded/meta-networking/site/endian-little
configure: loading site script 
/home/build/tisdk/sources/oe-core/meta/site/endian-little
configure: loading site script 
/home/build/tisdk/sources/oe-core/meta/site/arm-common
configure: loading site script 
/home/build/tisdk/sources/oe-core/meta/site/arm-32
configure: loading site script 
/home/build/tisdk/sources/oe-core/meta/site/common-linux
configure: loading site script 
/home/build/tisdk/sources/oe-core/meta/site/common-glibc
configure: loading site script 
/home/build/tisdk/sources/oe-core/meta/site/arm-linux
configure: loading site script 
/home/build/tisdk/sources/oe-core/meta/site/common
## ------------------------- ##
## Configuring libtool 2.4.6 ##
## ------------------------- ##

checking for GNU M4 that supports accurate traces... 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/recipe-sysroot-native/usr/bin/m4
checking whether 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/recipe-sysroot-native/usr/bin/m4
 accepts --gnu... yes
checking how m4 supports trace files... --debugfile
checking for a BSD-compatible install... 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/hosttools/install -c
checking whether build environment is sane... yes
checking for armmllib32-linux-gnueabi-strip... arm-none-linux-gnueabihf-strip
checking for a thread-safe mkdir -p... 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/hosttools/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... Invalid configuration `armmllib32-linux-gnueabi': 
machine `armmllib32-unknown' not recognized
configure: error: /bin/bash ../libtool-2.4.6/build-aux/config.sub 
armmllib32-linux-gnueabi failed
WARNING: 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/temp/run.do_configure.29261:1
 exit 1 from 'exit 1'

ERROR: Logfile of failure stored in: 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/armv7at2hf-neonmllib32-linux-gnueabi/lib32-libtool-cross/2.4.6-r0/temp/log.do_configure.29261





Investigating run.do_configure suggests that in the configure stage 
oe_runconf() is set with what seems to be wrong -host and -target values:
 --host=armmllib32-linux-gnueabi   --target=armmllib32-linux-gnueabi


Executing
bitbake lib32-libtool-cross -e
Yields, among many others,

18513 # $TARGET_VENDOR [3 operations]
18514 #   set /home/build/tisdk/sources/oe-core/meta/conf/bitbake.conf:132
18515 #     "-oe"
18516 #   set 
/home/build/tisdk/sources/meta-arago/meta-arago-distro/conf/distro/include/toolchain-arm.inc:15
18517 #     ""
18518 #   override[virtclass-multilib-lib32]:set multilib_global.bbclass:159 
[multilib_virtclass_handler_vendor]
18519 #     "mllib32"
18520 # pre-expansion value:
18521 #   "mllib32"
18522 TARGET_VENDOR="mllib32"

Later, HOST_VENDOR  = "${TARGET_VENDOR}",
And HOST_SYS = "${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}"

So the variable SYS_HOST is expanded to armmllib32-linux-gnueabi which seems to 
be wrong for lib32-libtool-cross.

Manually running the configure command with -host=arm-none-linux-gnueabihf is 
working properly.

Following suggestion by Richard Purdie
https://lists.yoctoproject.org/g/poky/message/12535


Adding

TARGET_VENDOR = "-oe"

To conf/local.conf didn't do the trick.



So I modified

sources/meta-arago/meta-arago-distro/conf/distro/include/toolchain-arm.inc

-TARGET_VENDOR = ""

+TARGET_VENDOR = "-oe"



And then

bitbake lib32-libtool-cross

finished successfully, but when trying to build the entire image libtool-cross 
failed with



## ------------------------- ##

## Configuring libtool 2.4.6 ##

## ------------------------- ##



checking for GNU M4 that supports accurate traces... 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/aarch64-oe-linux/libtool-cross/2.4.6-r0/recipe-sysroot-native/usr/bin/m4

checking whether 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/aarch64-oe-linux/libtool-cross/2.4.6-r0/recipe-sysroot-native/usr/bin/m4
 accepts --gnu... yes checking how m4 supports trace files... --debugfile 
checking for a BSD-compatible install... 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/hosttools/install -c 
checking whether build environment is sane... yes checking for 
aarch64-oe-linux-strip... aarch64-none-linux-gnu-strip checking for a 
thread-safe mkdir -p... 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/hosttools/mkdir -p 
checking for gawk... gawk checking whether make sets $(MAKE)... yes checking 
whether make supports nested variables... yes checking whether make supports 
nested variables... (cached) yes checking build system type... 
x86_64-pc-linux-gnu checking host system type... aarch64-oe-linux-gnu

configure: autobuild project... GNU Libtool

configure: autobuild revision... 2.4.6

configure: autobuild hostname... osboxes

configure: autobuild mode... default

configure: autobuild timestamp... 20210818T123141Z checking for 
aarch64-oe-linux-gcc... aarch64-none-linux-gnu-gcc  
--sysroot=/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/aarch64-oe-linux/libtool-cross/2.4.6-r0/recipe-sysroot

checking whether the C compiler works... no

configure: error: in 
`/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/aarch64-oe-linux/libtool-cross/2.4.6-r0/build':

configure: error: C compiler cannot create executables See `config.log' for 
more details

WARNING: 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/aarch64-oe-linux/libtool-cross/2.4.6-r0/temp/run.do_configure.1778:1
 exit 1 from 'exit 1'



ERROR: Logfile of failure stored in: 
/home/build/tisdk/build/arago-tmp-external-arm-glibc/work/aarch64-oe-linux/libtool-cross/2.4.6-r0/temp/log.do_configure.1778



Can you please suggest how to fix this issue?
I suspect it will come up in other packages as well.


Thanks a lot,

Nir.

_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago

Reply via email to