[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