multilib on imx8

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

multilib on imx8

1,830 Views
nicolas_bigeard
Contributor I

Hi,

I'm currently working on compiling linux multilib version. I followed the instructions in the documentation, and modified my local.conf file accordingly :

equire conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "armv7athf-neon"

IMAGE_INSTALL_append = " lib32-glibc lib32-libgcc lib32-libstdc++"

unfortunately this led to an error in libgcc_7.3 do _configure

| checking build system type... x86_64-pc-linux-gnu
| checking host system type... arm-pokymllib32-linux-gnueabi
| checking for --enable-version-specific-runtime-libs... no
| checking for a BSD-compatible install... /home/archie/fsl-multilib/build/tmp/hosttools/install -c
| checking for gawk... gawk
| checking for arm-pokymllib32-linux-gnueabi-ar... arm-pokymllib32-linux-gnueabi-ar
| checking for arm-pokymllib32-linux-gnueabi-lipo... no
| checking for lipo... no
| checking for arm-pokymllib32-linux-gnueabi-nm... arm-pokymllib32-linux-gnueabi-nm
| checking for arm-pokymllib32-linux-gnueabi-ranlib... arm-pokymllib32-linux-gnueabi-ranlib
| checking for arm-pokymllib32-linux-gnueabi-strip... arm-pokymllib32-linux-gnueabi-strip
| checking whether ln -s works... yes
| checking for arm-pokymllib32-linux-gnueabi-gcc... arm-pokymllib32-linux-gnueabi-gcc -march=armv7-a -marm -mfpu=neon -mfloat-abi=hard --sysroot=/home/archie/fsl-multilib/build/tmp/work/armv7ahf-neon-pokymllib32-linux-gnueabi/lib32-libgcc/7.3.0-r0/lib32-recipe-sysroot
| checking for suffix of object files... o
| checking whether we are using the GNU C compiler... yes
| checking whether arm-pokymllib32-linux-gnueabi-gcc -march=armv7-a -marm -mfpu=neon -mfloat-abi=hard --sysroot=/home/archie/fsl-multilib/build/tmp/work/armv7ahf-neon-pokymllib32-linux-gnueabi/lib32-libgcc/7.3.0-r0/lib32-recipe-sysroot accepts -g... yes
| checking for arm-pokymllib32-linux-gnueabi-gcc -march=armv7-a -marm -mfpu=neon -mfloat-abi=hard --sysroot=/home/archie/fsl-multilib/build/tmp/work/armv7ahf-neon-pokymllib32-linux-gnueabi/lib32-libgcc/7.3.0-r0/lib32-recipe-sysroot option to accept ISO C89... unsupported
| checking how to run the C preprocessor... arm-pokymllib32-linux-gnueabi-gcc -E --sysroot=/home/archie/fsl-multilib/build/tmp/work/armv7ahf-neon-pokymllib32-linux-gnueabi/lib32-libgcc/7.3.0-r0/lib32-recipe-sysroot -march=armv7-a -marm -mfpu=neon -mfloat-abi=hard
| configure: error: in `/home/archie/fsl-multilib/build/tmp/work/armv7ahf-neon-pokymllib32-linux-gnueabi/lib32-libgcc/7.3.0-r0/gcc-7.3.0/build.arm-pokymllib32-linux-gnueabi.arm-pokymllib32-linux-gnueabi/libgcc':
| configure: error: C preprocessor "arm-pokymllib32-linux-gnueabi-gcc -E --sysroot=/home/archie/fsl-multilib/build/tmp/work/armv7ahf-neon-pokymllib32-linux-gnueabi/lib32-libgcc/7.3.0-r0/lib32-recipe-sysroot -march=armv7-a -marm -mfpu=neon -mfloat-abi=hard" fails sanity check
| See `config.log' for more details.
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_configure (log file is located at /mnt/datas/debian/home/archie/fsl-multilib/build/tmp/work/armv7ahf-neon-pokymllib32-linux-gnueabi/lib32-libgcc/7.3.0-r0/temp/log.do_configure.27559)

in the above mentionned config.log  the first error is :

configure:4314: $? = 0
configure:4303: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 6.3.0-18+deb9u1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
configure:4314: $? = 0
configure:4303: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:4314: $? = 1
configure:4303: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'; did you mean '--version'?
gcc: fatal error: no input files
compilation terminated.

This is annoying as this lead to libstdc++ not compiled and several related errors (while using -lsdtc flag)

Tags (1)
0 Kudos
3 Replies

1,102 Views
b36401
NXP Employee
NXP Employee

It seems wrong toolchain is used.
Please try to use the latest SDK.

Have a great day,
Victor

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,102 Views
nicolas_bigeard
Contributor I

Well, I might have a closer look, nevertheless, I launched the multilib build, just after having initialized and synced the rocko repository. I guess, this should work out of the box...

0 Kudos

1,102 Views
Yuri
NXP Employee
NXP Employee

Hello,

      The file <BUILD>/conf/local.conf is created when we initialize a build
environment. The local.conf file is a very convenient way to override several

default configurations over all the Yocto Project's tools. Essentially, we can

change or set any variable, for example, add additional packages to an image file.
  Though it is convenient, it should be considered as a temporary change as the build/ conf/ local.conf file is not usually tracked by any source code management system.
 
So, local.conf can be modified only after
 
$ DISTRO=<...> MACHINE=imx8mqevk source fsl-setup-release.sh -b build 
 
and before
 
$ bitbake <...>

Regards,

Yuri.

0 Kudos