[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