public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* Gcc build fails with test_real_width is negative
@ 2021-11-28 19:16 Mr Dini
  2021-11-29 10:10 ` Stefan Ring
  0 siblings, 1 reply; 9+ messages in thread
From: Mr Dini @ 2021-11-28 19:16 UTC (permalink / raw)
  To: gcc-help

Hi,

I am trying to build a native gcc binary for a pre-existing rootfs of my smart TV. The vendor has provided a toolchain for x86_64 hosts:

root@hal-9000:~# arm-webos-linux-gnueabi-gcc --version
arm-webos-linux-gnueabi-gcc (GCC) 6.2.0
Copyright (C) 2016 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.

As for the building I have tried building on an ubuntu 16.04 host with gcc version 5.3.1 and Ubuntu 20.04 with gcc version 9.3.0. The issue is always the same.

I have also tried to build the latest gcc release, 9.3.0, 9.2.0, 5.4.0 and 6.2.0.

Here is the error: https://pastebin.com/raw/Cr4amNCJ

To quote the specific part:

In file included from ../.././gcc/rtl.h:27,
                 from ../.././gcc/genoutput.c:90:
../.././gcc/real.h:74:76: error: narrowing conversion of '-1' from 'int' to 'long unsigned int' [-Wnarrowing]
   74 |   [sizeof (REAL_VALUE_TYPE) <= REAL_WIDTH * sizeof (HOST_WIDE_INT) ? 1 : -1];
      |                                                                            ^

Also, it looks like when gcc is building this specific component, make does a cd to host-armv7a-linux-gnueabi/gcc yet it uses the g++ of the host and completely ignores the CXX variable I have set when I configure gcc:

CC="arm-webos-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=softfp --sysroot=/opt/webos-sdk-x86_64/1.0.g/sysroots/armv7a-neon-webos-linux-gnueabi" CXX="arm-webos-linux-gnueabi-g++ -march=armv7-a -mfpu=neon -mfloat-abi=softfp --sysroot=/opt/webos-sdk-x86_64/1.0.g/sysroots/armv7a-neon-webos-linux-gnueabi" ./configure --prefix=/opt/webos-sdk-x86_64/1.0.g/sysroots/armv7a-neon-webos-linux-gnueabi --with-mpfr=/opt/webos-sdk-x86_64/1.0.g/sysroots/armv7a-neon-webos-linux-gnueabi --host=armv7a-linux-gnueabi --target=armv7a-linux-gnueabi --build=x86_64-linux-gnu

Any ideas what can I do?

Thank you so much!

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: Gcc build fails with test_real_width is negative
@ 2021-11-29 11:05 Mr Dini
  2021-11-29 12:00 ` Stefan Ring
  0 siblings, 1 reply; 9+ messages in thread
From: Mr Dini @ 2021-11-29 11:05 UTC (permalink / raw)
  To: gcc-help

Thank you for the quick reply. I have read meanwhile and found an explanation that in this case the wrong size is being cached and that's why the compilation fails. So I had the idea to grab an extremely old 32 bit ubuntu 16.04 chroot and seemingly if I build from there I get past the previous issue.

However I encounter another one: https://pastebin.com/raw/WnAHLk32

I noticed that the Makefile failing is under host-armv7a-linux-gnueabi/libgcc. If I manually edit this file to include the stdio.h file from my target sysroot I get past it, as the file exists here:

root@hal-9000:~/gcc-6.2.0# ls /opt/webos-sdk-x86_64/1.0.g/sysroots/armv7a-neon-webos-linux-gnueabi/usr/include/stdio.h
/opt/webos-sdk-x86_64/1.0.g/sysroots/armv7a-neon-webos-linux-gnueabi/usr/include/stdio.h

However this libgcc build seemingly ignores what I have set in the environment, for example it wants to use armv7a-linux-gnueabi-cc instead of arm-webos-linux-gnueabi-gcc like I specified when I ran configure on the root of the project. Seemingly this libgcc dependency building ignores all config vars that has been set before. I am unsure why.

For example armv7a-linux-gnueabi-cc didn't even exist and so it errored first, I had to symlink the right file to that path.

I think the first step would be to debug why libgcc is not picking up the sysroot and CC configurations, but I tried to touch the Makefile manually to include the /opt/webos-sdk-x86_64/1.0.g/sysroots/armv7a-neon-webos-linux-gnueabi/usr/include path so it gets past the stdio.h not found error. Then it fails a tiny bit later:

https://pastebin.com/raw/D5DsQPid

Also, you mentioned I am not supposed to build within the source tree. How am I supposed to build then? outside of the gcc folder and by specifying "make -C folder"?

And last, but not least, I am quite a beginner here as you could probably tell. I have been trying to look for some pre-existing canadian cross build scripts for arm gcc but surprisingly I haven't found any. Do you happen to know one? I would love to take a look.

Thanks

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-12-02 21:23 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-28 19:16 Gcc build fails with test_real_width is negative Mr Dini
2021-11-29 10:10 ` Stefan Ring
2021-11-29 14:01   ` Jonathan Wakely
2021-11-29 11:05 Mr Dini
2021-11-29 12:00 ` Stefan Ring
2021-11-29 12:12   ` Mr Dini
2021-11-29 12:18   ` AW: " Stefan Franke
2021-11-29 19:40     ` Mr Dini
2021-12-02  9:20       ` Stefan Ring
2021-12-02 21:22         ` Stefan Ring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).