bebbo / amiga-gcc

The GNU C-Compiler with Binutils and other useful tools for cross development for Amiga
GNU General Public License v2.0
320 stars 66 forks source link

alib issue with new toolchain #7

Closed mheyer32 closed 6 years ago

mheyer32 commented 6 years ago

ADoom compiled with the new toolchain fails in the very first call to CreateTask, while the same code compiled with the older toolchain does not. CreateTask returns with a failure and thus ADoom exits.

While I cannot pin it down I guess there must be some difference in how alib gets compiled by the toolchain?! Or maybe the return value is somehow broken?

bebbo commented 6 years ago

added the missing patches which provide __stdarg.

bebbo commented 6 years ago

please test

mheyer32 commented 6 years ago

Now something else is broken, the toolchain doesn't build anymore: (and that after removing the out directory completely and doing a make clean)

make[2]: Leaving directory '/home/matze/amigatoolchain/amiga-gcc/build/gcc/gcc'
make[1]: Leaving directory '/home/matze/amigatoolchain/amiga-gcc/build/gcc'
echo "done" >build/gcc/_done
built /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-c++ /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-g++ /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-gcc-6.4.1b /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-gcc-nm /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-gcov /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-gcov-tool /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-cpp /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-gcc /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-gcc-ar /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-gcc-ranlib /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-gcov-dump
mkdir -p /home/matze/amigatoolchain/amiga-gcc-out/m68k-amigaos/libnix/lib/libnix
mkdir -p build/libnix
echo 'void foo(){}' > build/libnix/x.c
if [ ! -e /home/matze/amigatoolchain/amiga-gcc-out/m68k-amigaos/libnix/lib/libnix/ncrt0.o ]; then /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-gcc -c build/libnix/x.c -o /home/matze/amigatoolchain/amiga-gcc-out/m68k-amigaos/libnix/lib/libnix/ncrt0.o; fi
if [ ! -e /home/matze/amigatoolchain/amiga-gcc-out/m68k-amigaos/libnix/lib/libb/libnix/libm.a ]; then /home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-ar r /home/matze/amigatoolchain/amiga-gcc-out/m68k-amigaos/libnix/lib/libb/libnix/libm.a; fi
/home/matze/amigatoolchain/amiga-gcc-out/bin/m68k-amigaos-ar: /home/matze/amigatoolchain/amiga-gcc-out/m68k-amigaos/libnix/lib/libb/libnix/libm.a: No such file or directory
Makefile:522: recipe for target 'build/libnix/Makefile' failed
make: *** [build/libnix/Makefile] Error 1
bebbo commented 6 years ago

please test

mheyer32 commented 6 years ago

Toolchain compiles again, but original problem still persists.

mheyer32 commented 6 years ago

I think your patch should have fixed it, but for some reason the __stdargs did not make it into the headers. I'll dig further.

bebbo commented 6 years ago

after make clean and make all the headers are ok here.

bebbo commented 6 years ago

I also built ADoom and it runs...

mheyer32 commented 6 years ago

Something weird happened, I thought I already responded here, but apparently didn't actually commit the comment. Long story short: the makefile for the NDK only lists the download as dependency. Thus, if you do just an incremental update to the toolchain (such as changing the .diff files) and the downloads remain unchanged, it looks like it won't try to re-apply the patches again.

What I had to do was to remove the download directory... then it worked.

bebbo commented 6 years ago

thanks - dependency to the patches was missing

mheyer32 commented 6 years ago

Closing. Thanks!