Jonesforth segmentation error

The system on which I am turned on:

/tmp/jonesforth $ cat /etc/issue Ubuntu 16.04.1 LTS \n \l 

This is a 32-bit system.

Clone from the repository of annexation:

 git clone git://git.annexia.org/git/jonesforth.git 

Build is fine:

 cd jonesforth /tmp/jonesforth $ make gcc -m32 -nostdlib -static -Wl,-Ttext,0 -o jonesforth jonesforth.S 

However, the tests fail:

 /tmp/jonesforth $ make test test_stack_trace.f ... --- .test_stack_trace.test 2016-09-17 17:44:59.488492834 -0500 +++ test_stack_trace.f.out 2016-09-17 17:33:11.171189490 -0500 @@ -0,0 +1,6 @@ +TEST4+0 TEST3+0 TEST2+0 TEST+0 +3 +TEST4+0 TEST3+32 TEST2+0 TEST+0 +TEST4+0 TEST3+0 TEST2+4 TEST+0 +3 +TEST4+0 TEST3+32 TEST2+4 TEST+0 Makefile:34: recipe for target 'test_stack_trace.test' failed make: *** [test_stack_trace.test] Error 1 

Running jonesforth results in a segmentation error:

 /tmp/jonesforth $ cat jonesforth.f - | ./jonesforth Segmentation fault 
+5
source share
1 answer

Removing -Wl,-Ttext,0 from the Makefile entry for jonesforth :

 jonesforth: jonesforth.S gcc -m32 -nostdlib -static $(BUILD_ID_NONE) -o $@ $< 

seems to help. Assembly completed successfully:

 /tmp/jonesforth $ touch jonesforth.S /tmp/jonesforth $ make gcc -m32 -nostdlib -static -o jonesforth jonesforth.S 

Pass tests:

 /tmp/jonesforth $ make test test_stack_trace.f ... ok test_stack.f ... ok test_comparison.f ... ok test_assembler.f ... ok test_exception.f ... ok test_read_file.f ... ok test_number.f ... ok 

And it starts:

 /tmp/jonesforth $ cat jonesforth.f - | ./jonesforth JONESFORTH VERSION 47 14499 CELLS REMAINING OK 
+6
source

All Articles