Open
Description
Hello.
I was able to build the scheme
binary for the x32 ABI. I am interested in the x32 ABI because it can give significant speedups for GC-intensive programs and reduce memory usage by 50 % (observed for other Schemes like bigloo).
The following error during make shows that there seems to be some asserts or assumptions that differ for x32 compared to x86-64. Can I just modify them? If so, where and how?
make all
echo '(reset-handler abort)'\
'(base-exception-handler (lambda (c) (fresh-line) (display-condition c) (newline) (reset)))'\
'(keyboard-interrupt-handler (lambda () (display "interrupted---aborting\n") (reset)))'\
'(optimize-level 3)'\
'(debug-level 0)'\
'(commonization-level (commonization-level))'\
'(fasl-compressed #t)'\
'(compress-format (compress-format))'\
'(compress-level (compress-level))'\
'(generate-inspector-information #f)'\
'(subset-mode (quote system))'\
'(compile-file "cmacros.ss" "cmacros.so")'\
| ../bin/a6le/scheme -q
sizeof(ptr) * 8 [4] != ptr_bits [64]
sizeof(long) * 8 [4] != long_bits [64]
sizeof(size_t) * 8 [4] != size_t_bits [64]
sizeof(ssize_t) * 8 [4] != size_t_bits [64]
sizeof(ptrdiff_t) * 8 [4] != ptrdiff_t_bits [64]
sizeof(bigitbigit) [4] != sizeof(bigit) [4] * 2
sizeof(I64) [4] != 8
sizeof(U64) [4] != 8
make[4]: *** [Mf-base:372: cmacros.so] Error 1
make[3]: *** [Mf-base:176: allx] Error 2
make[2]: *** [Mf-base:193: bootstrap] Error 2
make[1]: *** [Makefile:22: build] Error 2
make: *** [Makefile:20: build] Error 2
I built the x32 binary by modifying the build process as follows (one needs x32 versions of ncurses, libuuid, libz, liblz4):
./configure ZLIB=/usr/local/libx32/libz.a LZ4=/usr/local/libx32/liblz4.a --machine=a6le --installbin=/usr/local/binx32 --installlib=/usr/local/libx32 --installman=/usr/local/share/man
sed -i.orig -e '/s/ -m64/ -mx32/g' -e '/ -Werror/ / g' 's/elf_x86_64/elf32_x86_64/g' c/Mf-a6le
Metadata
Metadata
Assignees
Labels
No labels