[GRASS-dev] [GRASS GIS] #1884: grass7 - cairodriver fails to detect right architecture - OSX 10.8
GRASS GIS
trac at osgeo.org
Wed Feb 13 15:07:29 PST 2013
#1884: grass7 - cairodriver fails to detect right architecture - OSX 10.8
-----------------------+----------------------------------------------------
Reporter: epifanio | Owner: grass-dev@…
Type: defect | Status: new
Priority: major | Milestone: 7.0.0
Component: Compiling | Version: svn-trunk
Keywords: cairo | Platform: MacOSX
Cpu: OSX/Intel |
-----------------------+----------------------------------------------------
Old description:
> Trying to build grass7 with cairo enabled, the build fails with the
> following error :
>
>
> epi:grass_trunk epi$ cd /usr/local/src/grass_trunk/lib/cairodriver
> epi:cairodriver epi$ make
> cc -dynamiclib -compatibility_version 7.0 -current_version 7.0
> -install_name
> /usr/local/grass-7.0.svn/lib/libgrass_cairodriver.7.0.svn.dylib -o
> /usr/local/src/grass_trunk/dist.x86_64-apple-
> darwin12.2.0/lib/libgrass_cairodriver.7.0.svn.dylib
> -L/usr/local/src/grass_trunk/dist.x86_64-apple-darwin12.2.0/lib
> -L/usr/local/src/grass_trunk/dist.x86_64-apple-darwin12.2.0/lib
> OBJ.x86_64-apple-darwin12.2.0/Box.o OBJ.x86_64-apple-darwin12.2.0/Color.o
> OBJ.x86_64-apple-darwin12.2.0/Draw.o OBJ.x86_64-apple-
> darwin12.2.0/Draw_bitmap.o OBJ.x86_64-apple-darwin12.2.0/Driver.o
> OBJ.x86_64-apple-darwin12.2.0/Erase.o OBJ.x86_64-apple-
> darwin12.2.0/Graph.o OBJ.x86_64-apple-darwin12.2.0/Line_width.o
> OBJ.x86_64-apple-darwin12.2.0/Raster.o OBJ.x86_64-apple-
> darwin12.2.0/Set_window.o OBJ.x86_64-apple-darwin12.2.0/Text.o OBJ.x86_64
> -apple-darwin12.2.0/read.o OBJ.x86_64-apple-darwin12.2.0/read_bmp.o
> OBJ.x86_64-apple-darwin12.2.0/read_ppm.o OBJ.x86_64-apple-
> darwin12.2.0/read_xid.o OBJ.x86_64-apple-darwin12.2.0/write.o OBJ.x86_64
> -apple-darwin12.2.0/write_bmp.o OBJ.x86_64-apple-darwin12.2.0/write_ppm.o
> OBJ.x86_64-apple-darwin12.2.0/write_xid.o -lgrass_driver.7.0.svn
> -lgrass_gis.7.0.svn -L/usr/local/Cellar/cairo/1.12.12/lib -lcairo
> -liconv
> Undefined symbols for architecture x86_64:
> "_FcConfigGetCurrent", referenced from:
> _Cairo_set_font in Text.o
> "_FcConfigSubstitute", referenced from:
> _Cairo_set_font in Text.o
> "_FcDefaultSubstitute", referenced from:
> _Cairo_set_font in Text.o
> "_FcFontList", referenced from:
> _font_list_fc in Text.o
> "_FcFontMatch", referenced from:
> _Cairo_set_font in Text.o
> "_FcFontSetDestroy", referenced from:
> _font_list_fc in Text.o
> "_FcInit", referenced from:
> _font_list_fc in Text.o
> _Cairo_set_font in Text.o
> "_FcNameParse", referenced from:
> _Cairo_set_font in Text.o
> "_FcObjectSetBuild", referenced from:
> _font_list_fc in Text.o
> "_FcObjectSetDestroy", referenced from:
> _font_list_fc in Text.o
> "_FcPatternCreate", referenced from:
> _font_list_fc in Text.o
> "_FcPatternDestroy", referenced from:
> _font_list_fc in Text.o
> "_FcPatternGetString", referenced from:
> _font_list_fc in Text.o
> ld: symbol(s) not found for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
> make: *** [/usr/local/src/grass_trunk/dist.x86_64-apple-
> darwin12.2.0/lib/libgrass_cairodriver.7.0.svn.dylib] Error 1
> epi:cairodriver epi$
>
> this is not correct, the cairo lib installed on my machine are built as
> universal in both arch 32 and 64 bit.
>
> lipo -info /usr/local/Cellar/cairo/1.12.12/lib/cairo/libcairo-
> trace.0.dylib /usr/local/Cellar/cairo/1.12.12/lib/libcairo-
> gobject.2.dylib /usr/local/Cellar/cairo/1.12.12/lib/libcairo-script-
> interpreter.2.dylib /usr/local/Cellar/cairo/1.12.12/lib/libcairo.2.dylib
> Architectures in the fat file: /usr/local/Cellar/cairo/1.12.12/lib/cairo
> /libcairo-trace.0.dylib are: i386 x86_64
> Architectures in the fat file: /usr/local/Cellar/cairo/1.12.12/lib
> /libcairo-gobject.2.dylib are: i386 x86_64
> Architectures in the fat file: /usr/local/Cellar/cairo/1.12.12/lib
> /libcairo-script-interpreter.2.dylib are: i386 x86_64
> Architectures in the fat file:
> /usr/local/Cellar/cairo/1.12.12/lib/libcairo.2.dylib are: i386 x86_64
> epi:~ epi$
>
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-cache: Mach-O universal
> binary with 2 architectures
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-cache (for architecture
> i386): Mach-O executable i386
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-cache (for architecture
> x86_64): Mach-O 64-bit executable x86_64
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-cat: Mach-O universal
> binary with 2 architectures
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-cat (for architecture i386):
> Mach-O executable i386
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-cat (for architecture
> x86_64): Mach-O 64-bit executable x86_64
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-list: Mach-O universal
> binary with 2 architectures
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-list (for architecture i386):
> Mach-O executable i386
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-list (for architecture
> x86_64): Mach-O 64-bit executable x86_64
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-match: Mach-O universal
> binary with 2 architectures
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-match (for architecture
> i386): Mach-O executable i386
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-match (for architecture
> x86_64): Mach-O 64-bit executable x86_64
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-pattern: Mach-O universal
> binary with 2 architectures
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-pattern (for architecture
> i386): Mach-O executable i386
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-pattern (for architecture
> x86_64): Mach-O 64-bit executable x86_64
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-query: Mach-O universal
> binary with 2 architectures
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-query (for architecture
> i386): Mach-O executable i386
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-query (for architecture
> x86_64): Mach-O 64-bit executable x86_64
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-scan: Mach-O universal
> binary with 2 architectures
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-scan (for architecture i386):
> Mach-O executable i386
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-scan (for architecture
> x86_64): Mach-O 64-bit executable x86_64
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-validate: Mach-O universal
> binary with 2 architectures
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-validate (for architecture
> i386): Mach-O executable i386
> /usr/local/Cellar/fontconfig/2.10.91/bin/fc-validate (for architecture
> x86_64):Mach-O 64-bit executable x86_64
>
>
> suspect :
>
> seems that the GRASS Configure is not storing the fontconfig linking in
> platform.make so it doesn't get into the cairo driver compilation.
New description:
Trying to build grass7 with cairo enabled, the build fails with the
following error :
{{{
epi:grass_trunk epi$ cd /usr/local/src/grass_trunk/lib/cairodriver
epi:cairodriver epi$ make
cc -dynamiclib -compatibility_version 7.0 -current_version 7.0
-install_name
/usr/local/grass-7.0.svn/lib/libgrass_cairodriver.7.0.svn.dylib -o
/usr/local/src/grass_trunk/dist.x86_64-apple-
darwin12.2.0/lib/libgrass_cairodriver.7.0.svn.dylib
-L/usr/local/src/grass_trunk/dist.x86_64-apple-darwin12.2.0/lib
-L/usr/local/src/grass_trunk/dist.x86_64-apple-darwin12.2.0/lib
OBJ.x86_64-apple-darwin12.2.0/Box.o OBJ.x86_64-apple-darwin12.2.0/Color.o
OBJ.x86_64-apple-darwin12.2.0/Draw.o OBJ.x86_64-apple-
darwin12.2.0/Draw_bitmap.o OBJ.x86_64-apple-darwin12.2.0/Driver.o
OBJ.x86_64-apple-darwin12.2.0/Erase.o OBJ.x86_64-apple-
darwin12.2.0/Graph.o OBJ.x86_64-apple-darwin12.2.0/Line_width.o OBJ.x86_64
-apple-darwin12.2.0/Raster.o OBJ.x86_64-apple-darwin12.2.0/Set_window.o
OBJ.x86_64-apple-darwin12.2.0/Text.o OBJ.x86_64-apple-darwin12.2.0/read.o
OBJ.x86_64-apple-darwin12.2.0/read_bmp.o OBJ.x86_64-apple-
darwin12.2.0/read_ppm.o OBJ.x86_64-apple-darwin12.2.0/read_xid.o
OBJ.x86_64-apple-darwin12.2.0/write.o OBJ.x86_64-apple-
darwin12.2.0/write_bmp.o OBJ.x86_64-apple-darwin12.2.0/write_ppm.o
OBJ.x86_64-apple-darwin12.2.0/write_xid.o -lgrass_driver.7.0.svn
-lgrass_gis.7.0.svn -L/usr/local/Cellar/cairo/1.12.12/lib -lcairo
-liconv
Undefined symbols for architecture x86_64:
"_FcConfigGetCurrent", referenced from:
_Cairo_set_font in Text.o
"_FcConfigSubstitute", referenced from:
_Cairo_set_font in Text.o
"_FcDefaultSubstitute", referenced from:
_Cairo_set_font in Text.o
"_FcFontList", referenced from:
_font_list_fc in Text.o
"_FcFontMatch", referenced from:
_Cairo_set_font in Text.o
"_FcFontSetDestroy", referenced from:
_font_list_fc in Text.o
"_FcInit", referenced from:
_font_list_fc in Text.o
_Cairo_set_font in Text.o
"_FcNameParse", referenced from:
_Cairo_set_font in Text.o
"_FcObjectSetBuild", referenced from:
_font_list_fc in Text.o
"_FcObjectSetDestroy", referenced from:
_font_list_fc in Text.o
"_FcPatternCreate", referenced from:
_font_list_fc in Text.o
"_FcPatternDestroy", referenced from:
_font_list_fc in Text.o
"_FcPatternGetString", referenced from:
_font_list_fc in Text.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
make: *** [/usr/local/src/grass_trunk/dist.x86_64-apple-
darwin12.2.0/lib/libgrass_cairodriver.7.0.svn.dylib] Error 1
epi:cairodriver epi$
}}}
this is not correct, the cairo lib installed on my machine are built as
universal in both arch 32 and 64 bit.
{{{
lipo -info /usr/local/Cellar/cairo/1.12.12/lib/cairo/libcairo-
trace.0.dylib /usr/local/Cellar/cairo/1.12.12/lib/libcairo-gobject.2.dylib
/usr/local/Cellar/cairo/1.12.12/lib/libcairo-script-interpreter.2.dylib
/usr/local/Cellar/cairo/1.12.12/lib/libcairo.2.dylib
Architectures in the fat file: /usr/local/Cellar/cairo/1.12.12/lib/cairo
/libcairo-trace.0.dylib are: i386 x86_64
Architectures in the fat file: /usr/local/Cellar/cairo/1.12.12/lib
/libcairo-gobject.2.dylib are: i386 x86_64
Architectures in the fat file: /usr/local/Cellar/cairo/1.12.12/lib
/libcairo-script-interpreter.2.dylib are: i386 x86_64
Architectures in the fat file:
/usr/local/Cellar/cairo/1.12.12/lib/libcairo.2.dylib are: i386 x86_64
epi:~ epi$
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-cache: Mach-O universal
binary with 2 architectures
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-cache (for architecture i386):
Mach-O executable i386
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-cache (for architecture
x86_64): Mach-O 64-bit executable x86_64
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-cat: Mach-O universal
binary with 2 architectures
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-cat (for architecture i386):
Mach-O executable i386
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-cat (for architecture x86_64):
Mach-O 64-bit executable x86_64
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-list: Mach-O universal
binary with 2 architectures
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-list (for architecture i386):
Mach-O executable i386
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-list (for architecture
x86_64): Mach-O 64-bit executable x86_64
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-match: Mach-O universal
binary with 2 architectures
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-match (for architecture i386):
Mach-O executable i386
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-match (for architecture
x86_64): Mach-O 64-bit executable x86_64
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-pattern: Mach-O universal
binary with 2 architectures
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-pattern (for architecture
i386): Mach-O executable i386
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-pattern (for architecture
x86_64): Mach-O 64-bit executable x86_64
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-query: Mach-O universal
binary with 2 architectures
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-query (for architecture i386):
Mach-O executable i386
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-query (for architecture
x86_64): Mach-O 64-bit executable x86_64
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-scan: Mach-O universal
binary with 2 architectures
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-scan (for architecture i386):
Mach-O executable i386
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-scan (for architecture
x86_64): Mach-O 64-bit executable x86_64
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-validate: Mach-O universal
binary with 2 architectures
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-validate (for architecture
i386): Mach-O executable i386
/usr/local/Cellar/fontconfig/2.10.91/bin/fc-validate (for architecture
x86_64):Mach-O 64-bit executable x86_64
}}}
suspect :
seems that the GRASS Configure is not storing the fontconfig linking in
platform.make so it doesn't get into the cairo driver compilation.
--
Comment(by hamish):
added !{{{}}} for <code></code> readability
--
Ticket URL: <http://trac.osgeo.org/grass/ticket/1884#comment:1>
GRASS GIS <http://grass.osgeo.org>
More information about the grass-dev
mailing list