| 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 |