Bug 587391 - New gc release breaks kaya build
New gc release breaks kaya build
Product: Fedora
Classification: Fedora
Component: gc (Show other bugs)
All Linux
low Severity high
: ---
: ---
Assigned To: Rex Dieter
Fedora Extras Quality Assurance
: Triaged
Depends On:
Blocks: 555493
  Show dependency treegraph
Reported: 2010-04-29 15:24 EDT by Jochen Schmitt
Modified: 2010-05-03 13:01 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2010-05-03 13:01:40 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
patch to adjust to new gc api (927 bytes, patch)
2010-04-29 16:18 EDT, Rex Dieter
no flags Details | Diff
Compiled Prelude.k (52.54 KB, text/plain)
2010-05-02 15:37 EDT, Jochen Schmitt
no flags Details

  None (edit)
Description Jochen Schmitt 2010-04-29 15:24:53 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.

Best Regards:

Jochen Schmitt
Comment 1 Jochen Schmitt 2010-04-29 15:31:37 EDT
Please s/koji/kaya/g
Comment 2 Rex Dieter 2010-04-29 15:44:42 EDT
oi, looks fun, I'll take a look.
Comment 3 Rex Dieter 2010-04-29 15:45:05 EDT
bonus item #1:  I get to
yum install happy
Comment 4 Rex Dieter 2010-04-29 16:18:27 EDT
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.
Comment 5 Jochen Schmitt 2010-05-02 15:37:17 EDT
Created attachment 410846 [details]
Compiled Prelude.k
Comment 6 Jochen Schmitt 2010-05-02 15:38:54 EDT
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
Comment 7 Rex Dieter 2010-05-02 15:48:27 EDT
Define how it doesn't work?  I'm not familiar with this, so you'll have to explicitly explain it.
Comment 8 Rex Dieter 2010-05-02 15:49:54 EDT
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.
Comment 9 Rex Dieter 2010-05-02 15:50:27 EDT
and, I can post a scratch build with the patch if you want.
Comment 10 Rex Dieter 2010-05-02 16:15:56 EDT
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.
Comment 11 Rex Dieter 2010-05-02 16:45:42 EDT
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.
Comment 12 Rex Dieter 2010-05-03 13:01:40 EDT
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
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.

Note You need to log in before you can comment on or make changes to this bug.