pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/devel/glib2 g/c use of __GCC_HAVE_SYNC_COMPARE_AND_SWA...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/a3a8187e3bc8
branches:  trunk
changeset: 397496:a3a8187e3bc8
user:      prlw1 <prlw1%pkgsrc.org@localhost>
date:      Wed Jun 26 10:42:50 2019 +0000

description:
g/c use of __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 which glib was already
ignoring for linux and android.

http://mail-index.netbsd.org/tech-userlevel/2019/06/25/msg011965.html

Should complete PR pkg/54298

diffstat:

 devel/glib2/Makefile                     |   4 +-
 devel/glib2/distinfo                     |   6 ++-
 devel/glib2/patches/patch-glib_gatomic.c |  31 +++++++++++++++++++
 devel/glib2/patches/patch-glib_gatomic.h |  25 ++++++++++++++++
 devel/glib2/patches/patch-meson.build    |  50 ++++++++++++++++++++++++++-----
 5 files changed, 104 insertions(+), 12 deletions(-)

diffs (207 lines):

diff -r 6a5939cd4364 -r a3a8187e3bc8 devel/glib2/Makefile
--- a/devel/glib2/Makefile      Wed Jun 26 10:07:49 2019 +0000
+++ b/devel/glib2/Makefile      Wed Jun 26 10:42:50 2019 +0000
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.255 2019/06/25 10:57:28 prlw1 Exp $
+# $NetBSD: Makefile,v 1.256 2019/06/26 10:42:50 prlw1 Exp $
 
 .include "Makefile.common"
 
-PKGREVISION=   3
+PKGREVISION=   4
 CATEGORIES=    devel gnome
 COMMENT=       Some useful routines for C programming (glib2)
 
diff -r 6a5939cd4364 -r a3a8187e3bc8 devel/glib2/distinfo
--- a/devel/glib2/distinfo      Wed Jun 26 10:07:49 2019 +0000
+++ b/devel/glib2/distinfo      Wed Jun 26 10:42:50 2019 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.251 2019/06/25 16:08:55 schmonz Exp $
+$NetBSD: distinfo,v 1.252 2019/06/26 10:42:50 prlw1 Exp $
 
 SHA1 (glib-2.60.4.tar.xz) = f76ef7339fef5784d79520478110caa4c5054806
 RMD160 (glib-2.60.4.tar.xz) = e8520dd0da7c37e6bb18b24a3b3ec308a6fa6aa0
@@ -13,6 +13,8 @@
 SHA1 (patch-gio_inotify_inotify-kernel.c) = 24deec33a1ad5e3c1a4f2d1397440d26b0f23b84
 SHA1 (patch-gio_meson.build) = a0dcda4e9d05ed83b7fb11102945821eea27b81d
 SHA1 (patch-gio_tests_gdbus-export.c) = 59d85ca079d02b52e33153c7d2ac1cc48c26707a
+SHA1 (patch-glib_gatomic.c) = 875ad9c828dcf2add356d4988d14fb4f1985aef8
+SHA1 (patch-glib_gatomic.h) = 21294cac483c3379198283c54fe6e24af3e630b1
 SHA1 (patch-glib_ghash.c) = 938135c3a71199e61d1cd1dffa6e1d63864150d6
 SHA1 (patch-glib_glibconfig.h.in) = 1964b5fb15317e681dad426d4862e3f48c4274f7
 SHA1 (patch-glib_gmain.c) = 2ab4b59e438d9f764bee62e0c1fa8bbd231b6e8d
@@ -26,4 +28,4 @@
 SHA1 (patch-gmodule_gmodule.c) = 55c5f9d16e3517f3fdc04d40922f50d9c66b0b9a
 SHA1 (patch-gobject_glib-mkenums.in) = c177cf9b1ea81542665240678f47f68351a3760d
 SHA1 (patch-gobject_meson.build) = 58ee162e44047bf20c66067fd3edbe98cc13af50
-SHA1 (patch-meson.build) = ce24f19714f6d78d1be9ecd6802f6c25a086c8e8
+SHA1 (patch-meson.build) = 125d98082c9bf2b6403bbda1c12e0fa695031ee6
diff -r 6a5939cd4364 -r a3a8187e3bc8 devel/glib2/patches/patch-glib_gatomic.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/glib2/patches/patch-glib_gatomic.c  Wed Jun 26 10:42:50 2019 +0000
@@ -0,0 +1,31 @@
+$NetBSD: patch-glib_gatomic.c,v 1.1 2019/06/26 10:42:50 prlw1 Exp $
+
+Ignore __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 as is already done
+for android and linux. PR pkg/54298
+
+--- glib/gatomic.c.orig        2019-06-10 17:47:20.000000000 +0000
++++ glib/gatomic.c
+@@ -94,8 +94,6 @@
+  * implement the atomic operations in a lock-free manner.
+  */
+ 
+-#if defined (__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
+-
+ #if defined(__ATOMIC_SEQ_CST) && !defined(__clang__)
+ /* The implementation used in this code path in gatomic.h assumes
+  * 4-byte int */
+@@ -667,14 +665,6 @@ gsize
+   return InterlockedXor (atomic, val);
+ #endif
+ }
+-#else
+-
+-/* This error occurs when `meson configure` decided that we should be capable
+- * of lock-free atomics but we find at compile-time that we are not.
+- */
+-#error G_ATOMIC_LOCK_FREE defined, but incapable of lock-free atomics.
+-
+-#endif /* defined (__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) */
+ 
+ #else /* G_ATOMIC_LOCK_FREE */
+ 
diff -r 6a5939cd4364 -r a3a8187e3bc8 devel/glib2/patches/patch-glib_gatomic.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/glib2/patches/patch-glib_gatomic.h  Wed Jun 26 10:42:50 2019 +0000
@@ -0,0 +1,25 @@
+$NetBSD: patch-glib_gatomic.h,v 1.1 2019/06/26 10:42:50 prlw1 Exp $
+
+Ignore __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 as is already done
+for android and linux. PR pkg/54298
+
+--- glib/gatomic.h.orig        2019-06-10 17:47:20.000000000 +0000
++++ glib/gatomic.h
+@@ -82,7 +82,7 @@ gint                    g_atomic_int_exc
+ 
+ G_END_DECLS
+ 
+-#if defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
++#if defined(G_ATOMIC_LOCK_FREE)
+ 
+ /* We prefer the new C11-style atomic extension of GCC if available */
+ #if defined(__ATOMIC_SEQ_CST) && !defined(__clang__)
+@@ -250,7 +250,7 @@ G_END_DECLS
+     (gsize) __sync_fetch_and_xor ((atomic), (val));                          \
+   }))
+ 
+-#else /* defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) */
++#else /* defined(G_ATOMIC_LOCK_FREE) */
+ 
+ #define g_atomic_int_get(atomic) \
+   (g_atomic_int_get ((gint *) (atomic)))
diff -r 6a5939cd4364 -r a3a8187e3bc8 devel/glib2/patches/patch-meson.build
--- a/devel/glib2/patches/patch-meson.build     Wed Jun 26 10:07:49 2019 +0000
+++ b/devel/glib2/patches/patch-meson.build     Wed Jun 26 10:42:50 2019 +0000
@@ -1,19 +1,53 @@
-$NetBSD: patch-meson.build,v 1.4 2019/06/18 13:05:14 jperkin Exp $
+$NetBSD: patch-meson.build,v 1.5 2019/06/26 10:42:50 prlw1 Exp $
 
 - Don't insist that python binary is called "python3".
   (Requires meson >= 0.50.0)
 - Don't install bash completion scripts.
 
 - Tolerate getxattr not existing (smartOS)
-https://gitlab.gnome.org/GNOME/glib/merge_requests/888
+  https://gitlab.gnome.org/GNOME/glib/merge_requests/888
 
 - Define a newer POSIX, as we build this package with -std=gnu99
 - auto-detect GNU iconv, even if no arguments are passed.
   (by checking if iconv.h might in fact be a gnu one)
 
+- Ignore __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 as is already done
+  for android and linux. PR pkg/54298
+
 --- meson.build.orig   2019-06-10 17:47:20.000000000 +0000
 +++ meson.build
-@@ -1696,14 +1696,14 @@ else
+@@ -1570,28 +1570,15 @@ atomictest = '''int main() {
+ }
+ '''
+ 
+-atomicdefine = '''
+-#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
+-#error "compiler has atomic ops, but doesn't define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4"
+-#endif
+-'''
+-
+ # We know that we can always use real ("lock free") atomic operations with MSVC
+ if cc.get_id() == 'msvc' or cc.links(atomictest, name : 'atomic ops')
+-  have_atomic_lock_free = true
+-  if (host_system == 'android' or host_system == 'linux') and not cc.compiles(atomicdefine, name : 'atomic ops define')
+-    # When building for armv5 on Linux, gcc provides
+-    # __sync_bool_compare_and_swap but doesn't define
+-    # __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
+-    glib_conf.set('__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4', true)
+-  endif
++  glibconfig_conf.set('G_ATOMIC_LOCK_FREE', true)
+ else
+-  have_atomic_lock_free = false
+   if host_machine.cpu_family() == 'x86' and cc.links(atomictest, args : '-march=i486')
+     error('GLib must be built with -march=i486 or later.')
+   endif
++  glibconfig_conf.set('G_ATOMIC_LOCK_FREE', false)
+ endif
+-glibconfig_conf.set('G_ATOMIC_LOCK_FREE', have_atomic_lock_free)
+ 
+ # === Threads ===
+ 
+@@ -1696,14 +1683,14 @@ else
    found_iconv = false
    if iconv_opt == 'libc'
      if cc.has_function('iconv_open')
@@ -36,7 +70,7 @@
      endif
    elif iconv_opt == 'native'
      if cc.has_header_symbol('iconv.h', 'iconv_open')
-@@ -1785,7 +1785,7 @@ endif
+@@ -1785,7 +1772,7 @@ endif
  # proxy-libintl subproject.
  # FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible
  # implementations. This could be extended if issues are found in some platforms.
@@ -45,7 +79,7 @@
    libintl = []
    have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset')
  else
-@@ -1836,16 +1836,15 @@ if host_system != 'windows' and get_opti
+@@ -1836,16 +1823,15 @@ if host_system != 'windows' and get_opti
    if cc.has_function('getxattr') and cc.has_header('sys/xattr.h')
      glib_conf.set('HAVE_SYS_XATTR_H', 1)
      glib_conf_prefix = glib_conf_prefix + '#define @0@ 1\n'.format('HAVE_SYS_XATTR_H')
@@ -64,7 +98,7 @@
    if cc.compiles(glib_conf_prefix + '''
                   #include <stdio.h>
                   #ifdef HAVE_SYS_TYPES_H
-@@ -1886,9 +1885,11 @@ elif meson.get_cross_property('have_strl
+@@ -1886,9 +1872,11 @@ elif meson.get_cross_property('have_strl
    glib_conf.set('HAVE_STRLCPY', 1)
  endif
  
@@ -79,7 +113,7 @@
  
  python_version = python.language_version()
  python_version_req = '>=3.4'
-@@ -1897,7 +1898,7 @@ if not python_version.version_compare(py
+@@ -1897,7 +1885,7 @@ if not python_version.version_compare(py
  endif
  
  # Determine which user environment-dependent files that we want to install
@@ -88,7 +122,7 @@
  have_sh = find_program('sh', required : false).found() # For glib-gettextize
  
  # Some installed tests require a custom environment
-@@ -1906,7 +1907,7 @@ env_program = find_program('env', requir
+@@ -1906,7 +1894,7 @@ env_program = find_program('env', requir
  # FIXME: How to detect Solaris? https://github.com/mesonbuild/meson/issues/1578
  if host_system == 'sunos'
    glib_conf.set('_XOPEN_SOURCE_EXTENDED', 1)



Home | Main Index | Thread Index | Old Index