Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 560736 - Building dev-scheme/guile-1.8.8 with gcc-5 breaks anything using guile-snarf (i.e.: dev-scheme/guile-cairo-1.9.91, x11-libs/guile-gtk-2.1-r2)
Summary: Building dev-scheme/guile-1.8.8 with gcc-5 breaks anything using guile-snarf ...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GCC Porting (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Scheme Project
URL:
Whiteboard:
Keywords: PATCH
: 553098 (view as bug list)
Depends on:
Blocks: gcc-5
  Show dependency tree
 
Reported: 2015-09-17 23:43 UTC by Greg Turner
Modified: 2015-10-12 23:25 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
guile-1.8.8-gcc5.patch (guile-1.8.8-gcc5.patch,531 bytes, patch)
2015-09-18 00:05 UTC, Ryan Hill (RETIRED)
Details | Diff
fix-bug-560736-v2.patch (bug_560736.patch,676 bytes, patch)
2015-09-18 21:08 UTC, Greg Turner
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Greg Turner 2015-09-17 23:43:21 UTC
When I build guile with gcc-5.2, guile-cairo cannot build.  When this occurs, it seems to be because, i.e.,

  ${WORKDIR}/guile-cairo-1.9.91_build/guile-cairo/guile-cairo.x

is generated looking like:

  scm_c_define_gsubr (foo,
  scm_c_define_gsubr (bar,
  scm_c_define_gsubr (baz,
  .
  .

That is, it seems the arguments after the first one are not being properly generated, and hence, gcc ends up spewing confusing "expected ')' before '}'" types of errors -- lots of them -- attached to lines after #include "affected-file.x" statements.

Possibly, the problem is systemic (i.e., all guile builds are broken for all '.x' files).  So far, I have not yet investigated any further.

I'm interested to see if guile-2.0.0 suffers from this -- if not, perhaps a push to stabilize it is more important than a push to backport whatever resolves it to 1.8.8.
Comment 1 Ryan Hill (RETIRED) gentoo-dev 2015-09-17 23:57:13 UTC
*** Bug 553098 has been marked as a duplicate of this bug. ***
Comment 2 Ryan Hill (RETIRED) gentoo-dev 2015-09-18 00:05:05 UTC
Created attachment 412158 [details, diff]
guile-1.8.8-gcc5.patch
Comment 3 Greg Turner 2015-09-18 21:08:56 UTC
Created attachment 412220 [details, diff]
fix-bug-560736-v2.patch

(In reply to Ryan Hill from comment #2)
> Created attachment 412158 [details, diff] [details, diff]
> guile-1.8.8-gcc5.patch

patch W4M... well, almost*.

--

* I had to re-implement the patch by hand to make it apply; the difference was sufficiently subtle I had to diff the diffs to notice it -- compared to mine, Ryan's patch appends (in pseudo-ascii):

 [lots of whitespace]# writes stdout

to the hunk header:

  @@ -50,7 +50,7 @@ modern_snarf ()

I found this to be quite surprising -- I always thought that part of a patch was for human consumption only and otherwise ignored.  Guess I was wrong.

I surmise that the "# writes stdout" comment must be generated during eautoreconf, as my go-to mechanism for wedging patches into 3rd-party ebuilds occurs during post_src_unpack (Ryan presumably generated his patch by running "ebuild ... src_prepare" and hacking on the resulting ${WORKDIR}).

Anyhow, assuming the epatch statement goes into the compound epatch statement that is currently the first line of src_prepare() in guile-1.8.8-r1.ebuild (and that my surmises are all spot-on), Ryan's patch apparently won't apply.  My re-diff-ification is enclosed.
Comment 4 Greg Turner 2015-09-18 21:29:15 UTC
(In reply to Ryan Hill from comment #2)
> Created attachment 412158 [details, diff] [details, diff]
> guile-1.8.8-gcc5.patch

By the way, I forgot to mention, thanks!  If this fix wasn't your own invention, Ryan, I sure wasn't able to make it issue forth from the Googles.
Comment 5 Ryan Hill (RETIRED) gentoo-dev 2015-09-19 00:08:45 UTC
That's weird.  I have it applying right after the gcc46 patch and I'm not seeing any problems.  It was made on a src_unpack-ed tree.  I think as of patch 2.7 it started paying attention to stuff in the patch headers to better support some git-style diff features.  Maybe we're seeing some interaction with that.  I'll drop it to be safe.
Comment 6 Ryan Hill (RETIRED) gentoo-dev 2015-10-12 23:25:53 UTC
Fixed in 1.8.8-r2.