commit 9ce42638fd2a5e70b2eb38a0f52caebb1c6aa97d
parent 615afa1621741a48977b244c2fefea9a91150be3
Author: Florian Dold <florian@dold.me>
Date: Wed, 21 Dec 2022 14:38:47 +0100
build system
Diffstat:
2 files changed, 44 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
@@ -1,9 +1,15 @@
project('quickjs-tart', 'c',
- version : '0.0.1')
+ version : '0.0.1',
+ default_options : [
+ 'warning_level=0',
+ 'optimization=2',
+ ],
+)
add_project_arguments('-D_GNU_SOURCE', language : 'c')
add_project_arguments('-DCONFIG_VERSION="0.0.1"', language : 'c')
add_project_arguments('-DCONFIG_BIGNUM', language : 'c')
+add_project_arguments('-fno-omit-frame-pointer', language : 'c')
cc = meson.get_compiler('c')
diff --git a/subprojects/libsodium/meson.build b/subprojects/libsodium/meson.build
@@ -1,8 +1,8 @@
project('libsodium', 'c',
default_options : [
'warning_level=0',
- 'optimization=3',
- ]
+ 'optimization=2',
+ ],
)
fs = import('fs')
@@ -24,6 +24,25 @@ else
check_args += '-DNATIVE_BIG_ENDIAN'
endif
+if c_compiler.has_header('alloca.h')
+ add_project_arguments('-DHAVE_ALLOCA_H', language: 'c')
+endif
+
+if c_compiler.has_function('alloca')
+ add_project_arguments('-DHAVE_ALLOCA', language: 'c')
+endif
+
+if c_compiler.has_function('arc4random')
+ add_project_arguments('-DHAVE_ARC4RANDOM', language: 'c')
+endif
+
+if c_compiler.has_function('arc4random_buf')
+ add_project_arguments('-DHAVE_ARC4RANDOM_BUF', language: 'c')
+endif
+
+# FIXME: actually check!
+add_project_arguments('-DHAVE_C_VARARRAYS', language: 'c')
+
message('check args', check_args)
add_project_arguments('-DHAVE_PTHREADS', language: 'c')
@@ -71,6 +90,12 @@ if have_cpuid
add_project_arguments('-DHAVE_CPUID', language: 'c')
endif
+have_amd64_asm = c_compiler.compiles(fs.read('checkprogs/amd64_asm.c'))
+message('have_amd64_asm:', have_amd64_asm)
+if have_amd64_asm
+ add_project_arguments('-DHAVE_AMD64_ASM', language: 'c')
+endif
+
have_avx_asm = c_compiler.compiles(fs.read('checkprogs/avx_asm.c'))
message('have_avx_asm:', have_avx_asm)
if have_avx_asm
@@ -189,6 +214,12 @@ libsodium_avx_src = [
'src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S',
]
+libsodium_amd64_src = [
+ 'src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6-asm.S',
+ 'src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.c',
+ 'src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.h',
+]
+
libsodium_all_src = []
libsodium_all_src += libsodium_base_src
@@ -196,6 +227,10 @@ if have_avx_asm
libsodium_all_src += libsodium_avx_src
endif
+if have_amd64_asm
+ libsodium_all_src += libsodium_amd64_src
+endif
+
libsodium = static_library('sodium', libsodium_all_src,
include_directories:['src/libsodium/include/sodium'])