[MacPorts] #17042: glib2: incorrect glibconfig.h with +universal (i386 x86_64)

MacPorts noreply at macports.org
Fri Feb 20 05:19:16 PST 2009


#17042: glib2: incorrect glibconfig.h with +universal (i386 x86_64)
---------------------------------+------------------------------------------
 Reporter:  pguyot@…             |       Owner:  ryandesign@…           
     Type:  defect               |      Status:  assigned               
 Priority:  Normal               |   Milestone:  Port Bugs              
Component:  ports                |     Version:  1.6.0                  
 Keywords:                       |        Port:  glib2, glib2-devel     
---------------------------------+------------------------------------------
Changes (by ryandesign@…):

 * cc: mcalhoun@… (added)


Comment:

 I've now run into this issue personally when trying to build glibmm. If a
 4-way glib2 @2.18.3_0+darwin_9+universal is active, it fails to build
 with:

 {{{
 value_basictypes.cc:224: error: integer constant is too large for 'long'
 type
 value_basictypes.cc:224: error: integer constant is too large for 'long'
 type
 value_basictypes.cc:251: error: integer constant is too large for
 'unsigned long' type
 }}}

 If I drop back to a non-universal glib2 @2.18.3_0+darwin_9 it builds fine.

 I hoped I could fix glib2 by using the muniversal portgroup instead. First
 I had to use the config cache to provide answers for four tests it wanted
 to run a program to figure out (which won't work when cross-compiling).
 Then the next obstacle was came when the configure script demanded a
 build-system-native copy of glib-genmarshal in PATH during the configure
 phase. There wasn't one, of course -- not in PATH, not anywhere -- because
 nothing gets built until the build phase. I managed to fake out the
 configure script by creating an empty executable file in the native arch's
 work path, and adding the path to that directory to the PATH during
 configure and build. This allowed the port to build and install. (By the
 non-native build phase, the native glib-genmarshal has already been
 built.)

 Unfortunately, ${prefix}/lib/glib-2.0/include/glibconfig.h is filled with
 a profusion of nested `#if` directives which I can't figure out, and
 neither can, for example, glibmm, which says:

 {{{
 /mp/lib/glib-2.0/include/glibconfig.h:227:2: error: #else after #else
 /mp/lib/glib-2.0/include/glibconfig.h:221:1: error: the conditional began
 here
 }}}

 I'll attach my latest attempt, which is for glib2-devel. Next I'll try
 using `merger_dont_diff` on that file.

-- 
Ticket URL: <http://trac.macports.org/ticket/17042#comment:6>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list