On Fri, Apr 26, 2024 at 07:04:22AM +0200, Sebastien Marie wrote:
> Dima Pasechnik <d...@sagemath.org> writes:
> 
> Only one thing isn't properly addressed: the SONAME of the library is
> still `libsbcl.so`. This information is used by the linker at compile
> time when the library is used.
> 
> $ readelf -d libsbcl.so | grep SONAME
> 
> Having SOFLAGS defined to -Wl,-soname,libsbcl.so.${LIBsbcl_VERSION}
> should be enough (I have done that in
> src/runtime/Config.generic-openbsd, but I did the things a bit
> differently).

Indeed, 
--- a/lang/sbcl/Makefile
+++ b/lang/sbcl/Makefile
@@ -93,7 +93,8 @@ MAKE_ENV +=           CFLAGS="${CFLAGS} 
-I${LOCALBASE}/include" \
                        MAN_DIR="${PREFIX}/man/" \
                        INFO_DIR="${PREFIX}/info/" \
                        SBCL_MAKE_JOBS="-j${MAKE_JOBS}" \
-                       LIBsbcl_VERSION="${LIBsbcl_VERSION}"
+                       LIBsbcl_VERSION="${LIBsbcl_VERSION}" \
+                       SOFLAGS="-Wl,-soname,libsbcl.so.${LIBsbcl_VERSION}"

 USE_GMAKE =            Yes


adds the correct SONAME to libsbcl.so:

$ readelf -d /usr/ports/pobj/sbcl-2.4.3/fake-amd64/usr/local/lib/libsbcl.so.0.0 
| grep SO
 0x000000000000000e (SONAME)             Library soname: [libsbcl.so.0.0]

Best,
Dima

> 
> Thanks.
> -- 
> Sebastien Marie
> 

Attachment: signature.asc
Description: PGP signature

Reply via email to