Closed curiousdannii-testing closed 2 years ago
557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:
Comment by zarf :
I take it you mean recompiling I6 from source...
It might be useful to transfer the generated auto.inf (I6) file to a Mac/Win machine to see if a known-good I6 compiler can handle it. But I strongly suspect that this is a problem with the I6 binary in the Linux package.
557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:
Comment by jaime :
I've confirmed it works fine on 64-bit Ubuntu GNOME 16.04.3 LTS running on the linux-surface kernel from ppa:tigerite/kernel. Maybe it's just an issue with the 32-bit binary specifically. Will try under 64-bit Debian to eliminate all other confounding factors.
557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:
Comment by jaime :
It is definitely a problem with the 32 bit Linux binary. I've confirmed it works fine on a 64-bit Linux machine but doesn't work in a 32-bit virtual machine on that same physical machine, regardless of what distro is installed. Have yet to attempt compiling from source with debug.
557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:
Comment by jaime :
Update: I tried compiling the Inform 6 compiler from source and copying it to /usr/local/libexec/inform6 to overwrite the binary provided by the installation process.
This version of the Inform 6 compiler – the one compiled from source – works fine.
Given this, I'm inclined to believe either that the 32-bit binary for the Inform 6 compiler provided in the official .tar.gz is somehow corrupt, or, perhaps more likely, that install-inform7.sh mistakenly unpacks the 64-bit binary even on 32-bit architectures.
I've actually never seen what happens when a 32-bit architecture tries to run a 64-bit binary before. For my own edification, I'll compile from source on a 64-bit machine, try to run it on my 32-bit machine, and see if I get results consistent with what I was seeing before.
EDIT: Never mind. The 64-bit binary simply entirely refuses to run on the 32-bit architecture, as I should have known. I can only conclude there is a problem with the inform6 binary provided with the .tar.gz. If I can confirm my version works on other 32-bit Linux distros, I'll recompile without debug and attach it to this issue.
EDIT 2: My compilation of inform6 does seem to work on other 32-bit Linux distros, so I'm attaching it now.
EDIT 3: Never mind. It occurs to me I do not know how to attach a file to an existing issue report. There doesn't seem to be a way.
here is the resolution field
Reported by : jaime
Description :
On a minimal install of Debian 9 powered by Linux 4.9.0-4-686-pae, command-line Inform 7 plainly does not work. The i7 utility runs properly, and it's able to use ni to translate well-formed story files into Inform 6 source code, but the inform6 compiler crashes as soon as it starts up, reporting "*** buffer overflow detected ***: /usr/local/libexec/inform6 terminated." Under "additional information" I've included the complete build log. If I can find the time, I might try compiling Inform 7 from source with -g later, so as to possibly be able to provide a more readable and informative crash log.
Steps to reproduce :
Additional information :
The build log was as follows.
**I7 compilation command: "/usr/local/libexec/ni" --internal "/usr/local/share/inform7/Internal" --format=ulx --project "/home/jaime/I7Projs/test/Test.inform"**
Inform 7 build 6M62 has started.
++ 0% (Reading text)
I've now read your source text, which is 8 words long.
++ 5% (Analysing sentences)
I've also read Standard Rules by Graham Nelson, which is 42655 words long.
I've also read English Language by Graham Nelson, which is 2297 words long.
++ 15% (Drawing inferences)
++ 20% (Binding rulebooks)
++ 23% (Binding rulebooks)
++ 26% (Binding rulebooks)
++ 29% (Binding rulebooks)
++ 32% (Binding rulebooks)
++ 35% (Binding rulebooks)
++ 38% (Binding rulebooks)
++ 41% (Generating code)
++ 44% (Generating code)
++ 47% (Generating code)
++ 50% (Generating code)
++ 53% (Generating code)
++ 56% (Generating code)
++ 59% (Generating code)
++ 62% (Generating code)
++ 65% (Generating code)
++ 68% (Generating code)
++ 71% (Generating code)
++ 74% (Generating code)
++ 77% (Generating code)
++ 80% (Generating code)
++ 83% (Generating code)
++ 86% (Generating code)
++ 89% (Generating code)
++ 92% (Generating code)
++ 95% (Generating code)
++ 98% (Generating code)
The 8-word source text has successfully been translated into an intermediate
description which can be run through Inform 6 to complete compilation.
There were 1 room and 1 thing.
++ 100% (Finishing work)
++ Ended: Translation succeeded: 1 room, 1 thing
Inform 7 has finished.
**I6 Compilation CMD "/usr/local/libexec/inform6" -kE2wSDGx "/home/jaime/I7Projs/test/Test.inform/Build/auto.inf" -o "/home/jaime/I7Projs/test/Test.inform/Build/output.ulx"**
Inform 6.33N for Unix (30th August 2015)
======= Backtrace: =========
[0x80a221d]
[0x80cce44]
[0x80ccdad]
[0x80ccdda]
[0x806c853]
[0x8071487]
[0x804a04a]
[0x809a13a]
[0x804a34b]
======= Memory map: ========
08048000-08168000 r-xp 00000000 08:01 136038 /usr/local/share/inform7/Compilers/inform6
08168000-08170000 rw-p 0011f000 08:01 136038 /usr/local/share/inform7/Compilers/inform6
08170000-08182000 rw-p 00000000 00:00 0
08414000-08551000 rw-p 00000000 00:00 0 [heap]
b6701000-b77aa000 rw-p 00000000 00:00 0
b77aa000-b77ac000 r--p 00000000 00:00 0 [vvar]
b77ac000-b77ae000 r-xp 00000000 00:00 0 [vdso]
bfa9e000-bfabf000 rw-p 00000000 00:00 0 [stack]
Aborted
imported from: [Mantis 2033] The inform6 compiler used by i7 crashes with a buffer overflow whenever invoked