Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 188518 - media-gfx/asymptote-1.33 version bump; all versions fail with USE=boehm-gc
Summary: media-gfx/asymptote-1.33 version bump; all versions fail with USE=boehm-gc
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Dominik Stadler (RETIRED)
URL: http://asymptote.sourceforge.net/
Whiteboard:
Keywords: EBUILD
Depends on:
Blocks:
 
Reported: 2007-08-11 23:23 UTC by Peter Ansell
Modified: 2007-08-28 21:18 UTC (History)
2 users (show)

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


Attachments
asymptote-1.33 ebuild (asymptote-1.33.ebuild,3.38 KB, text/plain)
2007-08-11 23:24 UTC, Peter Ansell
Details
configure.ac patch (asymptote-1.33-configure-ac.patch,1.41 KB, text/plain)
2007-08-11 23:25 UTC, Peter Ansell
Details
makefile patch (asymptote-1.33-makefile.patch,1.93 KB, text/plain)
2007-08-11 23:26 UTC, Peter Ansell
Details
Updated patch to fix boehm-gc header file not found error (asymptote-1.33-configure-ac.patch,1.96 KB, patch)
2007-08-18 22:29 UTC, Peter Ansell
Details | Diff
Updated patch to fix boehm-gc header file not found error (asymptote-1.33-configure-ac.patch,1.75 KB, patch)
2007-08-18 23:23 UTC, Peter Ansell
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Ansell 2007-08-11 23:23:48 UTC
Including the updated patches and ebuild for asymptote-1.33 for testing

Reproducible: Always
Comment 1 Peter Ansell 2007-08-11 23:24:32 UTC
Created attachment 127787 [details]
asymptote-1.33 ebuild
Comment 2 Peter Ansell 2007-08-11 23:25:16 UTC
Created attachment 127789 [details]
configure.ac patch
Comment 3 Peter Ansell 2007-08-11 23:26:07 UTC
Created attachment 127791 [details]
makefile patch

This required a manual merge from the 1.29 version
Comment 4 Dominik Stadler (RETIRED) gentoo-dev 2007-08-15 18:57:51 UTC
Thanks for updating the patches. However if I try to emerge with this ebuild, I get the following error during the configure-run:

checking gc.h presence... no
checking for gc.h... no
configure: error: Boehm Garbage Collector header file not found

!!! Please attach the following file when filing a report to bugs.gentoo.org:
!!! /var/tmp/portage/media-gfx/asymptote-1.33/work/asymptote-1.33/config.log

It seems that boehm-gc has changed the location of the header-files, as gc.h is now in a sub-directory:

$ equery f boehm-gc
[ Searching for packages matching boehm-gc... ]
* Contents of dev-libs/boehm-gc-7.0:
...
/usr/include/gc/ec.h

I need to check how the configure-scripts need to be adjusted to compile with the boehm-gc flag enabled, any suggestions what changed since 1.29? There I could emerge asymptote without problem.
Comment 5 Dominik Stadler (RETIRED) gentoo-dev 2007-08-15 19:01:54 UTC
sorry, wrong statement about location of gc.h, I have no information if this changed or not! 

Furthermore here is the excerpt from config.log:

configure:4872: checking gc.h usability
configure:4889: i686-pc-linux-gnu-g++ -c -march=i686 -O3 -pipe -fomit-frame-pointer -DHAVE_SYS_TYPES
_H conftest.cpp >&5
conftest.cpp:54:16: error: gc.h: No such file or directory


so it seems it does not set the include-path for some reason. I'm not an autotools specialist to see why this fails now.
Comment 6 Peter Ansell 2007-08-16 01:06:37 UTC
Sorry, I forgot to try compiling with that option enabled.

I can get asymptote to compile with the boehm-gc if I edit the configure file to use <gc/gc.h> instead of <gc.h> when it does the tests for whether gc.h is available and asymptote seems to work after that for its general duties compiling asy files. This may be an upstream bug.

I will look at the same place later today hopefully in the 1.29 code to see what it does differently and get back to you.
Comment 7 Bernd Waibel 2007-08-16 19:02:05 UTC
I have the same problem with the 1.29 release. I tried and downgraded boehm-gc to release 6.8 and found, that the 6.8 release installed a /usr/include/gc.h file beside the /usr/include/gc/gc.h file. The two files don't differ. The /usr/include/gc.h file though is no longer installed with the 7.0 release of boehm-gc.

Comment 8 Andrey Grozin gentoo-dev 2007-08-18 09:37:23 UTC
asymptote-1.29 no longer compiles (some time ago it compiled OK). The reason is the same - Boehm gc is not found. I don't know what exactly changed - gc.h is now in /usr/include/gc, was it in /usr/include in earlier versions of libgc? Or maybe autoconf version changed. I investigated what configure is doing. The line which fails is
$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5
where (in my case)
$CXX = g++
$CXXFLAGS = -g -O2
$CPPFLAGS = -DHAVE_SYS_TYPES_H
$ac_ext = cpp
A little earlier, configure defines
$INCL = /usr/include/gc
but it is not used when running the test. The corresponding statement in configure.ac is
AC_CHECK_LIB([gc],[GC_malloc],[...],[...])
It does not mention $INCL. I am not an autoconf expert; is $INCL a magic name which is taken into account by AC_CHECK_LIB automatically? Or it should be explicitly mentioned in the AC_CHECK_LIB invocation somehow?

In any case, no version of asymptote is compilable now (I also tried asymptote-1.33 and updated the patches, as done in the current bug; probably, my version and the version here are identical).
Comment 9 Peter Ansell 2007-08-18 22:28:30 UTC
(In reply to comment #8)
> asymptote-1.29 no longer compiles (some time ago it compiled OK). The reason is
> the same - Boehm gc is not found. I don't know what exactly changed - gc.h is
> now in /usr/include/gc, was it in /usr/include in earlier versions of libgc? 

I think this is the most likely case.

> A little earlier, configure defines
> $INCL = /usr/include/gc
> but it is not used when running the test. The corresponding statement in
> configure.ac is
> AC_CHECK_LIB([gc],[GC_malloc],[...],[...])
> It does not mention $INCL. I am not an autoconf expert; is $INCL a magic name
> which is taken into account by AC_CHECK_LIB automatically? Or it should be
> explicitly mentioned in the AC_CHECK_LIB invocation somehow?

AC_CHECK_LIB doesn't really need to, it checks /usr/lib/libgc.so for the symbol GC_malloc. It doesn't need to know where the header file for that symbol is located, that is what the encapsulating AC_CHECK_HEADER command does.

INCL is used later on "AC_SUBST(INCL)" which includes it on the compile command as "-I/usr/include/gc"

> In any case, no version of asymptote is compilable now (I also tried
> asymptote-1.33 and updated the patches, as done in the current bug; probably,
> my version and the version here are identical).
> 

The only solution I see is patching the line which says 

      AC_CHECK_HEADER([gc.h],

to say 

      AC_CHECK_HEADER([gc/gc.h],

This doesn't seem like a big hack to me, especially as it seems the upstream developers favour the method which has the boehm gc source tar ball to work with in order to get a static garbage collector as opposed to a dynamic one. It would be worth however mentioning the issue to them I think if boehm-gc have changed their method, as opposed to just Gentoo developers favouring the gc/gc.h method which we should cope with ourselves.
Comment 10 Peter Ansell 2007-08-18 22:29:27 UTC
Created attachment 128497 [details, diff]
Updated patch to fix boehm-gc header file not found error
Comment 11 Peter Ansell 2007-08-18 23:23:46 UTC
Created attachment 128499 [details, diff]
Updated patch to fix boehm-gc header file not found error

Slight change to avoid a bad documentation path, which is supposed to be patched by the ebuild
Comment 12 Dominik Stadler (RETIRED) gentoo-dev 2007-08-28 21:18:29 UTC
I have now added 1.33 with the patches from this bug. I also set 1.29 to "<boehm-gc-7.0" to force it to use the older version of boehm-gc. All other versions are obsolete and will be removed soon as there are newer ones with same KEYWORDs.

Please give it a try and reopen this ticket or report new ones if something does not work for you.