development/quickjs: Updated for version 2024.01.13.

Signed-off-by: Andrew Clemons <andrew.clemons@gmail.com>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Juan M. Lasca 2024-02-04 17:44:14 +09:00 committed by Willy Sudiarto Raharjo
parent 7d06039ed8
commit 54d5248e24
No known key found for this signature in database
GPG Key ID: 3F617144D7238786
5 changed files with 91 additions and 82 deletions

View File

@ -1,5 +1,5 @@
QuickJS is a small and embeddable Javascript engine by Fabrice Bellard QuickJS is a small and embeddable Javascript engine by Fabrice Bellard
and Charlie Gordon. It supports the ES2020 specification including and Charlie Gordon. It supports the ES2023 specification including
modules, asynchronous generators, proxies and BigInt. modules, asynchronous generators, proxies and BigInt.
It optionally supports mathematical extensions such as big decimal It optionally supports mathematical extensions such as big decimal
floating point numbers (BigDecimal), big binary floating point numbers floating point numbers (BigDecimal), big binary floating point numbers
@ -9,10 +9,10 @@ Main Features:
* Small and easily embeddable: just a few C files, no external * Small and easily embeddable: just a few C files, no external
dependency. dependency.
* Fast interpreter with very low startup time * Fast interpreter with very low startup time
* Almost complete ES2020 support including modules, asynchronous * Almost complete ES2023 support including modules, asynchronous
generators and full Annex B support (legacy web compatibility). generators and full Annex B support (legacy web compatibility).
* Passes nearly 100% of the ECMAScript Test Suite tests when selecting * Passes nearly 100% of the ECMAScript Test Suite tests when selecting
the ES2020 features. the ES2023 features.
* Can compile Javascript sources to executables with no external * Can compile Javascript sources to executables with no external
dependency. dependency.
* Garbage collection using reference counting (to reduce memory usage * Garbage collection using reference counting (to reduce memory usage

View File

@ -5,104 +5,112 @@
* avoid building examples * avoid building examples
* disabled debug information * disabled debug information
--- quickjs-2021-03-27/Makefile 2021-03-27 07:00:32.000000000 -0300 --- quickjs-2024-01-13/Makefile 2024-01-13 07:20:39.000000000 -0300
+++ quickjs-2021-03-27-modified/Makefile 2022-08-02 21:52:01.476250120 -0300 +++ quickjs-2024-01-13m/Makefile 2024-02-04 02:01:09.732016372 -0300
@@ -36,12 +36,14 @@ @@ -39,6 +39,8 @@
ifdef CONFIG_DARWIN
# use clang instead of gcc
-CONFIG_CLANG=y
+#CONFIG_CLANG=y
CONFIG_DEFAULT_AR=y
endif
# installation directory # installation directory
prefix=/usr/local PREFIX?=/usr/local
+libdir=$(prefix)/lib
+CFLAGS_EXTRA=
+CFLAGS+=$(CFLAGS_EXTRA)
+
# use the gprof profiler # use the gprof profiler
#CONFIG_PROFILE=y #CONFIG_PROFILE=y
@@ -66,7 +68,7 @@ # use address sanitizer
@@ -69,7 +71,7 @@
ifdef CONFIG_CLANG ifdef CONFIG_CLANG
HOST_CC=clang HOST_CC=clang
CC=$(CROSS_PREFIX)clang CC=$(CROSS_PREFIX)clang
- CFLAGS=-g -Wall -MMD -MF $(OBJDIR)/$(@F).d - CFLAGS+=-g -Wall -MMD -MF $(OBJDIR)/$(@F).d
+ CFLAGS= -Wall -MMD -MF $(OBJDIR)/$(@F).d + CFLAGS+= -Wall -MMD -MF $(OBJDIR)/$(@F).d
CFLAGS += -Wextra CFLAGS += -Wextra
CFLAGS += -Wno-sign-compare CFLAGS += -Wno-sign-compare
CFLAGS += -Wno-missing-field-initializers CFLAGS += -Wno-missing-field-initializers
@@ -87,7 +89,7 @@ @@ -92,13 +94,13 @@
HOST_CC=gcc
CC=cosmocc
# cosmocc does not correct support -MF
- CFLAGS=-g -Wall #-MMD -MF $(OBJDIR)/$(@F).d
+ CFLAGS= -Wall #-MMD -MF $(OBJDIR)/$(@F).d
CFLAGS += -Wno-array-bounds -Wno-format-truncation
AR=cosmoar
else else
HOST_CC=gcc HOST_CC=gcc
CC=$(CROSS_PREFIX)gcc CC=$(CROSS_PREFIX)gcc
- CFLAGS=-g -Wall -MMD -MF $(OBJDIR)/$(@F).d - CFLAGS+=-g -Wall -MMD -MF $(OBJDIR)/$(@F).d
+ CFLAGS= -Wall -MMD -MF $(OBJDIR)/$(@F).d + CFLAGS+= -Wall -MMD -MF $(OBJDIR)/$(@F).d
CFLAGS += -Wno-array-bounds -Wno-format-truncation CFLAGS += -Wno-array-bounds -Wno-format-truncation
ifdef CONFIG_LTO ifdef CONFIG_LTO
AR=$(CROSS_PREFIX)gcc-ar AR=$(CROSS_PREFIX)gcc-ar
@@ -107,12 +109,15 @@ @@ -127,7 +129,7 @@
DEFINES+=-D__USE_MINGW_ANSI_STDIO # for standard snprintf behavior ifdef CONFIG_COSMO
LDFLAGS+=-s # better to strip by default
else
-LDFLAGS+=-g
+LDFLAGS+=
endif endif
+DEFINES += -DCONFIG_LIBDIR=\"$(libdir)\"
+
+CFLAGS+=$(CFLAGS_EXTRA)
CFLAGS+=$(DEFINES)
CFLAGS_DEBUG=$(CFLAGS) -O0
CFLAGS_SMALL=$(CFLAGS) -Os
CFLAGS_OPT=$(CFLAGS) -O2
CFLAGS_NOLTO:=$(CFLAGS_OPT)
-LDFLAGS=-g
+#LDFLAGS=-g
ifdef CONFIG_LTO ifdef CONFIG_LTO
CFLAGS_SMALL+=-flto CFLAGS_SMALL+=-flto
CFLAGS_OPT+=-flto @@ -176,16 +178,16 @@
@@ -157,14 +162,14 @@
ifdef CONFIG_ASAN # examples
PROGS+= ifeq ($(CROSS_PREFIX),)
else -PROGS+=examples/hello
-PROGS+=examples/hello examples/hello_module examples/test_fib +#PROGS+=examples/hello
+#PROGS+=examples/hello examples/hello_module examples/test_fib ifndef CONFIG_ASAN
ifndef CONFIG_DARWIN -PROGS+=examples/hello_module
-PROGS+=examples/fib.so examples/point.so +#PROGS+=examples/hello_module
+#PROGS+=examples/fib.so examples/point.so
endif endif
ifdef CONFIG_SHARED_LIBS
-PROGS+=examples/test_fib examples/fib.so examples/point.so
+#PROGS+=examples/test_fib examples/fib.so examples/point.so
endif endif
endif endif
-all: $(OBJDIR) $(OBJDIR)/quickjs.check.o $(OBJDIR)/qjs.check.o $(PROGS) -all: $(OBJDIR) $(OBJDIR)/quickjs.check.o $(OBJDIR)/qjs.check.o $(PROGS)
+all: $(OBJDIR) $(OBJDIR)/quickjs.check.o $(OBJDIR)/qjs.check.o $(PROGS) libquickjs.so +all: $(OBJDIR) $(OBJDIR)/quickjs.check.o $(OBJDIR)/qjs.check.o $(PROGS) libquickjs.so
QJS_LIB_OBJS=$(OBJDIR)/quickjs.o $(OBJDIR)/libregexp.o $(OBJDIR)/libunicode.o $(OBJDIR)/cutils.o $(OBJDIR)/quickjs-libc.o QJS_LIB_OBJS=$(OBJDIR)/quickjs.o $(OBJDIR)/libregexp.o $(OBJDIR)/libunicode.o $(OBJDIR)/cutils.o $(OBJDIR)/quickjs-libc.o $(OBJDIR)/libbf.o
@@ -187,6 +192,9 @@ @@ -213,6 +215,9 @@
qjs$(EXE): $(QJS_OBJS) qjsc$(EXE): $(OBJDIR)/qjsc.o $(QJS_LIB_OBJS)
$(CC) $(LDFLAGS) $(LDEXPORT) -o $@ $^ $(LIBS)
+libquickjs.so: $(QJS_LIB_OBJS)
+ $(CC) -shared $(LDFLAGS) -fPIC $(LDEXPORT) -o $@ $^ $(LIBS)
+
qjs-debug$(EXE): $(patsubst %.o, %.debug.o, $(QJS_OBJS))
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS) $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
@@ -299,13 +307,15 @@ +libquickjs.so: $(QJS_LIB_OBJS)
+ $(CC) -shared -fPIC $(LDFLAGS) -o $@ $^ $(LIBS)
+
ifneq ($(CROSS_PREFIX),)
$(QJSC): $(OBJDIR)/qjsc.host.o \
@@ -221,11 +226,11 @@
endif #CROSS_PREFIX
-QJSC_DEFINES:=-DCONFIG_CC=\"$(QJSC_CC)\" -DCONFIG_PREFIX=\"$(PREFIX)\"
+QJSC_DEFINES:=-DCONFIG_CC=\"$(QJSC_CC)\" -DCONFIG_PREFIX=\"$(PREFIX)\" -DCONFIG_LIBDIR=\"$(LIBDIR)\"
ifdef CONFIG_LTO
QJSC_DEFINES+=-DCONFIG_LTO
endif
-QJSC_HOST_DEFINES:=-DCONFIG_CC=\"$(HOST_CC)\" -DCONFIG_PREFIX=\"$(PREFIX)\"
+QJSC_HOST_DEFINES:=-DCONFIG_CC=\"$(HOST_CC)\" -DCONFIG_PREFIX=\"$(PREFIX)\" -DCONFIG_LIBDIR=\"$(LIBDIR)\"
$(OBJDIR)/qjsc.o: CFLAGS+=$(QJSC_DEFINES)
$(OBJDIR)/qjsc.host.o: CFLAGS+=$(QJSC_HOST_DEFINES)
@@ -319,14 +324,12 @@
install: all install: all
mkdir -p "$(DESTDIR)$(prefix)/bin" mkdir -p "$(DESTDIR)$(PREFIX)/bin"
- $(STRIP) qjs qjsc - $(STRIP) qjs qjsc
+ $(STRIP) qjs qjsc libquickjs.so + $(STRIP) qjs qjsc libquickjs.so
install -m755 qjs qjsc "$(DESTDIR)$(prefix)/bin" install -m755 qjs qjsc "$(DESTDIR)$(PREFIX)/bin"
ln -sf qjs "$(DESTDIR)$(prefix)/bin/qjscalc" ln -sf qjs "$(DESTDIR)$(PREFIX)/bin/qjscalc"
- mkdir -p "$(DESTDIR)$(prefix)/lib/quickjs" - mkdir -p "$(DESTDIR)$(PREFIX)/lib/quickjs"
- install -m644 libquickjs.a "$(DESTDIR)$(prefix)/lib/quickjs" - install -m644 libquickjs.a "$(DESTDIR)$(PREFIX)/lib/quickjs"
+ mkdir -p "$(DESTDIR)/$(libdir)/quickjs" -ifdef CONFIG_LTO
+ install -m644 libquickjs.a "$(DESTDIR)/$(libdir)/quickjs" - install -m644 libquickjs.lto.a "$(DESTDIR)$(PREFIX)/lib/quickjs"
+ install -m644 libquickjs.so "$(DESTDIR)/$(libdir)/quickjs" -endif
+ ln -s quickjs/libquickjs.so "$(DESTDIR)/$(libdir)/libquickjs.so" + mkdir -p "$(DESTDIR)$(LIBDIR)/quickjs"
ifdef CONFIG_LTO + install -m644 libquickjs.a "$(DESTDIR)$(LIBDIR)/quickjs"
- install -m644 libquickjs.lto.a "$(DESTDIR)$(prefix)/lib/quickjs" + install -m755 libquickjs.so "$(DESTDIR)$(LIBDIR)"
+ install -m644 libquickjs.lto.a "$(DESTDIR)/$(libdir)/quickjs" mkdir -p "$(DESTDIR)$(PREFIX)/include/quickjs"
endif install -m644 quickjs.h quickjs-libc.h "$(DESTDIR)$(PREFIX)/include/quickjs"
mkdir -p "$(DESTDIR)$(prefix)/include/quickjs"
install -m644 quickjs.h quickjs-libc.h "$(DESTDIR)$(prefix)/include/quickjs"

View File

@ -1,7 +1,7 @@
This is a simple patch to compile on 64 bit systems. This is a simple patch to compile on 64 bit systems.
--- quickjs-2021-03-27/qjsc.c 2021-03-27 07:00:32.000000000 -0300 --- quickjs-2024-01-13/qjsc.c 2024-01-13 07:20:39.000000000 -0300
+++ quickjs-2021-03-27-modified/qjsc.c 2022-07-31 19:54:12.464023282 -0300 +++ quickjs-2024-01-13m/qjsc.c 2024-02-04 01:43:19.516094810 -0300
@@ -420,7 +420,7 @@ @@ -419,7 +419,7 @@
pstrcpy(lib_dir, sizeof(lib_dir), exe_dir); pstrcpy(lib_dir, sizeof(lib_dir), exe_dir);
} else { } else {
snprintf(inc_dir, sizeof(inc_dir), "%s/include/quickjs", CONFIG_PREFIX); snprintf(inc_dir, sizeof(inc_dir), "%s/include/quickjs", CONFIG_PREFIX);

View File

@ -25,10 +25,11 @@
cd $(dirname $0) ; CWD=$(pwd) cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=quickjs PRGNAM=quickjs
VERSION=${VERSION:-20210327} VERSION=${VERSION:-2024.01.13}
BUILD=${BUILD:-1} BUILD=${BUILD:-1}
TAG=${TAG:-_SBo} TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz} PKGTYPE=${PKGTYPE:-tgz}
SRCVERSION=${VERSION//./-}
if [ -z "$ARCH" ]; then if [ -z "$ARCH" ]; then
case "$( uname -m )" in case "$( uname -m )" in
@ -67,8 +68,8 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT mkdir -p $TMP $PKG $OUTPUT
cd $TMP cd $TMP
rm -rf $PRGNAM-$VERSION rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-2021-03-27.tar.xz tar xvf $CWD/$PRGNAM-$SRCVERSION.tar.xz
mv $PRGNAM-2021-03-27 $PRGNAM-$VERSION mv $PRGNAM-$SRCVERSION $PRGNAM-$VERSION
cd $PRGNAM-$VERSION cd $PRGNAM-$VERSION
chown -R root:root . chown -R root:root .
find -L . \ find -L . \
@ -83,8 +84,8 @@ patch -p1 < $CWD/patches/02-qjsc.c.patch || exit 1;
make install \ make install \
DESTDIR=$PKG \ DESTDIR=$PKG \
CFLAGS_EXTRA="$SLKCFLAGS" \ CFLAGS_EXTRA="$SLKCFLAGS" \
prefix=/usr \ PREFIX=/usr \
libdir=/usr/lib${LIBDIRSUFFIX} LIBDIR=/usr/lib${LIBDIRSUFFIX}
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/examples mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/examples
cp -a \ cp -a \

View File

@ -1,8 +1,8 @@
PRGNAM="quickjs" PRGNAM="quickjs"
VERSION="20210327" VERSION="2024.01.13"
HOMEPAGE="https://bellard.org/quickjs" HOMEPAGE="https://bellard.org/quickjs"
DOWNLOAD="https://bellard.org/quickjs/quickjs-2021-03-27.tar.xz" DOWNLOAD="https://bellard.org/quickjs/quickjs-2024-01-13.tar.xz"
MD5SUM="135182a626aa0c87a49aa2bf58fd39bf" MD5SUM="ea9fa8c503c4125dff9fd42c38b891d0"
DOWNLOAD_x86_64="" DOWNLOAD_x86_64=""
MD5SUM_x86_64="" MD5SUM_x86_64=""
REQUIRES="" REQUIRES=""