On Thu, 25 Apr 2024 23:28:27 +0200, Dima Pasechnik wrote: > > +SHARED_LIBS += sbcl 0.0
I suggest to match library version with sbcl version to avoid nightmare, as far as I recall upstream doesn't care about ABI stability between releases, and, for example, .fasl should be recompiled each new release. > @info info/sbcl.info > +@so lib/libsbcl.so.0.0 Without symlink libsbcl.so -> libsbcl.so.0.0 linking agains that library will be quite tricky. Minor remarks: - minus sign as the first character inside the patch should be ok, but may be considered quite suspicious. - you also need to increase reviosion with that changes. - I suggest to add diff.noprefix=true to port's git config to avoid prefix Something like this: diff --git lang/sbcl/Makefile lang/sbcl/Makefile index 9c849a70c4e..d064d85e5c3 100644 --- lang/sbcl/Makefile +++ lang/sbcl/Makefile @@ -7,9 +7,12 @@ COMMENT = high performance Common Lisp compiler V = 2.4.3 DISTNAME = sbcl-${V}-source PKGNAME = sbcl-${V} +REVISION = 0 CATEGORIES = lang +SHARED_LIBS += sbcl ${V} + HOMEPAGE = https://www.sbcl.org/ MAINTAINER = Sebastien Marie <sema...@kapouay.eu.org> @@ -90,7 +93,8 @@ MAKE_ENV += CFLAGS="${CFLAGS} -I${LOCALBASE}/include" \ MAKEINFO=${PREFIX}/bin/gmakeinfo \ MAN_DIR="${PREFIX}/man/" \ INFO_DIR="${PREFIX}/info/" \ - SBCL_MAKE_JOBS="-j${MAKE_JOBS}" + SBCL_MAKE_JOBS="-j${MAKE_JOBS}" \ + LIBsbcl_VERSION="${LIBsbcl_VERSION}" USE_GMAKE = Yes @@ -116,6 +120,8 @@ do-build: --with-sb-core-compression \ --with-sb-xref-for-internals \ ${EXTRA_PARAMS} + umask 022 && cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ + /bin/sh ./make-shared-library.sh umask 022 && cd ${WRKSRC}/doc/manual/ && ${SETENV} ${MAKE_ENV} \ ${GMAKE} info diff --git lang/sbcl/patches/patch-install_sh lang/sbcl/patches/patch-install_sh new file mode 100644 index 00000000000..aa619d122a4 --- /dev/null +++ lang/sbcl/patches/patch-install_sh @@ -0,0 +1,15 @@ +- install .so with correct version suffix + +Index: install.sh +--- install.sh.orig ++++ install.sh +@@ -114,7 +114,8 @@ test -f "$BUILD_ROOT$SBCL_HOME"/sbcl.core && \ + cp src/runtime/$RUNTIME "$BUILD_ROOT$INSTALL_ROOT"/bin/ + cp output/sbcl.core "$BUILD_ROOT$SBCL_HOME"/sbcl.core + test -f src/runtime/libsbcl.so && \ +- cp src/runtime/libsbcl.so "$BUILD_ROOT$INSTALL_ROOT"/lib/ ++ cp src/runtime/libsbcl.so "$BUILD_ROOT$INSTALL_ROOT"/lib/libsbcl.so.${LIBsbcl_VERSION} && \ ++ ln -sf libsbcl.so.${LIBsbcl_VERSION} "$BUILD_ROOT$INSTALL_ROOT"/lib/libsbcl.so + + cp src/runtime/sbcl.mk "$BUILD_ROOT$SBCL_HOME"/sbcl.mk + for i in $(grep '^LIBSBCL=' src/runtime/sbcl.mk | cut -d= -f2-) ; do diff --git lang/sbcl/patches/patch-src_runtime_GNUmakefile lang/sbcl/patches/patch-src_runtime_GNUmakefile index 887d4d2ff6d..8f8d37e638e 100644 --- lang/sbcl/patches/patch-src_runtime_GNUmakefile +++ lang/sbcl/patches/patch-src_runtime_GNUmakefile @@ -13,3 +13,12 @@ Index: src/runtime/GNUmakefile ASFLAGS += $(CFLAGS) CPPFLAGS += -I. +@@ -133,7 +133,7 @@ libsbcl.a: $(OBJS) + + PIC_OBJS = $(subst .o,.pic.o,$(OBJS)) + libsbcl.so: $(PIC_OBJS) +- $(CC) -shared -o $@ $^ $(LIBS) $(SOFLAGS) ++ $(CC) -shared -fPIC -o $@ $^ $(LDFLAGS) $(LIBS) $(SOFLAGS) + # for this to work, you must have with-gcc-tls in your build features already. + # can't define it here because then it conflicts if you have it in both places. + %.pic.o: %.c diff --git lang/sbcl/pkg/PLIST lang/sbcl/pkg/PLIST index 8eece6b846e..512e9e46b65 100644 --- lang/sbcl/pkg/PLIST +++ lang/sbcl/pkg/PLIST @@ -2,6 +2,8 @@ @bin bin/sbcl @info info/asdf.info @info info/sbcl.info +@so lib/libsbcl.so +@bin lib/libsbcl.so.2.4.3 lib/sbcl/ lib/sbcl/contrib/ lib/sbcl/contrib/asdf.fasl -- wbr, Kirill