Re: Bug when cross-compiling for ppc

Vincent Fortier via Gdb <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CALAySu+XKVTr1XSbiwXRJ5OLaDJ=G1tKtZ9MBThc-OFZyRwwCg@mail.gmail.com>
Le jeu. 14 sept. 2023, à 02 h 24, Andreas Schwab <[email protected]> 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, [email protected]
> 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...
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.