Red Hat Bugzilla – Bug 587391
New gc release breaks kaya build
Last modified: 2010-05-03 13:01:40 EDT
The current release of gc in rawhide (release gc-7.2-0.1 caused a FTBFS of koji (Please refer to BZ #555493).
The reason is a changed API of the function GC_free_space_divisor which caused a failure of the build.
Koni accept that a call of GC_free_space_divisor with a new value may return the old value.
oi, looks fun, I'll take a look.
bonus item #1: I get to
yum install happy
Created attachment 410224 [details]
patch to adjust to new gc api
First try at quick-n-dirty patch to fix build issue. Though, still fails in test063 due to DSOImplicitLinking
I'll ping gc upstream to inquire if the api change here was intentional.
Created attachment 410846 [details]
The issue is, that GC_set_free_space_divisor was called from a function which except a return value, so your suggested patch doesn't works for me. I have uploaded the C code which was produced during the compilation of Prelude.k
Define how it doesn't work? I'm not familiar with this, so you'll have to explicitly explain it.
To be clear, the build/compilation of kaya completed for me with the aforemtioned patch, which is part of why I'm a little confused by your comment.
and, I can post a scratch build with the patch if you want.
ok, I see this too then,
posix/scgi.ks: old = gcSetFSD(20); gc(); void(gcSetFSD(old));
which would need adjustments, as well as any other code expecting a return value, sure.
OK, looks like there's a new api for getting this value, according to gc.h
GC_API void GC_CALL GC_set_free_space_divisor(GC_word);
GC_API GC_word GC_CALL GC_get_free_space_divisor(void);
See the new GC_get_free_space_divisor call.
upstream gc responded that the change in api is intentional. There is
GC_VERSION_MAJOR/MINOR defined in gc_version.h ,
So, wrapping the new api in something like
#if GC_VERSION_MAJOR >= 7 && GC_VERSION_MINOR >= 2
is possible, but not sure how/if ghc supports cpp #if statements. ?
So, let's bounce this back to bug #555493, and consider this notabug (I guess), as I don't think reverting the gc api is a good idea at this point.
I'll work on another patch to implement a new gcGetFSD function to match the newer api.