Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
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:
Doc Type: Bug Fix
Doc Text:
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 (deleted)
2010-04-29 20:18 UTC, Rex Dieter
no flags Details | Diff
Compiled Prelude.k (deleted)
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.