Bug 587391 - New gc release breaks kaya build
Summary: New gc release breaks kaya build
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: gc
Version: rawhide
Hardware: All
OS: Linux
low
high
Target Milestone: ---
Assignee: Rex Dieter
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 555493
TreeView+ depends on / blocked
 
Reported: 2010-04-29 19:24 UTC by Jochen Schmitt
Modified: 2010-05-03 17:01 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2010-05-03 17:01:40 UTC
Type: ---
Embargoed:


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

Description Jochen Schmitt 2010-04-29 19:24:53 UTC
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 19:31:37 UTC
Please s/koji/kaya/g

Comment 2 Rex Dieter 2010-04-29 19:44:42 UTC
oi, looks fun, I'll take a look.

Comment 3 Rex Dieter 2010-04-29 19:45:05 UTC
bonus item #1:  I get to
yum install happy
:)

Comment 4 Rex Dieter 2010-04-29 20:18:27 UTC
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 19:37:17 UTC
Created attachment 410846 [details]
Compiled Prelude.k

Comment 6 Jochen Schmitt 2010-05-02 19:38:54 UTC
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 19:48:27 UTC
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 19:49:54 UTC
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 19:50:27 UTC
and, I can post a scratch build with the patch if you want.

Comment 10 Rex Dieter 2010-05-02 20:15:56 UTC
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 20:45:42 UTC
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 17:01:40 UTC
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
...
#endif
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.