Skip to content

Instantly share code, notes, and snippets.

@d235j
Created January 12, 2012 04:24
Show Gist options
  • Select an option

  • Save d235j/1598689 to your computer and use it in GitHub Desktop.

Select an option

Save d235j/1598689 to your computer and use it in GitHub Desktop.
Glib2 configure patch for OSX for Glib 2.341.8
--- configure.orig 2012-01-11 23:14:00.000000000 -0500
+++ configure 2012-01-11 23:22:23.000000000 -0500
@@ -29846,10 +29846,11 @@
*) 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
+glib_vacopy="\$glib_vacopy
+
+#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'
@@ -31591,20 +31592,34 @@
cat >>$outfile <<_______EOF
typedef signed $gint32 gint32;
typedef unsigned $gint32 guint32;
-#define G_GINT32_MODIFIER $gint32_modifier
-#define G_GINT32_FORMAT $gint32_format
-#define G_GUINT32_FORMAT $guint32_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
fi
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) (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) $gint64_constant
-#define G_GUINT64_CONSTANT(val) $guint64_constant
+#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
@@ -31623,9 +31638,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
@@ -31653,18 +31674,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))
+#ifdef __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
@@ -31777,7 +31813,9 @@
if test x"$g_memory_barrier_needed" != xno; then
echo >>$outfile
+ echo "#ifdef __BIG_ENDIAN__" >>$outfile
echo "#define G_ATOMIC_OP_MEMORY_BARRIER_NEEDED 1" >>$outfile
+ echo "#endif" >>$outfile
fi
if test x"$g_atomic_lock_free" = xyes; then
echo >>$outfile
@@ -31787,27 +31825,52 @@
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 GSIZE_TO_LE(val) ((gsize) GUINT${gsizebits}_TO_LE (val))
-#define GSSIZE_TO_LE(val) ((gssize) GINT${gsizebits}_TO_LE (val))
-#define GSIZE_TO_BE(val) ((gsize) GUINT${gsizebits}_TO_BE (val))
-#define GSSIZE_TO_BE(val) ((gssize) GINT${gsizebits}_TO_BE (val))
-#define G_BYTE_ORDER $g_byte_order
+#ifdef __LP64__
+#define GSIZE_TO_LE(val) ((gsize) GUINT64_TO_LE (val))
+#define GSSIZE_TO_LE(val) ((gssize) GINT64_TO_LE (val))
+#define GSIZE_TO_BE(val) ((gsize) GUINT64_TO_BE (val))
+#define GSSIZE_TO_BE(val) ((gssize) GINT64_TO_BE (val))
+#else
+#define GSIZE_TO_LE(val) ((gsize) GUINT32_TO_LE (val))
+#define GSSIZE_TO_LE(val) ((gssize) GINT32_TO_LE (val))
+#define GSIZE_TO_BE(val) ((gsize) GUINT32_TO_BE (val))
+#define GSSIZE_TO_BE(val) ((gssize) GINT32_TO_BE (val))
+#endif
+#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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment