| commit cb2d8c8e6c8e120c6b09830fbb89487ed1048e3c |
| Author: wenlingyun1 <wenlingyun1@xiaomi.com> |
| Date: Mon Nov 11 11:43:56 2024 +0800 |
| |
| update quickjs patch |
| |
| Signed-off-by: wenlingyun1 <wenlingyun1@xiaomi.com> |
| |
| diff --git a/quickjs-libc.c b/quickjs-libc.c |
| index 141f79f..67f31e8 100644 |
| --- a/quickjs-libc.c |
| +++ b/quickjs-libc.c |
| @@ -3695,10 +3695,10 @@ static const JSCFunctionListEntry js_os_funcs[] = { |
| JS_CFUNC_MAGIC_DEF("setWriteHandler", 2, js_os_setReadHandler, 1 ), |
| JS_CFUNC_DEF("signal", 2, js_os_signal ), |
| OS_FLAG(SIGINT), |
| - OS_FLAG(SIGABRT), |
| - OS_FLAG(SIGFPE), |
| - OS_FLAG(SIGILL), |
| - OS_FLAG(SIGSEGV), |
| + // OS_FLAG(SIGABRT), |
| + // OS_FLAG(SIGFPE), |
| + // OS_FLAG(SIGILL), |
| + // OS_FLAG(SIGSEGV), |
| OS_FLAG(SIGTERM), |
| #if !defined(_WIN32) |
| OS_FLAG(SIGQUIT), |
| @@ -3710,8 +3710,8 @@ static const JSCFunctionListEntry js_os_funcs[] = { |
| OS_FLAG(SIGCONT), |
| OS_FLAG(SIGSTOP), |
| OS_FLAG(SIGTSTP), |
| - OS_FLAG(SIGTTIN), |
| - OS_FLAG(SIGTTOU), |
| + // OS_FLAG(SIGTTIN), |
| + // OS_FLAG(SIGTTOU), |
| #endif |
| JS_CFUNC_DEF("now", 0, js_os_now ), |
| JS_CFUNC_DEF("setTimeout", 2, js_os_setTimeout ), |
| @@ -3743,7 +3743,7 @@ static const JSCFunctionListEntry js_os_funcs[] = { |
| JS_CFUNC_MAGIC_DEF("lstat", 1, js_os_stat, 1 ), |
| JS_CFUNC_DEF("symlink", 2, js_os_symlink ), |
| JS_CFUNC_DEF("readlink", 1, js_os_readlink ), |
| - JS_CFUNC_DEF("exec", 1, js_os_exec ), |
| + // JS_CFUNC_DEF("exec", 1, js_os_exec ), |
| JS_CFUNC_DEF("getpid", 0, js_os_getpid ), |
| JS_CFUNC_DEF("waitpid", 2, js_os_waitpid ), |
| OS_FLAG(WNOHANG), |
| commit 33590bf30396733a5f5365feec47f40a73bdfd5a |
| Author: wenlingyun1 <wenlingyun1@xiaomi.com> |
| Date: Tue May 28 11:16:56 2024 +0800 |
| |
| add CMakeLists.txt for building qjsc |
| |
| VELAPLATFO-30697 |
| |
| Change-Id: Idcb98f8b0b3f7b694b381f9f376202938d562048 |
| Signed-off-by: wenlingyun1 <wenlingyun1@xiaomi.com> |
| |
| diff --git a/CMakeLists.txt b/CMakeLists.txt |
| new file mode 100644 |
| index 0000000..0dc6fd5 |
| --- /dev/null |
| +++ b/CMakeLists.txt |
| @@ -0,0 +1,121 @@ |
| +cmake_minimum_required(VERSION 3.16) |
| +project(jsc) |
| + |
| +set(CONFIG_LTO y) |
| +set(prefix "/usr/local") |
| + |
| +set(QUICKJS_DIR ${CMAKE_CURRENT_LIST_DIR}) |
| + |
| +if(CONFIG_DARWIN) |
| + set(CONFIG_CLANG y) |
| + set(CONFIG_DEFAULT_AR y) |
| +endif() |
| + |
| +if(CONFIG_WIN32) |
| + if(CONFIG_M32) |
| + set(CROSS_PREFIX i686-w64-mingw32-) |
| + else() |
| + set(CROSS_PREFIX x86_64-w64-mingw32-) |
| + endif() |
| +else() |
| + set(CROSS_PREFIX) |
| +endif() |
| + |
| +set(QUICKJS_COMMON_OPT) |
| +set(QJSC_OPT) |
| +if(CONFIG_CLANG) |
| + set(HOST_CC clang) |
| + set(CC ${CROSS_PREFIX}clang) |
| + list(APPEND QUICKJS_COMMON_OPT -g -Wall) |
| + list(APPEND QUICKJS_COMMON_OPT -Wextra) |
| + list(APPEND QUICKJS_COMMON_OPT -Wno-sign-compare) |
| + list(APPEND QUICKJS_COMMON_OPT -Wno-missing-field-initializers) |
| + list(APPEND QUICKJS_COMMON_OPT -Wundef -Wuninitialized) |
| + list(APPEND QUICKJS_COMMON_OPT -Wunused -Wno-unused-parameter) |
| + list(APPEND QUICKJS_COMMON_OPT -Wwrite-strings) |
| + list(APPEND QUICKJS_COMMON_OPT -Wchar-subscripts -funsigned-char) |
| + if(CONFIG_DEFAULT_AR) |
| + set(AR ${CROSS_PREFIX}ar) |
| + else() |
| + if(CONFIG_LTO) |
| + set(AR ${CROSS_PREFIX}llvm-ar) |
| + else() |
| + set(AR ${CROSS_PREFIX}ar) |
| + endif() |
| + endif() |
| +else() |
| + set(HOST_CC gcc) |
| + set(CC ${CROSS_PREFIX}gcc) |
| + list(APPEND QUICKJS_COMMON_OPT -g -Wall) |
| + list(APPEND QUICKJS_COMMON_OPT -Wno-array-bounds -Wno-format-truncation) |
| + if(CONFIG_LTO) |
| + set(AR ${CROSS_PREFIX}gcc-ar) |
| + else() |
| + set(AR ${CROSS_PREFIX}ar) |
| + endif() |
| +endif() |
| + |
| +set(STRIP ${CROSS_PREFIX}strip) |
| + |
| +if(CONFIG_WERROR) |
| + list(APPEND QUICKJS_COMMON_OPT -Werror) |
| +endif() |
| + |
| +set(QUICKJS_COMMON_DEF) |
| +set(QUICKJS_DEF) |
| +set(QJSC_DEF) |
| +list(APPEND QUICKJS_COMMON_DEF -D_GNU_SOURCE |
| + -DCONFIG_VERSION=${QUICKJS_VERSION}) |
| + |
| +if(CONFIG_BIGNUM STREQUAL y) |
| + list(APPEND QUICKJS_COMMON_DEF -DCONFIG_BIGNUM) |
| +endif() |
| + |
| +list(APPEND QJSC_OPT -O2) |
| + |
| +if(CONFIG_LTO) |
| + list(APPEND CFLAGS_SMALL -flto) |
| + list(APPEND QUICKJS_COMMON_OPT -flto) |
| + list(APPEND LDFLAGS -flto) |
| +endif() |
| + |
| +if(CONFIG_PROFILE) |
| + list(APPEND CFLAGS -p) |
| + list(APPEND LDFLAGS -p) |
| +endif() |
| + |
| +if(CONFIG_ASAN) |
| + list(APPEND CFLAGS -fsanitize=address -fno-omit-frame-pointer) |
| + list(APPEND LDFLAGS -fsanitize=address -fno-omit-frame-pointer) |
| +endif() |
| + |
| +if(CROSS_PREFIX) |
| + set(QJSC_CC gcc) |
| + set(QJSC ./host-qjsc) |
| +else() |
| + set(QJSC_CC ${CC}) |
| + set(QJSC ./qjsc) |
| +endif() |
| + |
| +list(APPEND QUICKJS_COMMON_OPT -O2) |
| + |
| +list(APPEND QJSC_OPT ${QUICKJS_COMMON_OPT}) |
| + |
| +list(APPEND QUICKJS_DEF ${QUICKJS_COMMON_DEF}) |
| + |
| +list(APPEND QJSC_DEF ${QUICKJS_COMMON_DEF}) |
| +list(APPEND QJSC_DEF -DCONFIG_LTO -DCONFIG_CC=\"gcc\" |
| + -DCONFIG_PREFIX=\"/usr/local\") |
| + |
| +set(QUICKJS_SRC |
| + ${QUICKJS_DIR}/quickjs.c |
| + ${QUICKJS_DIR}/libbf.c |
| + ${QUICKJS_DIR}/libunicode.c |
| + ${QUICKJS_DIR}/libregexp.c |
| + ${QUICKJS_DIR}/cutils.c |
| + ${QUICKJS_DIR}/quickjs-libc.c) |
| +add_library(quickjs ${QUICKJS_SRC}) |
| +target_compile_options(quickjs PRIVATE ${QUICKJS_COMMON_OPT}) |
| +target_compile_definitions(quickjs PRIVATE ${QUICKJS_DEF}) |
| + |
| +include(qjsc.cmake) |
| diff --git a/qjsc.cmake b/qjsc.cmake |
| new file mode 100644 |
| index 0000000..f64fcbe |
| --- /dev/null |
| +++ b/qjsc.cmake |
| @@ -0,0 +1,119 @@ |
| +cmake_minimum_required(VERSION 3.16) |
| +project(qjsc) |
| +set(CONFIG_LTO y) |
| +set(prefix "/usr/local") |
| + |
| +set(QUICKJS_DIR ${CMAKE_CURRENT_LIST_DIR}/) |
| + |
| +if(CONFIG_DARWIN) |
| + set(CONFIG_CLANG y) |
| + set(CONFIG_DEFAULT_AR y) |
| +endif() |
| + |
| +if(CONFIG_WIN32) |
| + if(CONFIG_M32) |
| + set(CROSS_PREFIX i686-w64-mingw32-) |
| + else() |
| + set(CROSS_PREFIX x86_64-w64-mingw32-) |
| + endif() |
| +else() |
| + set(CROSS_PREFIX) |
| +endif() |
| + |
| +set(QUICKJS_COMMON_OPT) |
| +set(QJSC_OPT) |
| +if(CONFIG_CLANG) |
| + set(HOST_CC clang) |
| + set(CC ${CROSS_PREFIX}clang) |
| + list(APPEND QUICKJS_COMMON_OPT -g -Wall) |
| + list(APPEND QUICKJS_COMMON_OPT -Wextra) |
| + list(APPEND QUICKJS_COMMON_OPT -Wno-sign-compare) |
| + list(APPEND QUICKJS_COMMON_OPT -Wno-missing-field-initializers) |
| + list(APPEND QUICKJS_COMMON_OPT -Wundef -Wuninitialized) |
| + list(APPEND QUICKJS_COMMON_OPT -Wunused -Wno-unused-parameter) |
| + list(APPEND QUICKJS_COMMON_OPT -Wwrite-strings) |
| + list(APPEND QUICKJS_COMMON_OPT -Wchar-subscripts -funsigned-char) |
| + if(CONFIG_DEFAULT_AR) |
| + set(AR ${CROSS_PREFIX}ar) |
| + else() |
| + if(CONFIG_LTO) |
| + set(AR ${CROSS_PREFIX}llvm-ar) |
| + else() |
| + set(AR ${CROSS_PREFIX}ar) |
| + endif() |
| + endif() |
| +else() |
| + set(HOST_CC gcc) |
| + set(CC ${CROSS_PREFIX}gcc) |
| + list(APPEND QUICKJS_COMMON_OPT -g -Wall) |
| + list(APPEND QUICKJS_COMMON_OPT -Wno-array-bounds -Wno-format-truncation) |
| + if(CONFIG_LTO) |
| + set(AR ${CROSS_PREFIX}gcc-ar) |
| + else() |
| + set(AR ${CROSS_PREFIX}ar) |
| + endif() |
| +endif() |
| + |
| +set(STRIP ${CROSS_PREFIX}strip) |
| + |
| +if(CONFIG_WERROR) |
| + list(APPEND QUICKJS_COMMON_OPT -Werror) |
| +endif() |
| + |
| +set(QUICKJS_COMMON_DEF) |
| +set(QUICKJS_DEF) |
| +set(QJSC_DEF) |
| +list(APPEND QUICKJS_COMMON_DEF -D_GNU_SOURCE |
| + -DCONFIG_VERSION=${QUICKJS_VERSION}) |
| + |
| +if(CONFIG_BIGNUM STREQUAL y) |
| + list(APPEND QUICKJS_COMMON_DEF -DCONFIG_BIGNUM) |
| +endif() |
| + |
| +list(APPEND QJSC_OPT -O2) |
| + |
| +if(CONFIG_LTO) |
| + list(APPEND CFLAGS_SMALL -flto) |
| + list(APPEND QUICKJS_COMMON_OPT -flto) |
| + list(APPEND LDFLAGS -flto) |
| +endif() |
| + |
| +if(CONFIG_PROFILE) |
| + list(APPEND CFLAGS -p) |
| + list(APPEND LDFLAGS -p) |
| +endif() |
| + |
| +if(CONFIG_ASAN) |
| + list(APPEND CFLAGS -fsanitize=address -fno-omit-frame-pointer) |
| + list(APPEND LDFLAGS -fsanitize=address -fno-omit-frame-pointer) |
| +endif() |
| + |
| +if(CROSS_PREFIX) |
| + set(QJSC_CC gcc) |
| + set(QJSC ./host-qjsc) |
| +else() |
| + set(QJSC_CC ${CC}) |
| + set(QJSC ./qjsc) |
| +endif() |
| + |
| +list(APPEND QUICKJS_COMMON_OPT -O2) |
| + |
| +list(APPEND QJSC_OPT ${QUICKJS_COMMON_OPT}) |
| + |
| +list(APPEND QUICKJS_DEF ${QUICKJS_COMMON_DEF}) |
| + |
| +list(APPEND QJSC_DEF ${QUICKJS_COMMON_DEF}) |
| +list(APPEND QJSC_DEF -DCONFIG_LTO -DCONFIG_CC=\"gcc\" |
| + -DCONFIG_PREFIX=\"/usr/local\") |
| + |
| +add_executable(qjsc qjsc.c) |
| +target_compile_options(qjsc PRIVATE ${QJSC_OPT}) |
| +target_compile_definitions(qjsc PRIVATE ${QJSC_DEF}) |
| + |
| +target_link_options(qjsc PRIVATE -g -flto) |
| +target_link_libraries(qjsc quickjs) |
| + |
| +if(UNIX) |
| + find_package(Threads) |
| + target_link_libraries(quickjs ${CMAKE_DL_LIBS} m Threads::Threads) |
| +endif() |