https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123733
--- Comment #4 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot
Uni-Bielefeld.DE> ---
> --- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot
> Uni-Bielefeld.DE> ---
>> 2. To add a configure check to make sure GC_is_init_called is
>> available.
>
> ... while this one would be my preference, especially given that libobjc
> works just fine with 7.6.0 and just (conditionally) adding a declaration
> allows the build to finish (though admittedly I forgot to check if
> libga68.so is self-contained if so) before restarting my builds with the
> declaration.
As expected, Algol68 programs FAIL to link when manually providing a
declaration of GC_is_init_called in ga68-alloc.c (so the function isn't
just not declared in <gc/gc.h> in previous versions of libgc).
However, even if I manually disable the LIBGA68_WITH_GC part of
libga68-alloc.c, the library does build and has no undefined references
(except for the expected __algol68_main), but every Algol68 testcase
fails to link:
/vol/gcc/lib/libgc.la: file not recognized: file format not recognized
collect2: error: ld returned 1 exit status
That path is obviously wrong if not linking with libtool, however
libga68.epec includes
%rename lib liborig_ga68_renamed
*lib: %{noga68lib: ; :-lm /vol/gcc/lib/libgc.la} %(liborig_ga68_renamed)
which is clearly wrong. Either provide -lgc instead, maybe with
-L/vol/gcc/lib added. This way, the right lib should be picked up,
with or without libtool.