diff --git a/LLVM.makefile b/LLVM.makefile index cef5095a..d002a44a 100644 --- a/LLVM.makefile +++ b/LLVM.makefile @@ -74,6 +74,7 @@ $(BUILD_DIR)/llvm.BUILT: install-llvm-ranlib \ install-llvm-strip \ install-llvm-dwarfdump \ + install-llvm-symbolizer \ install-clang-resource-headers \ install-ar \ install-ranlib \ diff --git a/faasmtools/build.py b/faasmtools/build.py index ffa45d39..37db8a11 100644 --- a/faasmtools/build.py +++ b/faasmtools/build.py @@ -73,6 +73,7 @@ WASM_CFLAGS = [ "-O3", # "-mno-atomics", + # TODO: may want to use -mrelaxed-simd instead "-msimd128", "--sysroot={}".format(WASM_SYSROOT), "-m32", @@ -329,21 +330,46 @@ def get_dict_as_cmake_vars(env_dict): ] -def build_config_cmd(cmd, shared=False, cxx=False, conf_args=True): +def build_config_cmd(env_vars, cmd, shared=False, cxx=False, conf_args=True): """ Wraps an autotools command in the relevant environment variables and - cross-compilation config + cross-compilation config. We need to call this method after we get + the right env. vars using get_faasm_build_env_dict """ - result = copy(BASE_CONFIG_CMDXX if cxx else BASE_CONFIG_CMD) + base_config_cmd = [ + "CC={}".format(env_vars["FAASM_WASM_CC"]), + "CXX={}".format(env_vars["FAASM_WASM_CXX"]), + # "CPP={}".format(env_vars["FAASM_WASM_CXX"]), + "AR={}".format(env_vars["FAASM_WASM_AR"]), + "RANLIB={}".format(env_vars["FAASM_WASM_RANLIB"]), + 'CFLAGS="--target={} {}"'.format(env_vars["FAASM_WASM_TRIPLE"], env_vars["FAASM_WASM_CFLAGS"]), + # 'CPPFLAGS="--target={} {}"'.format(env_vars["FAASM_WASM_TRIPLE"], env_vars["FAASM_WASM_CXXFLAGS"]), + 'CXXFLAGS="--target={} {}"'.format(env_vars["FAASM_WASM_TRIPLE"], env_vars["FAASM_WASM_CXXFLAGS"]), + 'CCSHARED="{}"'.format(env_vars["FAASM_WASM_CFLAGS_SHARED"]), + 'CXXSHARED="{}"'.format(env_vars["FAASM_WASM_CXXFLAGS_SHARED"]), + ] + + if cxx: + base_config_cmd += [ + "LD={}".format(env_vars["FAASM_WASM_CXX"]), + 'LDFLAGS="-target {} {}"'.format(env_vars["FAASM_WASM_TRIPLE"], env_vars["FAASM_WASM_STATIC_LINKER_FLAGS"]) + # 'LDSHARED="{}"'.format(WASM_LDXXSHARED), + ] + else: + base_config_cmd += [ + "LD={}".format(env_vars["FAASM_WASM_CC"]), + 'LDFLAGS="-target {} {}"'.format(env_vars["FAASM_WASM_TRIPLE"], env_vars["FAASM_WASM_STATIC_LINKER_FLAGS"]) + # 'LDSHARED="{}"'.format(env_vars["FAASM_WASM_CFLAGS_SHARED"), + ] - result += BASE_CONFIG_FLAGS_SHARED if shared else BASE_CONFIG_FLAGS + # result += BASE_CONFIG_FLAGS_SHARED if shared else BASE_CONFIG_FLAGS - result += cmd + base_config_cmd += cmd if conf_args: - result += _BASE_CONFIG_ARGS_SHARED if shared else _BASE_CONFIG_ARGS + base_config_cmd += _BASE_CONFIG_ARGS_SHARED if shared else _BASE_CONFIG_ARGS - return result + return base_config_cmd def run_autotools(proj_dir): diff --git a/sysroot_extras/libc.imports b/sysroot_extras/libc.imports index 581cc36b..d0ef7134 100644 --- a/sysroot_extras/libc.imports +++ b/sysroot_extras/libc.imports @@ -99,11 +99,16 @@ pthread_cond_destroy pthread_cond_signal pthread_cond_timedwait pthread_cond_init +pthread_condattr_init +pthread_condattr_setclock pthread_equal pthread_mutexattr_init pthread_mutexattr_settype pthread_mutexattr_destroy +__tls_align __tls_base +__tls_size +__wasm_init_tls # Signals signal diff --git a/tasks/libemscripten.py b/tasks/libemscripten.py index 2a034942..7a7022a8 100644 --- a/tasks/libemscripten.py +++ b/tasks/libemscripten.py @@ -3,8 +3,8 @@ @task(default=True) -def build(ctx, clean=False): +def build(ctx, clean=False, threads=False): """ Builds Faasm emscripten support library """ - build_faasm_lib("libemscripten", clean=clean, native=False, shared=False) + build_faasm_lib("libemscripten", clean=clean, native=False, shared=False, threads=threads) diff --git a/third-party/wasi-libc b/third-party/wasi-libc index b37edadc..dceadb68 160000 --- a/third-party/wasi-libc +++ b/third-party/wasi-libc @@ -1 +1 @@ -Subproject commit b37edadc81a9c24b3c4c93f1ba8e14210144832f +Subproject commit dceadb68111821fc2ba9ba3a64b95463b21cd9db