1- From a3374db7eca1141ec8a3909ff001f52f3e79d905 Mon Sep 17 00:00:00 2001
2- From: Huang Qi <huangqi3@xiaomi.com>
3- Date: Wed, 10 Mar 2021 16:30:13 +0800
4- Subject: [PATCH] Disabled unsupported feature on NuttX.
1+ commit cb2d8c8e6c8e120c6b09830fbb89487ed1048e3c
2+ Author: wenlingyun1 <wenlingyun1@xiaomi.com>
3+ Date: Mon Nov 11 11:43:56 2024 +0800
54
6- N/A
5+ update quickjs patch
6+
7+ Signed-off-by: wenlingyun1 <wenlingyun1@xiaomi.com>
78
8- Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
9- Change-Id: I4ff1793609b752320d64406deec3c0ed9b4da965
10- ---
11- qjs.c | 2 ++
12- quickjs-libc.c | 14 +++++++-------
13- 2 files changed, 9 insertions(+), 7 deletions(-)
14-
15- diff --git a/qjs.c b/qjs.c
16- index 4dd11f8..a35a500 100644
17- --- a/qjs.c
18- +++ b/qjs.c
19- @@ -448,8 +448,10 @@ int main(int argc, char **argv)
20- }
21- }
22-
23- + #ifdef CONFIG_BIGNUM
24- if (load_jscalc)
25- bignum_ext = 1;
26- + #endif
27-
28- if (trace_memory) {
29- js_trace_malloc_init(&trace_data);
309diff --git a/quickjs-libc.c b/quickjs-libc.c
31- index e8b81e9..858703c 100644
10+ index 141f79f..67f31e8 100644
3211--- a/quickjs-libc.c
3312+++ b/quickjs-libc.c
34- @@ -3558 ,10 +3558 ,10 @@ static const JSCFunctionListEntry js_os_funcs[] = {
13+ @@ -3695 ,10 +3695 ,10 @@ static const JSCFunctionListEntry js_os_funcs[] = {
3514 JS_CFUNC_MAGIC_DEF("setWriteHandler", 2, js_os_setReadHandler, 1 ),
3615 JS_CFUNC_DEF("signal", 2, js_os_signal ),
3716 OS_FLAG(SIGINT),
@@ -46,7 +25,7 @@ index e8b81e9..858703c 100644
4625 OS_FLAG(SIGTERM),
4726 #if !defined(_WIN32)
4827 OS_FLAG(SIGQUIT),
49- @@ -3573 ,8 +3573 ,8 @@ static const JSCFunctionListEntry js_os_funcs[] = {
28+ @@ -3710 ,8 +3710 ,8 @@ static const JSCFunctionListEntry js_os_funcs[] = {
5029 OS_FLAG(SIGCONT),
5130 OS_FLAG(SIGSTOP),
5231 OS_FLAG(SIGTSTP),
@@ -55,17 +34,277 @@ index e8b81e9..858703c 100644
5534+ // OS_FLAG(SIGTTIN),
5635+ // OS_FLAG(SIGTTOU),
5736 #endif
37+ JS_CFUNC_DEF("now", 0, js_os_now ),
5838 JS_CFUNC_DEF("setTimeout", 2, js_os_setTimeout ),
59- JS_CFUNC_DEF("clearTimeout", 1, js_os_clearTimeout ),
60- @@ -3603,7 +3603,7 @@ static const JSCFunctionListEntry js_os_funcs[] = {
61- JS_CFUNC_DEF("realpath", 1, js_os_realpath ),
39+ @@ -3743,7 +3743,7 @@ static const JSCFunctionListEntry js_os_funcs[] = {
40+ JS_CFUNC_MAGIC_DEF("lstat", 1, js_os_stat, 1 ),
6241 JS_CFUNC_DEF("symlink", 2, js_os_symlink ),
6342 JS_CFUNC_DEF("readlink", 1, js_os_readlink ),
6443- JS_CFUNC_DEF("exec", 1, js_os_exec ),
6544+ // JS_CFUNC_DEF("exec", 1, js_os_exec ),
45+ JS_CFUNC_DEF("getpid", 0, js_os_getpid ),
6646 JS_CFUNC_DEF("waitpid", 2, js_os_waitpid ),
6747 OS_FLAG(WNOHANG),
68- JS_CFUNC_DEF("pipe", 0, js_os_pipe ),
69- - -
70- 2.25.1
48+ commit 33590bf30396733a5f5365feec47f40a73bdfd5a
49+ Author: wenlingyun1 <wenlingyun1@xiaomi.com>
50+ Date: Tue May 28 11:16:56 2024 +0800
51+
52+ add CMakeLists.txt for building qjsc
53+
54+ VELAPLATFO-30697
55+
56+ Change-Id: Idcb98f8b0b3f7b694b381f9f376202938d562048
57+ Signed-off-by: wenlingyun1 <wenlingyun1@xiaomi.com>
7158
59+ diff --git a/CMakeLists.txt b/CMakeLists.txt
60+ new file mode 100644
61+ index 0000000..0dc6fd5
62+ --- /dev/null
63+ +++ b/CMakeLists.txt
64+ @@ -0,0 +1,121 @@
65+ + cmake_minimum_required(VERSION 3.16)
66+ + project(jsc)
67+ +
68+ + set(CONFIG_LTO y)
69+ + set(prefix "/usr/local")
70+ +
71+ + set(QUICKJS_DIR ${CMAKE_CURRENT_LIST_DIR})
72+ +
73+ + if(CONFIG_DARWIN)
74+ + set(CONFIG_CLANG y)
75+ + set(CONFIG_DEFAULT_AR y)
76+ + endif()
77+ +
78+ + if(CONFIG_WIN32)
79+ + if(CONFIG_M32)
80+ + set(CROSS_PREFIX i686-w64-mingw32-)
81+ + else()
82+ + set(CROSS_PREFIX x86_64-w64-mingw32-)
83+ + endif()
84+ + else()
85+ + set(CROSS_PREFIX)
86+ + endif()
87+ +
88+ + set(QUICKJS_COMMON_OPT)
89+ + set(QJSC_OPT)
90+ + if(CONFIG_CLANG)
91+ + set(HOST_CC clang)
92+ + set(CC ${CROSS_PREFIX}clang)
93+ + list(APPEND QUICKJS_COMMON_OPT -g -Wall)
94+ + list(APPEND QUICKJS_COMMON_OPT -Wextra)
95+ + list(APPEND QUICKJS_COMMON_OPT -Wno-sign-compare)
96+ + list(APPEND QUICKJS_COMMON_OPT -Wno-missing-field-initializers)
97+ + list(APPEND QUICKJS_COMMON_OPT -Wundef -Wuninitialized)
98+ + list(APPEND QUICKJS_COMMON_OPT -Wunused -Wno-unused-parameter)
99+ + list(APPEND QUICKJS_COMMON_OPT -Wwrite-strings)
100+ + list(APPEND QUICKJS_COMMON_OPT -Wchar-subscripts -funsigned-char)
101+ + if(CONFIG_DEFAULT_AR)
102+ + set(AR ${CROSS_PREFIX}ar)
103+ + else()
104+ + if(CONFIG_LTO)
105+ + set(AR ${CROSS_PREFIX}llvm-ar)
106+ + else()
107+ + set(AR ${CROSS_PREFIX}ar)
108+ + endif()
109+ + endif()
110+ + else()
111+ + set(HOST_CC gcc)
112+ + set(CC ${CROSS_PREFIX}gcc)
113+ + list(APPEND QUICKJS_COMMON_OPT -g -Wall)
114+ + list(APPEND QUICKJS_COMMON_OPT -Wno-array-bounds -Wno-format-truncation)
115+ + if(CONFIG_LTO)
116+ + set(AR ${CROSS_PREFIX}gcc-ar)
117+ + else()
118+ + set(AR ${CROSS_PREFIX}ar)
119+ + endif()
120+ + endif()
121+ +
122+ + set(STRIP ${CROSS_PREFIX}strip)
123+ +
124+ + if(CONFIG_WERROR)
125+ + list(APPEND QUICKJS_COMMON_OPT -Werror)
126+ + endif()
127+ +
128+ + set(QUICKJS_COMMON_DEF)
129+ + set(QUICKJS_DEF)
130+ + set(QJSC_DEF)
131+ + list(APPEND QUICKJS_COMMON_DEF -D_GNU_SOURCE
132+ + -DCONFIG_VERSION=${QUICKJS_VERSION})
133+ +
134+ + if(CONFIG_BIGNUM STREQUAL y)
135+ + list(APPEND QUICKJS_COMMON_DEF -DCONFIG_BIGNUM)
136+ + endif()
137+ +
138+ + list(APPEND QJSC_OPT -O2)
139+ +
140+ + if(CONFIG_LTO)
141+ + list(APPEND CFLAGS_SMALL -flto)
142+ + list(APPEND QUICKJS_COMMON_OPT -flto)
143+ + list(APPEND LDFLAGS -flto)
144+ + endif()
145+ +
146+ + if(CONFIG_PROFILE)
147+ + list(APPEND CFLAGS -p)
148+ + list(APPEND LDFLAGS -p)
149+ + endif()
150+ +
151+ + if(CONFIG_ASAN)
152+ + list(APPEND CFLAGS -fsanitize=address -fno-omit-frame-pointer)
153+ + list(APPEND LDFLAGS -fsanitize=address -fno-omit-frame-pointer)
154+ + endif()
155+ +
156+ + if(CROSS_PREFIX)
157+ + set(QJSC_CC gcc)
158+ + set(QJSC ./host-qjsc)
159+ + else()
160+ + set(QJSC_CC ${CC})
161+ + set(QJSC ./qjsc)
162+ + endif()
163+ +
164+ + list(APPEND QUICKJS_COMMON_OPT -O2)
165+ +
166+ + list(APPEND QJSC_OPT ${QUICKJS_COMMON_OPT})
167+ +
168+ + list(APPEND QUICKJS_DEF ${QUICKJS_COMMON_DEF})
169+ +
170+ + list(APPEND QJSC_DEF ${QUICKJS_COMMON_DEF})
171+ + list(APPEND QJSC_DEF -DCONFIG_LTO -DCONFIG_CC=\"gcc\"
172+ + -DCONFIG_PREFIX=\"/usr/local\")
173+ +
174+ + set(QUICKJS_SRC
175+ + ${QUICKJS_DIR}/quickjs.c
176+ + ${QUICKJS_DIR}/libbf.c
177+ + ${QUICKJS_DIR}/libunicode.c
178+ + ${QUICKJS_DIR}/libregexp.c
179+ + ${QUICKJS_DIR}/cutils.c
180+ + ${QUICKJS_DIR}/quickjs-libc.c)
181+ + add_library(quickjs ${QUICKJS_SRC})
182+ + target_compile_options(quickjs PRIVATE ${QUICKJS_COMMON_OPT})
183+ + target_compile_definitions(quickjs PRIVATE ${QUICKJS_DEF})
184+ +
185+ + include(qjsc.cmake)
186+ diff --git a/qjsc.cmake b/qjsc.cmake
187+ new file mode 100644
188+ index 0000000..f64fcbe
189+ --- /dev/null
190+ +++ b/qjsc.cmake
191+ @@ -0,0 +1,119 @@
192+ + cmake_minimum_required(VERSION 3.16)
193+ + project(qjsc)
194+ + set(CONFIG_LTO y)
195+ + set(prefix "/usr/local")
196+ +
197+ + set(QUICKJS_DIR ${CMAKE_CURRENT_LIST_DIR}/)
198+ +
199+ + if(CONFIG_DARWIN)
200+ + set(CONFIG_CLANG y)
201+ + set(CONFIG_DEFAULT_AR y)
202+ + endif()
203+ +
204+ + if(CONFIG_WIN32)
205+ + if(CONFIG_M32)
206+ + set(CROSS_PREFIX i686-w64-mingw32-)
207+ + else()
208+ + set(CROSS_PREFIX x86_64-w64-mingw32-)
209+ + endif()
210+ + else()
211+ + set(CROSS_PREFIX)
212+ + endif()
213+ +
214+ + set(QUICKJS_COMMON_OPT)
215+ + set(QJSC_OPT)
216+ + if(CONFIG_CLANG)
217+ + set(HOST_CC clang)
218+ + set(CC ${CROSS_PREFIX}clang)
219+ + list(APPEND QUICKJS_COMMON_OPT -g -Wall)
220+ + list(APPEND QUICKJS_COMMON_OPT -Wextra)
221+ + list(APPEND QUICKJS_COMMON_OPT -Wno-sign-compare)
222+ + list(APPEND QUICKJS_COMMON_OPT -Wno-missing-field-initializers)
223+ + list(APPEND QUICKJS_COMMON_OPT -Wundef -Wuninitialized)
224+ + list(APPEND QUICKJS_COMMON_OPT -Wunused -Wno-unused-parameter)
225+ + list(APPEND QUICKJS_COMMON_OPT -Wwrite-strings)
226+ + list(APPEND QUICKJS_COMMON_OPT -Wchar-subscripts -funsigned-char)
227+ + if(CONFIG_DEFAULT_AR)
228+ + set(AR ${CROSS_PREFIX}ar)
229+ + else()
230+ + if(CONFIG_LTO)
231+ + set(AR ${CROSS_PREFIX}llvm-ar)
232+ + else()
233+ + set(AR ${CROSS_PREFIX}ar)
234+ + endif()
235+ + endif()
236+ + else()
237+ + set(HOST_CC gcc)
238+ + set(CC ${CROSS_PREFIX}gcc)
239+ + list(APPEND QUICKJS_COMMON_OPT -g -Wall)
240+ + list(APPEND QUICKJS_COMMON_OPT -Wno-array-bounds -Wno-format-truncation)
241+ + if(CONFIG_LTO)
242+ + set(AR ${CROSS_PREFIX}gcc-ar)
243+ + else()
244+ + set(AR ${CROSS_PREFIX}ar)
245+ + endif()
246+ + endif()
247+ +
248+ + set(STRIP ${CROSS_PREFIX}strip)
249+ +
250+ + if(CONFIG_WERROR)
251+ + list(APPEND QUICKJS_COMMON_OPT -Werror)
252+ + endif()
253+ +
254+ + set(QUICKJS_COMMON_DEF)
255+ + set(QUICKJS_DEF)
256+ + set(QJSC_DEF)
257+ + list(APPEND QUICKJS_COMMON_DEF -D_GNU_SOURCE
258+ + -DCONFIG_VERSION=${QUICKJS_VERSION})
259+ +
260+ + if(CONFIG_BIGNUM STREQUAL y)
261+ + list(APPEND QUICKJS_COMMON_DEF -DCONFIG_BIGNUM)
262+ + endif()
263+ +
264+ + list(APPEND QJSC_OPT -O2)
265+ +
266+ + if(CONFIG_LTO)
267+ + list(APPEND CFLAGS_SMALL -flto)
268+ + list(APPEND QUICKJS_COMMON_OPT -flto)
269+ + list(APPEND LDFLAGS -flto)
270+ + endif()
271+ +
272+ + if(CONFIG_PROFILE)
273+ + list(APPEND CFLAGS -p)
274+ + list(APPEND LDFLAGS -p)
275+ + endif()
276+ +
277+ + if(CONFIG_ASAN)
278+ + list(APPEND CFLAGS -fsanitize=address -fno-omit-frame-pointer)
279+ + list(APPEND LDFLAGS -fsanitize=address -fno-omit-frame-pointer)
280+ + endif()
281+ +
282+ + if(CROSS_PREFIX)
283+ + set(QJSC_CC gcc)
284+ + set(QJSC ./host-qjsc)
285+ + else()
286+ + set(QJSC_CC ${CC})
287+ + set(QJSC ./qjsc)
288+ + endif()
289+ +
290+ + list(APPEND QUICKJS_COMMON_OPT -O2)
291+ +
292+ + list(APPEND QJSC_OPT ${QUICKJS_COMMON_OPT})
293+ +
294+ + list(APPEND QUICKJS_DEF ${QUICKJS_COMMON_DEF})
295+ +
296+ + list(APPEND QJSC_DEF ${QUICKJS_COMMON_DEF})
297+ + list(APPEND QJSC_DEF -DCONFIG_LTO -DCONFIG_CC=\"gcc\"
298+ + -DCONFIG_PREFIX=\"/usr/local\")
299+ +
300+ + add_executable(qjsc qjsc.c)
301+ + target_compile_options(qjsc PRIVATE ${QJSC_OPT})
302+ + target_compile_definitions(qjsc PRIVATE ${QJSC_DEF})
303+ +
304+ + target_link_options(qjsc PRIVATE -g -flto)
305+ + target_link_libraries(qjsc quickjs)
306+ +
307+ + if(UNIX)
308+ + find_package(Threads)
309+ + target_link_libraries(quickjs ${CMAKE_DL_LIBS} m Threads::Threads)
310+ + endif()
0 commit comments