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
5
4
6
- N/A
5
+ update quickjs patch
6
+
7
+ Signed-off-by: wenlingyun1 <wenlingyun1@xiaomi.com>
7
8
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);
30
9
diff --git a/quickjs-libc.c b/quickjs-libc.c
31
- index e8b81e9..858703c 100644
10
+ index 141f79f..67f31e8 100644
32
11
--- a/quickjs-libc.c
33
12
+++ 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[] = {
35
14
JS_CFUNC_MAGIC_DEF("setWriteHandler", 2, js_os_setReadHandler, 1 ),
36
15
JS_CFUNC_DEF("signal", 2, js_os_signal ),
37
16
OS_FLAG(SIGINT),
@@ -46,7 +25,7 @@ index e8b81e9..858703c 100644
46
25
OS_FLAG(SIGTERM),
47
26
#if !defined(_WIN32)
48
27
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[] = {
50
29
OS_FLAG(SIGCONT),
51
30
OS_FLAG(SIGSTOP),
52
31
OS_FLAG(SIGTSTP),
@@ -55,17 +34,277 @@ index e8b81e9..858703c 100644
55
34
+ // OS_FLAG(SIGTTIN),
56
35
+ // OS_FLAG(SIGTTOU),
57
36
#endif
37
+ JS_CFUNC_DEF("now", 0, js_os_now ),
58
38
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 ),
62
41
JS_CFUNC_DEF("symlink", 2, js_os_symlink ),
63
42
JS_CFUNC_DEF("readlink", 1, js_os_readlink ),
64
43
- JS_CFUNC_DEF("exec", 1, js_os_exec ),
65
44
+ // JS_CFUNC_DEF("exec", 1, js_os_exec ),
45
+ JS_CFUNC_DEF("getpid", 0, js_os_getpid ),
66
46
JS_CFUNC_DEF("waitpid", 2, js_os_waitpid ),
67
47
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>
71
58
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