quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

commit 9ce42638fd2a5e70b2eb38a0f52caebb1c6aa97d
parent 615afa1621741a48977b244c2fefea9a91150be3
Author: Florian Dold <florian@dold.me>
Date:   Wed, 21 Dec 2022 14:38:47 +0100

build system

Diffstat:
Mmeson.build | 8+++++++-
Msubprojects/libsodium/meson.build | 39+++++++++++++++++++++++++++++++++++++--
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'])