[58479] trunk/dports/devel/glib2

ryandesign at macports.org ryandesign at macports.org
Tue Sep 29 05:37:05 PDT 2009


Revision: 58479
          http://trac.macports.org/changeset/58479
Author:   ryandesign at macports.org
Date:     2009-09-29 05:37:02 -0700 (Tue, 29 Sep 2009)
Log Message:
-----------
glib2: no longer use muniversal portgroup and instead patch and edit files by hand, fixing endianness issues on PowerPC as of MacPorts 1.8.0; closes #20372

Modified Paths:
--------------
    trunk/dports/devel/glib2/Portfile

Added Paths:
-----------
    trunk/dports/devel/glib2/files/config.h.ed
    trunk/dports/devel/glib2/files/patch-configure.in.diff

Modified: trunk/dports/devel/glib2/Portfile
===================================================================
--- trunk/dports/devel/glib2/Portfile	2009-09-29 11:04:50 UTC (rev 58478)
+++ trunk/dports/devel/glib2/Portfile	2009-09-29 12:37:02 UTC (rev 58479)
@@ -1,12 +1,12 @@
 # $Id$
 
 PortSystem              1.0
-PortGroup               muniversal 1.0
 
 name                    glib2
 conflicts               glib2-devel e2fsprogs
 set my_name             glib
 version                 2.22.0
+revision                1
 set branch              [join [lrange [split ${version} .] 0 1] .]
 categories              devel
 maintainers             ryandesign
@@ -38,6 +38,7 @@
 # ${prefix}/include/glib-2.0/glib/gi18n.h requires -I${prefix}/include to find libintl.h
 # See http://trac.macports.org/changeset/27148
 patchfiles \
+    patch-configure.in.diff \
     patch-glib-2.0.pc.in.diff \
     patch-gi18n.h.diff \
     patch-gio_xdgmime_xdgmime.c.diff \
@@ -52,6 +53,8 @@
     path:bin/perl:perl5 \
     bin:python:python_select
 
+use_autoconf            yes
+
 # -lresolv is needed at least on Tiger PPC.
 configure.ldflags-append \
     -lresolv \
@@ -72,6 +75,10 @@
     reinplace "s|@@PREFIX@@|${prefix}|g" ${worksrcpath}/gio/xdgmime/xdgmime.c
 }
 
+post-configure {
+    system "ed - ${worksrcpath}/config.h < ${filespath}/config.h.ed"
+}
+
 platform darwin {
     patchfiles-append \
         patch-child-test.c.diff
@@ -84,56 +91,6 @@
     file delete ${destroot}${prefix}/lib/charset.alias
 }
 
-if {[variant_isset universal]} {
-    pre-configure {
-        global merger_configure_args merger_configure_env merger_configure_cppflags merger_configure_ldflags
-
-        # See http://trac.macports.org/ticket/19196.
-        if { ${os.major}=="8" } {
-            set merger_configure_cppflags(ppc64)    "-D __LP64__"
-            set merger_configure_ldflags(ppc64)     "-framework Carbon"
-            set merger_configure_cppflags(x86_64)   "-D __LP64__"
-            set merger_configure_ldflags(x86_64)    "-framework Carbon"
-        }
-
-        # Find architectures which will not run on build platform.
-        if { ${os.arch}=="i386" || ${os.arch}=="x86_64"} {
-            set cross_archs "ppc ppc64"
-            set host_archs  "ppc ppc64"
-            set big_endian  "yes"
-        } else {
-            set cross_archs "i386 x86_64"
-            set host_archs  "i386 x86_64"
-            set big_endian  "no"
-        }
-
-        set run_arch [lindex ${universal_archs} 0]
-        if { [lsearch ${cross_archs} ${run_arch}] >= 0 } {
-            ui_msg "When building a universal binary of ${name}, make sure none of {${cross_archs}} is first in universal_archs in ${prefix}/etc/macports/macports.conf"
-            error "incompatible universal_archs value"
-        }
-
-        foreach arch ${cross_archs} {
-            lappend merger_configure_env(${arch}) \
-                GLIB_GENMARSHAL=${worksrcpath}-${run_arch}/gobject/glib-genmarshal \
-                glib_cv_stack_grows=no \
-                glib_cv_uscore=no \
-                ac_cv_func_posix_getpwuid_r=yes \
-                ac_cv_func_posix_getgrgid_r=yes
-        }
-
-        # Correct NM values is not found.
-        # With -arch, ac_cv_c_bigendian is set to universal, which defaults to little endian.
-        foreach arch ${host_archs} {
-             lappend merger_configure_env(${arch}) \
-                NM='/usr/bin/nm -p' \
-                ac_cv_c_bigendian=${big_endian}
-        }
-    }
-
-    set merger_dont_diff ${prefix}/lib/glib-2.0/include/glibconfig.h
-}
-
 livecheck.type          regex
 livecheck.url           http://ftp.gnome.org/pub/GNOME/sources/${my_name}/${branch}/?C=M&O=D
 livecheck.regex         ${my_name}-(\[0-9.\]+)\\.tar

Added: trunk/dports/devel/glib2/files/config.h.ed
===================================================================
--- trunk/dports/devel/glib2/files/config.h.ed	                        (rev 0)
+++ trunk/dports/devel/glib2/files/config.h.ed	2009-09-29 12:37:02 UTC (rev 58479)
@@ -0,0 +1,75 @@
+/ AC_APPLE_UNIVERSAL_BUILD /c
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+.
+/ ASM_NUMERIC_LABELS /c
+#ifdef __BIG_ENDIAN__
+#define ASM_NUMERIC_LABELS 1
+#else
+/* #undef ASM_NUMERIC_LABELS */
+#endif
+.
+/ GLIB_BYTE_CONTENTS_GMUTEX /c
+#ifdef __LP64__
+#ifdef __BIG_ENDIAN__
+#define GLIB_BYTE_CONTENTS_GMUTEX 50,-86,-85,-89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+#else
+#define GLIB_BYTE_CONTENTS_GMUTEX -89,-85,-86,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+#endif
+#else
+#ifdef __BIG_ENDIAN__
+#define GLIB_BYTE_CONTENTS_GMUTEX 50,-86,-85,-89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+#else
+#define GLIB_BYTE_CONTENTS_GMUTEX -89,-85,-86,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+#endif
+#endif
+.
+/ GLIB_SIZEOF_GMUTEX /c
+#ifdef __LP64__
+#define GLIB_SIZEOF_GMUTEX 64
+#else
+#define GLIB_SIZEOF_GMUTEX 44
+#endif
+.
+/ GLIB_SIZEOF_SYSTEM_THREAD /c
+#ifdef __LP64__
+#define GLIB_SIZEOF_SYSTEM_THREAD 8
+#else
+#define GLIB_SIZEOF_SYSTEM_THREAD 4
+#endif
+.
+/ G_ATOMIC_POWERPC /c
+#ifdef __BIG_ENDIAN__
+#define G_ATOMIC_POWERPC 1
+#else
+/* #undef G_ATOMIC_POWERPC */
+#endif
+.
+/ G_VA_COPY_AS_ARRAY /c
+#ifdef __LP64__
+#define G_VA_COPY_AS_ARRAY 1
+#else
+/* #undef G_VA_COPY_AS_ARRAY */
+#endif
+.
+/ SIZEOF_LONG /c
+#ifdef __LP64__
+#define SIZEOF_LONG 8
+#else
+#define SIZEOF_LONG 4
+#endif
+.
+/ SIZEOF_SIZE_T /c
+#ifdef __LP64__
+#define SIZEOF_SIZE_T 8
+#else
+#define SIZEOF_SIZE_T 4
+#endif
+.
+/ SIZEOF_VOID_P /c
+#ifdef __LP64__
+#define SIZEOF_VOID_P 8
+#else
+#define SIZEOF_VOID_P 4
+#endif
+.
+w

Added: trunk/dports/devel/glib2/files/patch-configure.in.diff
===================================================================
--- trunk/dports/devel/glib2/files/patch-configure.in.diff	                        (rev 0)
+++ trunk/dports/devel/glib2/files/patch-configure.in.diff	2009-09-29 12:37:02 UTC (rev 58479)
@@ -0,0 +1,223 @@
+--- configure.in	2009-09-22 08:40:56.000000000 -0500
++++ configure.in	2009-09-29 01:04:58.000000000 -0500
+@@ -2803,18 +2803,32 @@
+ 	cat >>$outfile <<_______EOF
+ #define G_HAVE_GINT64 1          /* deprecated, always true */
+ 
+-${glib_extension}typedef signed $gint64 gint64;
+-${glib_extension}typedef unsigned $gint64 guint64;
++#ifdef __LP64__
++${glib_extension}typedef signed long gint64;
++${glib_extension}typedef unsigned long guint64;
+ 
+-#define G_GINT64_CONSTANT(val)	$gint64_constant
+-#define G_GUINT64_CONSTANT(val)	$guint64_constant
++#define G_GINT64_CONSTANT(val)	(val##L)
++#define G_GUINT64_CONSTANT(val)	(val##UL)
++#else
++${glib_extension}typedef signed long long gint64;
++${glib_extension}typedef unsigned long long guint64;
++
++#define G_GINT64_CONSTANT(val)	(G_GNUC_EXTENSION (val##LL))
++#define G_GUINT64_CONSTANT(val)	(G_GNUC_EXTENSION (val##ULL))
++#endif
+ _______EOF
+ 
+ 	if test x$gint64_format != x ; then
+ 	  cat >>$outfile <<_______EOF
+-#define G_GINT64_MODIFIER $gint64_modifier
+-#define G_GINT64_FORMAT $gint64_format
+-#define G_GUINT64_FORMAT $guint64_format
++#ifdef __LP64__
++#define G_GINT64_MODIFIER "l"
++#define G_GINT64_FORMAT "li"
++#define G_GUINT64_FORMAT "lu"
++#else
++#define G_GINT64_MODIFIER "ll"
++#define G_GINT64_FORMAT "lli"
++#define G_GUINT64_FORMAT "llu"
++#endif
+ _______EOF
+         else
+ 	  cat >>$outfile <<_______EOF
+@@ -2826,9 +2840,15 @@
+ 
+         cat >>$outfile <<_______EOF
+ 
+-#define GLIB_SIZEOF_VOID_P $glib_void_p
+-#define GLIB_SIZEOF_LONG   $glib_long
+-#define GLIB_SIZEOF_SIZE_T $glib_size_t
++#ifdef __LP64__
++#define GLIB_SIZEOF_VOID_P 8
++#define GLIB_SIZEOF_LONG   8
++#define GLIB_SIZEOF_SIZE_T 8
++#else
++#define GLIB_SIZEOF_VOID_P 4
++#define GLIB_SIZEOF_LONG   4
++#define GLIB_SIZEOF_SIZE_T 4
++#endif
+ 
+ _______EOF
+ 
+@@ -2856,18 +2876,33 @@
+ 	if test -z "$glib_unknown_void_p"; then
+ 	  cat >>$outfile <<_______EOF
+ 
+-#define GPOINTER_TO_INT(p)	((gint)  ${glib_gpi_cast} (p))
+-#define GPOINTER_TO_UINT(p)	((guint) ${glib_gpui_cast} (p))
++#if __LP64
++#define GPOINTER_TO_INT(p)	((gint)  (glong) (p))
++#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
++
++#define GINT_TO_POINTER(i)	((gpointer) (glong) (i))
++#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
++
++typedef signed long gintptr;
++typedef unsigned long guintptr;
++
++#define G_GINTPTR_MODIFIER      "l"
++#define G_GINTPTR_FORMAT        "li"
++#define G_GUINTPTR_FORMAT       "lu"
++#else
++#define GPOINTER_TO_INT(p)	((gint)   (p))
++#define GPOINTER_TO_UINT(p)	((guint)  (p))
+ 
+-#define GINT_TO_POINTER(i)	((gpointer) ${glib_gpi_cast} (i))
+-#define GUINT_TO_POINTER(u)	((gpointer) ${glib_gpui_cast} (u))
++#define GINT_TO_POINTER(i)	((gpointer)  (i))
++#define GUINT_TO_POINTER(u)	((gpointer)  (u))
+ 
+-typedef signed $glib_intptr_type_define gintptr;
+-typedef unsigned $glib_intptr_type_define guintptr;
++typedef signed int gintptr;
++typedef unsigned int guintptr;
+ 
+-#define G_GINTPTR_MODIFIER      $gintptr_modifier
+-#define G_GINTPTR_FORMAT        $gintptr_format
+-#define G_GUINTPTR_FORMAT       $guintptr_format
++#define G_GINTPTR_MODIFIER      ""
++#define G_GINTPTR_FORMAT        "i"
++#define G_GUINTPTR_FORMAT       "u"
++#endif
+ _______EOF
+ 	else
+ 	  echo '#error SIZEOF_VOID_P unknown - This should never happen' >>$outfile
+@@ -2983,13 +3018,29 @@
+ {
+   struct _GMutex *runtime_mutex;
+   union {
+-    char   pad[[$g_mutex_sizeof]];
++#ifdef __LP64__
++    char   pad[[64]];
++#else
++    char   pad[[44]];
++#endif
+     double dummy_double;
+     void  *dummy_pointer;
+     long   dummy_long;
+   } static_mutex;
+ };
+-#define	G_STATIC_MUTEX_INIT	{ NULL, { { $g_mutex_contents} } }
++#ifdef __LP64__
++#if __BIG_ENDIAN__
++#define	G_STATIC_MUTEX_INIT	{ NULL, { { 50,-86,-85,-89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} } }
++#else
++#define	G_STATIC_MUTEX_INIT	{ NULL, { { -89,-85,-86,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} } }
++#endif
++#else
++#if __BIG_ENDIAN__
++#define	G_STATIC_MUTEX_INIT	{ NULL, { { 50,-86,-85,-89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} } }
++#else
++#define	G_STATIC_MUTEX_INIT	{ NULL, { { -89,-85,-86,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} } }
++#endif
++#endif
+ #define	g_static_mutex_get_mutex(mutex) \\
+   (g_thread_use_default_impl ? ((GMutex*)(gpointer) ((mutex)->static_mutex.pad)) : \\
+    g_static_mutex_get_mutex_impl_shortcut (&((mutex)->runtime_mutex)))
+@@ -3013,7 +3064,11 @@
+ typedef union _GSystemThread GSystemThread;
+ union _GSystemThread
+ {
+-  char   data[[$g_system_thread_sizeof]];
++#ifdef __LP64__
++  char   data[[8]];
++#else
++  char   data[[4]];
++#endif
+   double dummy_double;
+   void  *dummy_pointer;
+   long   dummy_long;
+@@ -3021,30 +3076,50 @@
+ _______EOF
+ 	if test x"$g_memory_barrier_needed" != xno; then
+ 	  echo >>$outfile
++	  echo "#if __BIG_ENDIAN__" >>$outfile
+ 	  echo "#define G_ATOMIC_OP_MEMORY_BARRIER_NEEDED 1" >>$outfile
++	  echo "#endif" >>$outfile
+ 	fi
+ 
+ 	echo >>$outfile
+ 	g_bit_sizes="16 32 64"
+ 	for bits in $g_bit_sizes; do
+ 	  cat >>$outfile <<_______EOF
+-#define GINT${bits}_TO_${g_bs_native}(val)	((gint${bits}) (val))
+-#define GUINT${bits}_TO_${g_bs_native}(val)	((guint${bits}) (val))
+-#define GINT${bits}_TO_${g_bs_alien}(val)	((gint${bits}) GUINT${bits}_SWAP_LE_BE (val))
+-#define GUINT${bits}_TO_${g_bs_alien}(val)	(GUINT${bits}_SWAP_LE_BE (val))
++#ifdef __BIG_ENDIAN__
++#define GINT${bits}_TO_BE(val)	((gint${bits}) (val))
++#define GUINT${bits}_TO_BE(val)	((guint${bits}) (val))
++#define GINT${bits}_TO_LE(val)	((gint${bits}) GUINT${bits}_SWAP_LE_BE (val))
++#define GUINT${bits}_TO_LE(val)	(GUINT${bits}_SWAP_LE_BE (val))
++#else
++#define GINT${bits}_TO_LE(val)	((gint${bits}) (val))
++#define GUINT${bits}_TO_LE(val)	((guint${bits}) (val))
++#define GINT${bits}_TO_BE(val)	((gint${bits}) GUINT${bits}_SWAP_LE_BE (val))
++#define GUINT${bits}_TO_BE(val)	(GUINT${bits}_SWAP_LE_BE (val))
++#endif
+ _______EOF
+ 	done
+ 
+ 	cat >>$outfile <<_______EOF
+-#define GLONG_TO_LE(val)	((glong) GINT${glongbits}_TO_LE (val))
+-#define GULONG_TO_LE(val)	((gulong) GUINT${glongbits}_TO_LE (val))
+-#define GLONG_TO_BE(val)	((glong) GINT${glongbits}_TO_BE (val))
+-#define GULONG_TO_BE(val)	((gulong) GUINT${glongbits}_TO_BE (val))
++#ifdef __LP64__
++#define GLONG_TO_LE(val)	((glong) GINT64_TO_LE (val))
++#define GULONG_TO_LE(val)	((gulong) GUINT64_TO_LE (val))
++#define GLONG_TO_BE(val)	((glong) GINT64_TO_BE (val))
++#define GULONG_TO_BE(val)	((gulong) GUINT64_TO_BE (val))
++#else
++#define GLONG_TO_LE(val)	((glong) GINT32_TO_LE (val))
++#define GULONG_TO_LE(val)	((gulong) GUINT32_TO_LE (val))
++#define GLONG_TO_BE(val)	((glong) GINT32_TO_BE (val))
++#define GULONG_TO_BE(val)	((gulong) GUINT32_TO_BE (val))
++#endif
+ #define GINT_TO_LE(val)		((gint) GINT${gintbits}_TO_LE (val))
+ #define GUINT_TO_LE(val)	((guint) GUINT${gintbits}_TO_LE (val))
+ #define GINT_TO_BE(val)		((gint) GINT${gintbits}_TO_BE (val))
+ #define GUINT_TO_BE(val)	((guint) GUINT${gintbits}_TO_BE (val))
+-#define G_BYTE_ORDER $g_byte_order
++#ifdef __BIG_ENDIAN__
++#define G_BYTE_ORDER G_BIG_ENDIAN
++#else
++#define G_BYTE_ORDER G_LITTLE_ENDIAN
++#endif
+ 
+ #define GLIB_SYSDEF_POLLIN =$g_pollin
+ #define GLIB_SYSDEF_POLLOUT =$g_pollout
+@@ -3328,10 +3403,10 @@
+ *)			glib_vacopy=''
+ esac
+ 
+-if test x$glib_cv_va_val_copy = xno; then
+   glib_vacopy="\$glib_vacopy
+-#define G_VA_COPY_AS_ARRAY 1"
+-fi
++#ifdef __LP64__
++#define G_VA_COPY_AS_ARRAY 1
++#endif"
+ 
+ if test x$glib_cv_hasinline = xyes; then
+     glib_inline='#define G_HAVE_INLINE 1'
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090929/69406ef2/attachment.html>


More information about the macports-changes mailing list