Bug 12989

Summary: qemumips64 libn32 build of valgrind fails: long-double[-32 vs -n32.h]
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Randy MacLeod <randy.macleod>
Component: devtools / tool chainAssignee: Unassigned <unassigned>
Status: RESOLVED OBSOLETE QA Contact:
Severity: minor    
Priority: Medium CC: akuster808, meta.mr.watcher, meta.watcher, randy.macleod
Version: 2.7   
Target Milestone: 5.99   
Hardware: x86   
OS: mips64   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Randy MacLeod 2018-11-08 15:08:38 UTC
When bitbaking world for qemumips64, valgrind compile fails for libn32 with:

   configure:6190: checking for 32 bit build support
   ...
   fatal error: bits/long-double-32.h: No such file or directory
It seems that the toolchain is producing:
   tmp-glibc/sysroots-components/mips64-n32/libn32-glibc/usr/include/bits/long-double-n32.h

I'm not sure if it's valgrind's configure test program or the toolchain at fault.
Comment 1 Armin Kuster 2018-11-10 20:39:32 UTC
this is weird. Valgring 3.14 claims to have support for mips n32.

any more info on how to reproduce this? I want to give our toolchain folks a reproducer.
Comment 2 Randy MacLeod 2018-11-11 17:35:14 UTC
This tune is enabled by default in the WR Linux disto but not in oe-core/poky.

With poky/master and 
   73f8baa8d8 valgrind: drop mips n32 support
work-around reverted, add the following to your local.conf:
---
MACHINE ??= "qemumips64"

require conf/multilib.conf

MULTILIB_GLOBAL_VARIANTS_append = " libn32"
MULTILIBS ?= "multilib:lib32 multilib:libn32"
DEFAULTTUNE_virtclass-multilib-lib32 ?= "mips"
DEFAULTTUNE_virtclass-multilib-libn32 ?= "mips64-n32"
---
Then run:
$ bitbake -c fetch libn32-valgrind
to confirm that the build env is setup to grok libn32 and if so:
$ bitbake libn32-valgrind


...


| checking whether we are using the GNU C++ compiler... yes
| checking whether mips64-pokymllibn32-linux-gnun32-g++  -meb -mabi=n32 -mhard-float -no-pie -fno-PIE --sysroot=/ala-lpggp22/rmacleod/src/distro/yocts
| checking dependency style of mips64-pokymllibn32-linux-gnun32-g++  -meb -mabi=n32 -mhard-float -no-pie -fno-PIE --sysroot=/ala-lpggp22/rmacleod/srce
| checking for mips64-pokymllibn32-linux-gnun32-ranlib... mips64-pokymllibn32-linux-gnun32-ranlib
| checking for gcc-ranlib... no
| checking for a sed that does not truncate output... (cached) sed
| checking for gcc-ar... /ala-lpggp22/rmacleod/src/distro/yocto/b.poky/vg/tmp/hosttools/gcc-ar
| checking for perl... (cached) /usr/bin/env perl
| checking for gdb... /no/gdb/was/found/at/configure/time
| checking dependency style of mips64-pokymllibn32-linux-gnun32-gcc  -meb -mabi=n32 -mhard-float -no-pie -fno-PIE --sysroot=/ala-lpggp22/rmacleod/srce
| checking for diff -u... yes
| checking for mips64-pokymllibn32-linux-gnun32-gcc  -meb -mabi=n32 -mhard-float -no-pie -fno-PIE --sysroot=/ala-lpggp22/rmacleod/src/distro/yocto/b.d
| checking for a supported version of gcc... ok (8.2.0)
| checking build system type... x86_64-pc-linux-gnu
| checking host system type... mips64-pokymllibn32-linux-gnun32
| checking for a supported CPU... ok (mips64)
| checking for a 64-bit only build... no
| checking for a 32-bit only build... yes
| checking for a supported OS... ok (linux-gnun32)
| checking for the kernel version... 2.6 or later (4.4.0-128-generic)
| checking for 32 bit build support... no
| configure: error: --enable-only32bit was specified but system does not support 32 bit builds
| NOTE: The following config.log files may provide further information.
| NOTE: /ala-lpggp22/rmacleod/src/distro/yocto/b.poky/vg/tmp/work/mips64-n32-pokymllibn32-linux-gnun32/libn32-valgrind/3.14.0-r0/build/config.log
| ERROR: configure failed
| WARNING: /ala-lpggp22/rmacleod/src/distro/yocto/b.poky/vg/tmp/work/mips64-n32-pokymllibn32-linux-gnun32/libn32-valgrind/3.14.0-r0/temp/run.do_confi'
| ERROR: Function failed: do_configure (log file is located at /ala-lpggp22/rmacleod/src/distro/yocto/b.poky/vg/tmp/work/mips64-n32-pokymllibn32-linu)
ERROR: Task (virtual:multilib:libn32:/ala-lpggp22/rmacleod/src/distro/yocto/poky.git/meta/recipes-devtools/valgrind/valgrind_3.14.0.bb:do_configure) '
NOTE: Tasks Summary: Attempted 1094 tasks of which 213 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
  virtual:multilib:libn32:/ala-lpggp22/rmacleod/src/distro/yocto/poky.git/meta/recipes-devtools/valgrind/valgrind_3.14.0.bb:do_configure
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
Comment 3 Armin Kuster 2018-11-13 17:54:24 UTC
opened a bug within MV to have folks take a look.
Comment 4 Armin Kuster 2018-11-14 16:31:10 UTC
We have some idea whats going on. may have a patch shortly.
Comment 5 Randy MacLeod 2019-04-18 19:40:04 UTC
ping? I'm upgrading to 3.15, btw.
Comment 6 Armin Kuster 2019-05-16 20:11:29 UTC
(In reply to comment #5)
> ping? I'm upgrading to 3.15, btw.

sorry. I don't think we found anything conclusive. does this work with the update?
Comment 7 Randy MacLeod 2019-05-17 15:44:18 UTC
No it doesn't work after the 3.15 update either.
The error is the same as above.
Comment 8 akuster 2021-05-20 15:23:49 UTC
got no response. Have nothing more to add to this issue.
Comment 9 Randy MacLeod 2023-08-03 15:10:40 UTC
Wind River is no longer testing mips64.
Comment 10 Randy MacLeod 2023-10-24 14:24:42 UTC
Bulk move from 4.99 or 0.00 to 5.99
Comment 11 Randy MacLeod 2026-01-29 16:17:09 UTC
Mips is obsolete.