File 0003-vvp-create-libvvp-as-versioned-library.patch of Package iverilog

From 7ef5eee3b174376108448cf490bd256649bf6350 Mon Sep 17 00:00:00 2001
From: Ralf Habacker <ralf.habacker@freenet.de>
Date: Tue, 6 Jan 2026 22:36:43 +0100
Subject: [PATCH 3/3] vvp: create libvvp as versioned library

---
 vvp/Makefile.in | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/vvp/Makefile.in b/vvp/Makefile.in
index 0f2d8f4b5..0d6f76bbb 100644
--- a/vvp/Makefile.in
+++ b/vvp/Makefile.in
@@ -62,6 +62,9 @@ CXXFLAGS = @WARNING_FLAGS@ @WARNING_FLAGS_CXX@ @CXXFLAGS@
 LDFLAGS = @rdynamic@ @LDFLAGS@
 LIBS = @LIBS@ @EXTRALIBS@
 
+LIBVVP_SOVERSION = 1
+LIBVVP_VERSION  = 1.0.0
+
 ifeq (@WIN32@,yes)
 SLDIR=$(bindir)
 SLEXT=dll
@@ -151,10 +154,17 @@ vvp@EXEEXT@: main.o $(srcdir)/vvp.def libvvp$(suffix).$(SLEXT)
 
 ifeq (@MINGW32@,yes)
 libvvp$(suffix).$(SLEXT): $O
-	$(CXX) -shared $(LDFLAGS) -o libvvp$(suffix).$(SLEXT) -Wl,--out-implib libvvp$(suffix).$(IMPEXT) $O $(LIBS) $(dllib)
+	$(CXX) -shared $(LDFLAGS) -o libvvp$(suffix)-$(LIBVVP_SOVERSION).$(SLEXT) -Wl,--out-implib libvvp$(suffix).$(IMPEXT) $O $(LIBS) $(dllib)
 else
 libvvp$(suffix).$(SLEXT): $O
-	$(CXX) -shared $(LDFLAGS) -o libvvp$(suffix).$(SLEXT) $O $(LIBS) $(dllib)
+	$(CXX) -shared $(LDFLAGS) \
+		-Wl,-soname,libvvp$(suffix).$(SLEXT).$(LIBVVP_SOVERSION) \
+		-o libvvp$(suffix).$(SLEXT).$(LIBVVP_VERSION) \
+		$O $(LIBS) $(dllib)
+	ln -sf libvvp$(suffix).$(SLEXT).$(LIBVVP_VERSION) \
+		libvvp$(suffix).$(SLEXT).$(LIBVVP_SOVERSION)
+	ln -sf libvvp$(suffix).$(SLEXT).$(LIBVVP_SOVERSION) \
+		libvvp$(suffix).$(SLEXT)
 endif
 else
 ifeq (@WIN32@,yes)
@@ -247,10 +257,18 @@ installfiles: $(F) | installdirs
 	$(INSTALL_PROGRAM) ./vvp@EXEEXT@ "$(DESTDIR)$(bindir)/vvp$(suffix)@EXEEXT@"
 ifeq (@LIBVVP@,yes)
 ifeq (@WIN32@,yes)
-	$(INSTALL_PROGRAM) ./libvvp$(suffix).$(SLEXT) "$(DESTDIR)$(bindir)/libvvp$(suffix).$(SLEXT)"
+	$(INSTALL_PROGRAM) ./libvvp$(suffix)-$(LIBVVP_SOVERSION).$(SLEXT) "$(DESTDIR)$(bindir)/libvvp$(suffix)-$(LIBVVP_SOVERSION).$(SLEXT)"
 	$(INSTALL_PROGRAM) ./libvvp$(suffix).$(IMPEXT) "$(DESTDIR)$(libdir)/libvvp$(suffix).$(IMPEXT)"
 else
-	$(INSTALL_PROGRAM) ./libvvp$(suffix).$(SLEXT) "$(DESTDIR)$(SLDIR)/libvvp$(suffix).$(SLEXT)"
+	# Install real library
+	$(INSTALL_PROGRAM) ./libvvp$(suffix).$(SLEXT).$(LIBVVP_VERSION) \
+	  "$(DESTDIR)$(SLDIR)/libvvp$(suffix).$(SLEXT).$(LIBVVP_VERSION)"
+	# SONAME symlink (runtime)
+	ln -sf libvvp$(suffix).$(SLEXT).$(LIBVVP_VERSION) \
+	  "$(DESTDIR)$(SLDIR)/libvvp$(suffix).$(SLEXT).$(LIBVVP_SOVERSION)"
+	# Linker symlink (devel)
+	ln -sf libvvp$(suffix).$(SLEXT).$(LIBVVP_SOVERSION) \
+	  "$(DESTDIR)$(SLDIR)/libvvp$(suffix).$(SLEXT)"
 endif
 	$(INSTALL_DATA) $(srcdir)/libvvp.h "$(DESTDIR)$(includedir)/libvvp.h"
 endif
-- 
2.51.0

openSUSE Build Service is sponsored by