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...