Bug when cross-compiling for ppc

Vincent Fortier th0ma7@gmail.com
Thu Sep 14 20:34:32 GMT 2023


Le jeu. 14 sept. 2023, à 02 h 24, Andreas Schwab <schwab@suse.de> a écrit :
>
> On Sep 12 2023, Vincent Fortier via Gdb wrote:
>
> > Now the question is, how to fix that?  Help would be much welcomed :)
>
> You need to set CFLAGS_FOR_BUILD (to something non-empty), so it does
> not default to $CFLAGS (which is questionable in the first place).
>
> --
> Andreas Schwab, SUSE Labs, schwab@suse.de
> GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
> "And now for something completely different."

For a start, I ended-up disabling sim entirely for PPC and now it's
building just fine.  I had found a ticket from openwrt having a
somewhat similar issue that was disabling it as well.  So I used that
option too.

I've tried that by setting CFLAGS_FOR_BUILD='-O2' just for the sake of
it not being empty but I'm still getting errors:
compilation terminated.
make[7]: *** [Makefile:660: table.o] Error 1
In file included from ./gen-icache.c:22:
./misc.h:23:10: fatal error: build-config.h: No such file or directory
   23 | #include "build-config.h"
      |          ^~~~~~~~~~~~~~~~

Further looking into the logs there's this hidden in a temporary
directory (once rm of it is commented out)
configure:2482: checking whether the C compiler works
configure:2504: gcc -O2
-I/home/spksrc/qoriq-debug/spksrc/toolchain/syno-qoriq-6.2.4/work/powerpc-e500v2-linux-gnuspe/powerpc-e500v2-linux-gnuspe/sysroot/usr/include
-mcpu=8548 -mhard-float -mfloat-gprs=double
-I/home/spksrc/qoriq-debug/spksrc/cross/gdb-latest/work-qoriq-6.2.4/install/usr/local/gdb/include
  conftest.c  >&5
gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
gcc: error: unrecognized command-line option '-mfloat-gprs=double'
configure:2508: $? = 1
configure:2546: result: no

The exec string from sim/ppc is
$ .././configure --enable-languages=all
--target=powerpc-e500v2-linux-gnuspe --host=i686-pc-linux
--build=i686-pc-linux

But as you can see I believe it refers to the "build" C compiler
instead of the"target" compiler OR uses the "target" flags instead of
the "build" flags (wonder why it would?).

Anyhow, disabling sim/ppc fixed things for now.

Migrating gdb to cmake using toolchain files or meson would
potentially remove these issues and simplify cross-compiling while
reducing build time.  But that's unrelated...


More information about the Gdb mailing list