1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-13 19:29:53 +03:00
aports/community/njs/shared-lib.patch
Jakub Jirutka 013689a63a community/njs: build shared libnjs
So we can build community/unit with njs support.
2025-05-14 00:55:06 +00:00

48 lines
1.3 KiB
Diff

From: Jakub Jirutka <jakub@jirutka.cz>
Date: Tue, 13 May 2025 23:45:11 +0200
Subject: Build shared libraries
libnjs doesn't guarantee ABI compatibility between versions, so we
have to use full version in SONAME (see https://github.com/nginx/njs/issues/691).
We currently cannot link njs executable against shared libnjs, because
it depends on some internal(?) symbols.
diff --git a/auto/make b/auto/make
index cc3b022b5b2..33ca12f6a24 100644
--- a/auto/make
+++ b/auto/make
@@ -119,6 +119,33 @@ $NJS_BUILD_DIR/libqjs.a: \\
\$(NJS_STATIC_LINK) $NJS_BUILD_DIR/libqjs.a \\
\$(QJS_LIB_OBJS)
+
+
+NJS_SONAME = libnjs.so.\$(NJS_VER)
+QJS_SONAME = libqjs.so.\$(NJS_VER)
+
+libnjs.so: $NJS_BUILD_DIR/libnjs.so
+libqjs.so: $NJS_BUILD_DIR/libqjs.so
+
+$NJS_BUILD_DIR/libnjs.so: $NJS_BUILD_DIR/\$(NJS_SONAME)
+ ln -s \$(^F) \$@
+
+$NJS_BUILD_DIR/libqjs.so: $NJS_BUILD_DIR/\$(QJS_SONAME)
+ ln -s \$(^F) \$@
+
+$NJS_BUILD_DIR/\$(NJS_SONAME): \\
+ $NJS_BUILD_DIR/njs_auto_config.h \\
+ \$(NJS_LIB_OBJS)
+
+ \$(CC) \$(LDFLAGS) -fPIC -shared -Wl,-soname,\$(NJS_SONAME) -o \$@ \\
+ \$(NJS_LIB_OBJS) $NJS_LIBS $NJS_LIB_AUX_LIBS
+
+$NJS_BUILD_DIR/\$(QJS_SONAME): \\
+ $NJS_BUILD_DIR/njs_auto_config.h \\
+ \$(QJS_LIB_OBJS)
+
+ \$(CC) \$(LDFLAGS) -fPIC -shared -Wl,-soname,\$(QJS_SONAME) -o \$@ \\
+ \$(QJS_LIB_OBJS) $NJS_LIBS $NJS_LIB_AUX_LIBS
END
# object files.