davidgiven / ack

The Amsterdam Compiler Kit
http://tack.sf.net
Other
420 stars 59 forks source link

Building ack release, issue with i80 (8080/z80) support? #219

Open jamescarpino opened 4 years ago

jamescarpino commented 4 years ago

I tried building release-6-0-pre-5 (via git clone, and via the zip on the releases page, and via the tar.xz).

Build succeeded but then it seems to be missing 8080 support (i80).

bash $ ls /usr/local/share/ack/ego/
i386.descr  i86.descr  m68020.descr

Then when trying to build cpmish, it looks for i80.descr, but that did not seem to appear in my install.

Trying the first offending line in isolation:

ack -mcpm -c -o .obj/cpmtools/libcuss/libcuss_KAYPROII/cleareol/cleareol.o cpmtools/libcuss/cleareol.c  -O6 -DLIBCUSS_KAYPROII
"cpmtools/libcuss/cleareol.c", line 15: (warning) implicit declaration of function cpm_printstring0
error on line 0: cannot open /usr/local/share/ack/ego/i80.descr
ego: /usr/local/lib/ack/ego/il got a unix signal 

I'm figuring this has to do with some option of including i80 support in the build, but I see this line sitting happily in the makefile, include mach/i80/build.mk

Building on Linux Mint 18. Did set PREFIX = /usr/local in makefile. Also set DEFAULT_PLATFORM = linux386 but had previously tried it with pc86 by mistake with the same result. Doing make clean before builds, and manually deleted /usr/local/share/ack and /usr/local/lib/ack when needed. The three files i386.descr i86.descr m68020.descr after a build, but no i80.descr.

I haven't fully read the build log, but when I type make again, I see "Build completed successfully." I don't see errors skimming through the log, though a lot of warnings. Attaching output of make.

build_log_release-6-0-pre-5.txt

davidgiven commented 4 years ago

Gosh, 6.0pre5 was a long time ago.

That's a known bug in that -O6 (I think it applies to anything above -O3?) tries to invoke the standalone optimiser. However, there isn't one for the 8080 so the compilation fails. However, a low enough -O setting won't try to do this, and so should work fine.

However, that version is missing a lot of stuff I added specifically for cpmish (bindings to CP/M system calls), so won't work there. FWIW, I've just tried checking out the head of dtrg-buildfailures and it compiled out of the box for me, so whatever sporadic problem is showing up didn't --- you may want to try just rebuilding it until it works...