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