Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#39106 - [inkscape] build fails against gc-7.4.0-1

Attached to Project: Arch Linux
Opened by Joel Teichroeb (klusark) - Sunday, 02 March 2014, 16:23 GMT
Last edited by Gaetan Bisson (vesath) - Monday, 03 March 2014, 23:19 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan de Groot (JGC)
Gaetan Bisson (vesath)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
I'm not sure why it can't find GC_version. GC is correctly installed. GC 7.4 came out since inkscape was last packaged, so maybe that version broke it, but looking at the gc source GC_version hasn't been changed in a long time.

Additional info:
checking for dlopen in -ldl... yes
checking gc.h usability... yes
checking gc.h presence... yes
checking for gc.h... yes
checking for GC_init in -lgc... yes
checking libgc version 6.4+... no
configure: error: libgc (the Boehm Conservative Collector) 6.4+, is needed to compile inkscape -- http://www.hpl.hp.com/personal/Hans_Boehm/gc
==> ERROR: A failure occurred in build().
Aborting...





config.log:
configure:8746: result: yes
configure:8746: checking for gc.h
configure:8746: result: yes
configure:8758: checking for GC_init in -lgc
configure:8783: g++ -o conftest -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -fopenmp -Werror=format-security -DG_DISABLE_SINGLE_INCLUDES -Wall -Wformat -Wformat-security -W -D_FORTIFY_SOURCE=2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-O1,--sort-common,--as-needed,-z,relro conftest.cpp -lgc >&5
configure:8783: $? = 0
configure:8792: result: yes
configure:8945: checking libgc version 6.4+
configure:8970: g++ -o conftest -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -fopenmp -Werror=format-security -DG_DISABLE_SINGLE_INCLUDES -Wall -Wformat -Wformat-security -W -D_FORTIFY_SOURCE=2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-O1,--sort-common,--as-needed,-z,relro conftest.cpp -lgc >&5
/tmp/ccK9GDq8.o: In function `main':
conftest.cpp:(.text.startup+0x6): undefined reference to `GC_version'
conftest.cpp:(.text.startup+0x2b): undefined reference to `GC_version'
collect2: error: ld returned 1 exit status
configure:8970: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "inkscape"
| #define PACKAGE_TARNAME "inkscape"
| #define PACKAGE_VERSION "0.48.4"
| #define PACKAGE_STRING "inkscape 0.48.4"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "inkscape"
| #define VERSION "0.48.4"
| #define STDC_HEADERS 1
| #define HAVE_TR1_UNORDERED_SET 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_BOOST_UNORDERED_SET 1
| #define HAVE_EXT_HASH_SET 1
| #define GETTEXT_PACKAGE "inkscape"
| #define HAVE_LOCALE_H 1
| #define HAVE_LC_MESSAGES 1
| #define HAVE_BIND_TEXTDOMAIN_CODESET 1
| #define HAVE_GETTEXT 1
| #define HAVE_DCGETTEXT 1
| #define ENABLE_NLS 1
| #define HAVE_OPENMP 1
| #define HAVE_GC_H 1
| /* end confdefs.h. */
|
| #ifdef HAVE_GC_GC_H
| # include <gc/gc.h>
| #else
| # include <gc.h>
| #endif
| #include <stdio.h>
| extern unsigned GC_version;
| int main(void){
| unsigned min = ((6 << 16) | (4 << 8) | 0);
| printf("%d.%d.%d ",GC_version >> 16, (GC_version >> 8) & 0xFF, GC_version & 0xFF);
| if (GC_version>=min) return 0;
| return 1;
| }
configure:8980: result: no
configure:8984: error: libgc (the Boehm Conservative Collector) 6.4+, is needed to compile inkscape -- http://www.hpl.hp.com/personal/Hans_Boehm/gc



Steps to reproduce:
sudo extra-x86_64-build
This task depends upon

Closed by  Gaetan Bisson (vesath)
Monday, 03 March 2014, 23:19 GMT
Reason for closing:  Fixed
Additional comments about closing:  in SVN
Comment by Gaetan Bisson (vesath) - Sunday, 02 March 2014, 23:27 GMT
Apparently a lot of things changed in GC; I'm not sure why the upgrade did not involve a rebuild of packages which depend on it.

First, to upgrade to GC's new version format, we can apply the following to inkscape:

sed -i '/extern unsigned GC_version;/c unsigned GC_version=GC_VERSION_MAJOR<<16+GC_VERSION_MINOR<<8+GC_VERSION_MICRO;' configure

But then I hit the following compilation error:

CXX gc.o
gc.cpp: In function 'void Inkscape::GC::{anonymous}::do_init()':
gc.cpp:31:5: warning: 'GC_no_dls' is deprecated (declared at /usr/include/gc/gc.h:257) [-Wdeprecated-declarations]
GC_no_dls = 1;
^
gc.cpp:32:5: warning: 'GC_all_interior_pointers' is deprecated (declared at /usr/include/gc/gc.h:143) [-Wdeprecated-declarations]
GC_all_interior_pointers = 1;
^
gc.cpp:33:5: warning: 'GC_finalize_on_demand' is deprecated (declared at /usr/include/gc/gc.h:159) [-Wdeprecated-declarations]
GC_finalize_on_demand = 0;
^
gc.cpp: At global scope:
gc.cpp:123:1: error: invalid conversion from 'int (*)(void**, const void*)' to 'int (*)(void**, void*)' [-fpermissive]
};
^
Makefile:6286: recipe for target 'gc.o' failed
make[2]: *** [gc.o] Error 1

Jan, any thoughts?
Comment by Jan de Groot (JGC) - Monday, 03 March 2014, 11:06 GMT
Rebuild was not done because no soname was bumped and existing applications still started.

Patch:
https://launchpadlibrarian.net/161112739/inkscape-0.48.4-gc74.patch

Loading...