package/libfastjson: can use threads instead of atomics
authorYann E. MORIN <yann.morin.1998@free.fr>
Sun, 10 Jul 2016 09:10:11 +0000 (11:10 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 15 Jul 2016 15:00:50 +0000 (17:00 +0200)
When atomic intrisics are missing, libfastjson falls back to using
pthread mutexes to manage atomicity. Of course, this is much less
efficient than atomics, but it does the job.

Propagate the new dependency to rsyslog, the sole user of libfastjson.

Note: rsyslog already depends on threads for itself, but we believe it
is better to have the exact same dependency propagated.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/libfastjson/Config.in
package/rsyslog/Config.in

index 5a9411332fc83ec09aafc171853d9c512db75161..fbc9b1d68ad1066bc007f89e4918c04ea89108bf 100644 (file)
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_LIBFASTJSON
        bool "libfastjson"
-       # uses __sync_val_compare_and_swap_4
-       depends on BR2_TOOLCHAIN_HAS_SYNC_4
+       # uses the __sync_*_4 intrisics, or pthreads to emulate atomicity
+       depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_THREADS
        help
          Libfastjson - A fast json library for C
 
index 65291deae3efe12de2400a53f377ede997e29a66..b3c146dc86914beece69eacc6b906d2533db0619 100644 (file)
@@ -7,7 +7,9 @@ config BR2_PACKAGE_RSYSLOG
        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on BR2_USE_MMU # fork()
        depends on !BR2_STATIC_LIBS # modules
-       depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libfastjson
+       # Propagate the exact same dependency from libfastjson,
+       # even though rsyslog already depends on threads for itself:
+       depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_THREADS
        depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
        help
          Rsyslog is a powerful and flexible syslog implementation
@@ -18,4 +20,4 @@ comment "rsyslog needs a toolchain w/ threads, dynamic library"
        depends on BR2_USE_MMU
        depends on BR2_TOOLCHAIN_HAS_SYNC_4
        depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
-       depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
\ No newline at end of file
+       depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS