Skip to content

Commit 4a1c40a

Browse files
WenLY1xiaoxiang781216
authored andcommitted
update quickjs patch for cmake compilation
Signed-off-by: wenlingyun1 <wenlingyun1@xiaomi.com>
1 parent 1adfefd commit 4a1c40a

File tree

1 file changed

+275
-36
lines changed

1 file changed

+275
-36
lines changed
Lines changed: 275 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,16 @@
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);
309
diff --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

Comments
 (0)