GCL 2.7.1 cannot be compiled from source on Arch Linux and likely other
distributions (except Debian). I successfully compiled GCL 2.7.1 on Arch Linux
and created a patch that fixes the issue.
My gcc version is:
gcc (GCC) 15.2.1 20260209
Commands used:
patch -p1 -i gcl.patch
./configure --prefix=/home/Devel/Desktop/gcl-2.7.1/build && make install
Binary is then produced in build/bin. However, I could not replicate that in a
PKGBUILD. If you try to do the exact same thing in a PKGBUILD, you'd get
something like that:
;; End of Pass 2.
OPTIMIZE levels: Safety=3, Space=0, Speed=3
;; Finished compiling gcl0/gcl_cmptype.o.
[ "gcl_cmptype" = "gcl_c" ] || [ "gcl_cmptype" = "gcl_listlib" ] || \
ln -f gcl0/gcl_cmptype.o $(echo gcl0/gcl_cmptype.o |sed
's,\.o,\.done,g') #FIXME directory link
rm unixport/raw_pre_gcl
make[1]: Leaving directory '/home/Devel/Desktop/gcla/src/gcl-2.7.1/build'
make: *** [Makefile:1044: all] Error 2
Best wishes!Only in gcl-2.7.1Patched: gcl.patch
diff -ur gcl-2.7.1/git.tag gcl-2.7.1Patched/git.tag
--- gcl-2.7.1/git.tag 2025-04-11 04:38:16.941521547 +0300
+++ gcl-2.7.1Patched/git.tag 2026-03-31 18:11:47.404748002 +0300
@@ -1,2 +1,2 @@
-"Version_2_7_0"
+"Version_2_7_1"
diff -ur gcl-2.7.1/h/protoize.h gcl-2.7.1Patched/h/protoize.h
--- gcl-2.7.1/h/protoize.h 2025-03-19 16:56:47.146952854 +0200
+++ gcl-2.7.1Patched/h/protoize.h 2026-03-30 21:01:13.761309841 +0300
@@ -73,7 +73,6 @@
/* bind.c:975:OF */ extern void set_key_struct (struct key *ks, object data); /* (ks, data) struct key *ks; object data; */
/* bind.c:995:OF */ extern void gcl_init_bind (void); /* () */
/* block.c:121:OF */ extern void gcl_init_block (void); /* () */
-/* bsearch.c:5:OF */ extern void *bsearch (const void *key, const void *base, size_t nel, size_t keysize, int (*compar) (const void *,const void *)); /* (key, base, nel, keysize, compar) char *key; char *base; unsigned int nel; unsigned int keysize; int (*compar)(); */
#if defined (__MINGW32__)
/* bzero.c:3:OF */ /* extern void bzero (char *b, size_t length); */ /* (b, length) char *b; int length; */
#endif
diff -ur gcl-2.7.1/o/alloc.c gcl-2.7.1Patched/o/alloc.c
--- gcl-2.7.1/o/alloc.c 2025-04-11 03:57:51.833790576 +0300
+++ gcl-2.7.1Patched/o/alloc.c 2026-03-30 21:01:13.761309841 +0300
@@ -707,6 +707,7 @@
for (;!rb_emptyp();) {
tm_table[t_relocatable].tm_adjgbccnt--;
expand_contblock_index_space();
+ expand_contblock_array();
GBC(t_relocatable);
}
sSAleaf_collection_thresholdA->s.s_dbind=o;