aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/mozilla/nspr-4.7.1/81_sonames.dpatch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/mozilla/nspr-4.7.1/81_sonames.dpatch')
-rw-r--r--recipes/mozilla/nspr-4.7.1/81_sonames.dpatch234
1 files changed, 234 insertions, 0 deletions
diff --git a/recipes/mozilla/nspr-4.7.1/81_sonames.dpatch b/recipes/mozilla/nspr-4.7.1/81_sonames.dpatch
new file mode 100644
index 0000000000..702c50dbad
--- /dev/null
+++ b/recipes/mozilla/nspr-4.7.1/81_sonames.dpatch
@@ -0,0 +1,234 @@
+--- nsprpub/config/rules.mk
++++ nsprpub/config/rules.mk
+@@ -129,12 +129,35 @@
+ else
+ ifdef MKSHLIB
+ SHARED_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
++SONAME = $(notdir $(SHARED_LIBRARY))
++
++ifdef SO_VERSION
++ifneq (,$(findstring $(SONAME),$(MKSHLIB)))
++SO_VERSION_MAJOR := $(shell echo $(SO_VERSION) | sed 's/^\([^.]*\)\(\.[^.]*\)\?\(\.[^.]*\)\?/\1/')
++SO_VERSION_MINOR := $(shell echo $(SO_VERSION) | sed 's/^\([^.]*\)\(\.[^.]*\)\?\(\.[^.]*\)\?/\2/')
++SO_VERSION_MICRO := $(shell echo $(SO_VERSION) | sed 's/^\([^.]*\)\(\.[^.]*\)\?\(\.[^.]*\)\?/\3/')
++
++SHARED_LIBRARY_LINKS := $(SONAME)
++ifdef SO_VERSION_MINOR
++SHARED_LIBRARY_LINKS += $(SONAME).$(SO_VERSION_MAJOR)
+ endif
++ifdef SO_VERSION_MICRO
++SHARED_LIBRARY_LINKS += $(SHARED_LIBRARY).$(SO_VERSION_MAJOR)$(SO_VERSION_MINOR)
+ endif
+
++SONAME := $(SONAME).$(SO_VERSION_MAJOR)
++SHARED_LIBRARY := $(SHARED_LIBRARY).$(SO_VERSION)
++
++MKSHLINKS = (cd $(1) && for link in $(SHARED_LIBRARY_LINKS); do rm -f $$link; ln -s $(notdir $(SHARED_LIBRARY)) $$link; done)
+ endif
+ endif
+
++endif
++endif
++
++endif
++endif
++
+ ifndef TARGETS
+ ifeq (,$(filter-out WINNT OS2,$(OS_ARCH)))
+ TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
+@@ -166,7 +189,7 @@
+ endif
+
+ ALL_TRASH = $(TARGETS) $(OBJS) $(RES) $(filter-out . .., $(OBJDIR)) LOGS TAGS $(GARBAGE) \
+- $(NOSUCHFILE) \
++ $(SHARED_LIBRARY_LINKS) $(NOSUCHFILE) \
+ so_locations
+
+ ifeq ($(OS_ARCH),OpenVMS)
+@@ -232,6 +255,7 @@
+ endif
+ ifdef RELEASE_LIBS
+ $(NSINSTALL) -t -m 0755 $(RELEASE_LIBS) $(DESTDIR)$(libdir)/$(lib_subdir)
++ $(call MKSHLINKS,$(DESTDIR)$(libdir)/$(lib_subdir))
+ endif
+ +$(LOOP_OVER_DIRS)
+
+@@ -325,6 +349,8 @@
+ $(IMPLIB) $@ $(MAPFILE)
+ endif
+
++$(SHARED_LIBRARY_LINKS): %: $(SHARED_LIBRARY)
++
+ $(SHARED_LIBRARY): $(OBJS) $(RES) $(MAPFILE)
+ @$(MAKE_OBJDIR)
+ rm -f $@
+@@ -352,6 +378,7 @@
+ fi
+ endif # OpenVMS
+ $(MKSHLIB) $(OBJS) $(RES) $(EXTRA_LIBS)
++ $(call MKSHLINKS,.)
+ endif # OS2 vacpp
+ endif # WINNT
+ endif # AIX 4.1
+--- nsprpub/configure.in
++++ nsprpub/configure.in
+@@ -892,7 +892,7 @@
+ AC_DEFINE(_PR_STAT_HAS_ST_ATIMESPEC)
+ MKSHLIB='$(CC) -o $@ $(DSO_LDOPTS)'
+ DSO_CFLAGS=-fPIC
+- DSO_LDOPTS='-shared -Wl,-soname,$(@:$(OBJDIR)/%.so=%.so)'
++ DSO_LDOPTS='-shared -Wl,-soname,$(SONAME)'
+ STRIP="$STRIP -d"
+ case "$target_os" in
+ bsdi4.2* | bsdi4.3* | bsdi5.*)
+@@ -1042,7 +1042,7 @@
+ fi
+ MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
+ DSO_CFLAGS=-fPIC
+- DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
++ DSO_LDOPTS='-shared -Wl,-soname -Wl,$(SONAME)'
+ MDCPUCFG_H=_freebsd.cfg
+ PR_MD_CSRCS=freebsd.c
+ ;;
+@@ -1059,7 +1059,7 @@
+ # workaround this problem.
+ AC_DEFINE(_PR_POLL_WITH_SELECT)
+ AC_DEFINE(_USE_BIG_FDS)
+- DSO_LDOPTS='-b +h $(notdir $@)'
++ DSO_LDOPTS='-b +h $(SONAME)'
+ PR_MD_CSRCS=hpux.c
+ if test "$OS_TEST" = "ia64"; then
+ DLL_SUFFIX=so
+@@ -1304,7 +1304,7 @@
+ PR_MD_CSRCS=linux.c
+ MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
+ DSO_CFLAGS=-fPIC
+- DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
++ DSO_LDOPTS='-shared -Wl,-soname -Wl,$(SONAME)'
+ _OPTIMIZE_FLAGS=-O2
+ _DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb, and that
+ # combo is not yet good at debugging inlined
+@@ -1561,7 +1561,7 @@
+ else
+ OBJECT_FMT=ELF
+ DLL_SUFFIX=so
+- DSO_LDOPTS='-shared -Wl,-soname,$(notdir $@)'
++ DSO_LDOPTS='-shared -Wl,-soname,$(SONAME)'
+ fi
+ fi
+
+@@ -1607,7 +1607,7 @@
+ AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
+ MDCPUCFG_H=_nto.cfg
+ PR_MD_CSRCS=nto.c
+- MKSHLIB='$(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(notdir $@) -o $@'
++ MKSHLIB='$(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(SONAME) -o $@'
+ DSO_CFLAGS=-fPIC
+ DSO_LDOPTS=-shared
+ OS_LIBS="$OS_LIBS -lsocket"
+@@ -1685,7 +1685,7 @@
+ if echo $OS_RELEASE | grep -c V4.0 >/dev/null; then
+ AC_DEFINE(OSF1V4_MAP_PRIVATE_BUG)
+ fi
+- DSO_LDOPTS='-shared -all -expect_unresolved "*" -soname $(notdir $@)'
++ DSO_LDOPTS='-shared -all -expect_unresolved "*" -soname $(SONAME)'
+ MDCPUCFG_H=_osf1.cfg
+ PR_MD_CSRCS=osf1.c
+ ;;
+@@ -1751,7 +1751,7 @@
+ _OPTIMIZE_FLAGS='-O -F Olimit,4000'
+ fi
+
+- DSO_LDOPTS='-G -z defs -h $(@:$(OBJDIR)/%.so=%.so)'
++ DSO_LDOPTS='-G -z defs -h $(SONAME)'
+
+ if test "$OS_RELEASE" = "5.43"; then
+ AC_DEFINE(IP_MULTICAST)
+@@ -1807,10 +1807,10 @@
+ if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then
+ GCC_USE_GNU_LD=1
+ fi
+- DSO_LDOPTS='-shared -Wl,-h,$(notdir $@),-z,combreloc,-z,defs,-z,ignore'
++ DSO_LDOPTS='-shared -Wl,-h,$(SONAME),-z,combreloc,-z,defs,-z,ignore'
+ else
+ DSO_CFLAGS=-KPIC
+- DSO_LDOPTS='-G -h $(notdir $@) -z combreloc -z defs -z ignore'
++ DSO_LDOPTS='-G -h $(SONAME) -z combreloc -z defs -z ignore'
+ fi
+ if test -n "$GNU_CC"; then
+ CFLAGS="$CFLAGS -Wall"
+--- nsprpub/lib/ds/Makefile.in
++++ nsprpub/lib/ds/Makefile.in
+@@ -127,6 +127,7 @@
+
+ LIBRARY_NAME = plds
+ LIBRARY_VERSION = $(MOD_MAJOR_VERSION)
++SO_VERSION = 0d
+
+ RELEASE_HEADERS = $(HEADERS)
+ RELEASE_HEADERS_DEST = $(RELEASE_INCLUDE_DIR)
+@@ -185,12 +186,14 @@
+ export:: $(TARGETS)
+ $(INSTALL) -m 444 $(HEADERS) $(dist_includedir)
+ $(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
++ $(call MKSHLINKS,$(dist_libdir))
+ ifdef SHARED_LIBRARY
+ ifeq ($(OS_ARCH),HP-UX)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
+ else
+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)
++ $(call MKSHLINKS,$(dist_bindir))
+ endif
+ endif
+ ifeq ($(MOZ_BITS),16)
+--- nsprpub/lib/libc/src/Makefile.in
++++ nsprpub/lib/libc/src/Makefile.in
+@@ -69,6 +69,7 @@
+
+ LIBRARY_NAME = plc
+ LIBRARY_VERSION = $(MOD_MAJOR_VERSION)
++SO_VERSION = 0d
+
+ RELEASE_LIBS = $(TARGETS)
+
+@@ -187,12 +188,14 @@
+
+ export:: $(TARGETS)
+ $(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
++ $(call MKSHLINKS,$(dist_libdir))
+ ifdef SHARED_LIBRARY
+ ifeq ($(OS_ARCH),HP-UX)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
+ else
+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)
++ $(call MKSHLINKS,$(dist_bindir))
+ endif
+ endif
+ ifeq ($(MOZ_BITS),16)
+--- nsprpub/pr/src/Makefile.in
++++ sprpub/pr/src/Makefile.in
+@@ -332,6 +332,7 @@
+
+ LIBRARY_NAME = nspr
+ LIBRARY_VERSION = $(MOD_MAJOR_VERSION)
++SO_VERSION = 0d
+
+ RELEASE_LIBS = $(TARGETS)
+
+@@ -402,12 +403,14 @@
+
+ export:: $(TARGETS)
+ $(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
++ $(call MKSHLINKS,$(dist_libdir))
+ ifdef SHARED_LIBRARY
+ ifeq ($(OS_ARCH),HP-UX)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
+ else
+ $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)
++ $(call MKSHLINKS,$(dist_bindir))
+ endif
+ endif
+ ifeq ($(MOZ_BITS),16)