package/janet: fix build without threads
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Fri, 19 Mar 2021 21:27:37 +0000 (22:27 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 20 Mar 2021 20:03:21 +0000 (21:03 +0100)
Fix build of janet without threads which is broken since its addition
in commit 9a5c9c058cbb250cfb9519347507a030e157ed16

Fixes:
 - http://autobuild.buildroot.org/results/dd894a7178a395ea29912804132b1516934e8fa3

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/janet/0003-meson.build-fix-build-without-threads.patch [new file with mode: 0644]

diff --git a/package/janet/0003-meson.build-fix-build-without-threads.patch b/package/janet/0003-meson.build-fix-build-without-threads.patch
new file mode 100644 (file)
index 0000000..e6c9e87
--- /dev/null
@@ -0,0 +1,72 @@
+From a7abe11105ac71081455fb4ff0400606bf1668e8 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Thu, 18 Mar 2021 09:00:23 +0100
+Subject: [PATCH] meson.build: fix build without threads
+
+Fix the following build failure with -Dsingle_threaded=true on embedded
+toolchains without pthread:
+
+FAILED: janet.p/meson-generated_.._janet.c.o
+/home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-linux-gcc -Ijanet.p -I. -I.. -I../src/include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -std=c99 -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -pthread -fvisibility=hidden -MD -MQ janet.p/meson-generated_.._janet.c.o -MF janet.p/meson-generated_.._janet.c.o.d -o janet.p/meson-generated_.._janet.c.o -c janet.c
+In file included from /home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/stdlib.h:24,
+                 from ../src/include/janet.h:300,
+                 from src/core/features.h:57:
+/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/features.h:218:5: warning: #warning requested reentrant code, but thread support was disabled [-Wcpp]
+  218 | #   warning requested reentrant code, but thread support was disabled
+      |     ^~~~~~~
+src/core/ev.c:39:10: fatal error: pthread.h: No such file or directory
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Retrieved from:
+https://github.com/janet-lang/janet/commit/a7abe11105ac71081455fb4ff0400606bf1668e8]
+---
+ meson.build | 13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index ea8c2f2e..d6c6c069 100644
+--- a/meson.build
++++ b/meson.build
+@@ -60,7 +60,7 @@ conf.set('JANET_NO_SOURCEMAPS', not get_option('sourcemaps'))
+ conf.set('JANET_NO_ASSEMBLER', not get_option('assembler'))
+ conf.set('JANET_NO_PEG', not get_option('peg'))
+ conf.set('JANET_NO_NET', not get_option('net'))
+-conf.set('JANET_NO_EV', not get_option('ev'))
++conf.set('JANET_NO_EV', not get_option('ev') or get_option('single_threaded'))
+ conf.set('JANET_REDUCED_OS', get_option('reduced_os'))
+ conf.set('JANET_NO_TYPED_ARRAY', not get_option('typed_array'))
+ conf.set('JANET_NO_INT_TYPES', not get_option('int_types'))
+@@ -173,9 +173,14 @@ janetc = custom_target('janetc',
+     'JANET_PATH', janet_path, 'JANET_HEADERPATH', header_path
+   ])
++janet_dependencies = [m_dep, dl_dep]
++if not get_option('single_threaded')
++  janet_dependencies += thread_dep
++endif
++
+ libjanet = library('janet', janetc,
+   include_directories : incdir,
+-  dependencies : [m_dep, dl_dep, thread_dep],
++  dependencies : janet_dependencies,
+   version: meson.project_version(),
+   soversion: version_parts[0] + '.' + version_parts[1],
+   install : true)
+@@ -189,7 +194,7 @@ else
+ endif
+ janet_mainclient = executable('janet', janetc, mainclient_src,
+   include_directories : incdir,
+-  dependencies : [m_dep, dl_dep, thread_dep],
++  dependencies : janet_dependencies,
+   c_args : extra_cflags,
+   install : true)
+@@ -202,7 +207,7 @@ if meson.is_cross_build()
+   endif
+   janet_nativeclient = executable('janet-native', janetc, mainclient_src,
+     include_directories : incdir,
+-    dependencies : [m_dep, dl_dep, thread_dep],
++    dependencies : janet_dependencies,
+     c_args : extra_native_cflags,
+     native : true)
+ else