[bootstrap] patch to build guile with libtool 2 (GNOME bug 583838)
[jhbuild.git] / patches / nspr.sonames.patch
blob4f0aa49067d8f2c34bb292a4759e4d102f1b73e3
1 #! /bin/sh /usr/share/dpatch/dpatch-run
2 ## 81_sonames.dpatch by Mike Hommey <glandium@debian.org>
3 ##
4 ## All lines beginning with `## DP:' are a description of the patch.
5 ## DP: Add soname support
7 @DPATCH@
9 --- nspr/mozilla/nsprpub/config/rules.mk
10 +++ nspr/mozilla/nsprpub/config/rules.mk
11 @@ -129,12 +129,35 @@
12 else
13 ifdef MKSHLIB
14 SHARED_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
15 +SONAME = $(notdir $(SHARED_LIBRARY))
17 +ifdef SO_VERSION
18 +ifneq (,$(findstring $(SONAME),$(MKSHLIB)))
19 +SO_VERSION_MAJOR := $(shell echo $(SO_VERSION) | sed 's/^\([^.]*\)\(\.[^.]*\)\?\(\.[^.]*\)\?/\1/')
20 +SO_VERSION_MINOR := $(shell echo $(SO_VERSION) | sed 's/^\([^.]*\)\(\.[^.]*\)\?\(\.[^.]*\)\?/\2/')
21 +SO_VERSION_MICRO := $(shell echo $(SO_VERSION) | sed 's/^\([^.]*\)\(\.[^.]*\)\?\(\.[^.]*\)\?/\3/')
23 +SHARED_LIBRARY_LINKS := $(SONAME)
24 +ifdef SO_VERSION_MINOR
25 +SHARED_LIBRARY_LINKS += $(SONAME).$(SO_VERSION_MAJOR)
26 endif
27 +ifdef SO_VERSION_MICRO
28 +SHARED_LIBRARY_LINKS += $(SHARED_LIBRARY).$(SO_VERSION_MAJOR)$(SO_VERSION_MINOR)
29 endif
31 +SONAME := $(SONAME).$(SO_VERSION_MAJOR)
32 +SHARED_LIBRARY := $(SHARED_LIBRARY).$(SO_VERSION)
34 +MKSHLINKS = (cd $(1) && for link in $(SHARED_LIBRARY_LINKS); do rm -f $$link; ln -s $(notdir $(SHARED_LIBRARY)) $$link; done)
35 endif
36 endif
38 +endif
39 +endif
41 +endif
42 +endif
44 ifndef TARGETS
45 ifeq (,$(filter-out WINNT OS2,$(OS_ARCH)))
46 TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
47 @@ -166,7 +189,7 @@
48 endif
50 ALL_TRASH = $(TARGETS) $(OBJS) $(RES) $(filter-out . .., $(OBJDIR)) LOGS TAGS $(GARBAGE) \
51 - $(NOSUCHFILE) \
52 + $(SHARED_LIBRARY_LINKS) $(NOSUCHFILE) \
53 so_locations
55 ifeq ($(OS_ARCH),OpenVMS)
56 @@ -232,6 +255,7 @@
57 endif
58 ifdef RELEASE_LIBS
59 $(NSINSTALL) -t -m 0755 $(RELEASE_LIBS) $(DESTDIR)$(libdir)/$(lib_subdir)
60 + $(call MKSHLINKS,$(DESTDIR)$(libdir)/$(lib_subdir))
61 endif
62 +$(LOOP_OVER_DIRS)
64 @@ -325,6 +349,8 @@
65 $(IMPLIB) $@ $(MAPFILE)
66 endif
68 +$(SHARED_LIBRARY_LINKS): %: $(SHARED_LIBRARY)
70 $(SHARED_LIBRARY): $(OBJS) $(RES) $(MAPFILE)
71 @$(MAKE_OBJDIR)
72 rm -f $@
73 @@ -376,6 +376,7 @@
75 endif # OpenVMS
76 $(MKSHLIB) $(OBJS) $(RES) $(EXTRA_LIBS)
77 + $(call MKSHLINKS,.)
78 endif # WINNT && !GCC
79 endif # AIX 4.1
80 ifdef ENABLE_STRIP
81 --- nspr/mozilla/nsprpub/configure.in
82 +++ nspr/mozilla/nsprpub/configure.in
83 @@ -892,7 +892,7 @@
84 AC_DEFINE(_PR_STAT_HAS_ST_ATIMESPEC)
85 MKSHLIB='$(CC) -o $@ $(DSO_LDOPTS)'
86 DSO_CFLAGS=-fPIC
87 - DSO_LDOPTS='-shared -Wl,-soname,$(@:$(OBJDIR)/%.so=%.so)'
88 + DSO_LDOPTS='-shared -Wl,-soname,$(SONAME)'
89 STRIP="$STRIP -d"
90 case "$target_os" in
91 bsdi4.2* | bsdi4.3* | bsdi5.*)
92 @@ -1042,7 +1042,7 @@
94 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
95 DSO_CFLAGS=-fPIC
96 - DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
97 + DSO_LDOPTS='-shared -Wl,-soname -Wl,$(SONAME)'
98 MDCPUCFG_H=_freebsd.cfg
99 PR_MD_CSRCS=freebsd.c
101 @@ -1059,7 +1059,7 @@
102 # workaround this problem.
103 AC_DEFINE(_PR_POLL_WITH_SELECT)
104 AC_DEFINE(_USE_BIG_FDS)
105 - DSO_LDOPTS='-b +h $(notdir $@)'
106 + DSO_LDOPTS='-b +h $(SONAME)'
107 PR_MD_CSRCS=hpux.c
108 if test "$OS_TEST" = "ia64"; then
109 DLL_SUFFIX=so
110 @@ -1304,7 +1304,7 @@
111 PR_MD_CSRCS=linux.c
112 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
113 DSO_CFLAGS=-fPIC
114 - DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
115 + DSO_LDOPTS='-shared -Wl,-soname -Wl,$(SONAME)'
116 _OPTIMIZE_FLAGS=-O2
117 _DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb, and that
118 # combo is not yet good at debugging inlined
119 @@ -1561,7 +1561,7 @@
120 else
121 OBJECT_FMT=ELF
122 DLL_SUFFIX=so
123 - DSO_LDOPTS='-shared -Wl,-soname,$(notdir $@)'
124 + DSO_LDOPTS='-shared -Wl,-soname,$(SONAME)'
128 @@ -1607,7 +1607,7 @@
129 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
130 MDCPUCFG_H=_nto.cfg
131 PR_MD_CSRCS=nto.c
132 - MKSHLIB='$(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(notdir $@) -o $@'
133 + MKSHLIB='$(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(SONAME) -o $@'
134 DSO_CFLAGS=-fPIC
135 DSO_LDOPTS=-shared
136 OS_LIBS="$OS_LIBS -lsocket"
137 @@ -1685,7 +1685,7 @@
138 if echo $OS_RELEASE | grep -c V4.0 >/dev/null; then
139 AC_DEFINE(OSF1V4_MAP_PRIVATE_BUG)
141 - DSO_LDOPTS='-shared -all -expect_unresolved "*" -soname $(notdir $@)'
142 + DSO_LDOPTS='-shared -all -expect_unresolved "*" -soname $(SONAME)'
143 MDCPUCFG_H=_osf1.cfg
144 PR_MD_CSRCS=osf1.c
146 @@ -1751,7 +1751,7 @@
147 _OPTIMIZE_FLAGS='-O -F Olimit,4000'
150 - DSO_LDOPTS='-G -z defs -h $(@:$(OBJDIR)/%.so=%.so)'
151 + DSO_LDOPTS='-G -z defs -h $(SONAME)'
153 if test "$OS_RELEASE" = "5.43"; then
154 AC_DEFINE(IP_MULTICAST)
155 @@ -1807,10 +1807,10 @@
156 if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then
157 GCC_USE_GNU_LD=1
159 - DSO_LDOPTS='-shared -Wl,-h,$(notdir $@),-z,combreloc,-z,defs,-z,ignore'
160 + DSO_LDOPTS='-shared -Wl,-h,$(SONAME),-z,combreloc,-z,defs,-z,ignore'
161 else
162 DSO_CFLAGS=-KPIC
163 - DSO_LDOPTS='-G -h $(notdir $@) -z combreloc -z defs -z ignore'
164 + DSO_LDOPTS='-G -h $(SONAME) -z combreloc -z defs -z ignore'
166 if test -n "$GNU_CC"; then
167 CFLAGS="$CFLAGS -Wall"
168 --- nspr/mozilla/nsprpub/lib/ds/Makefile.in
169 +++ nspr/mozilla/nsprpub/lib/ds/Makefile.in
170 @@ -127,6 +127,7 @@
172 LIBRARY_NAME = plds
173 LIBRARY_VERSION = $(MOD_MAJOR_VERSION)
174 +SO_VERSION = 0d
176 RELEASE_HEADERS = $(HEADERS)
177 RELEASE_HEADERS_DEST = $(RELEASE_INCLUDE_DIR)
178 @@ -185,12 +186,14 @@
179 export:: $(TARGETS)
180 $(INSTALL) -m 444 $(HEADERS) $(dist_includedir)
181 $(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
182 + $(call MKSHLINKS,$(dist_libdir))
183 ifdef SHARED_LIBRARY
184 ifeq ($(OS_ARCH),HP-UX)
185 $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
186 $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
187 else
188 $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)
189 + $(call MKSHLINKS,$(dist_bindir))
190 endif
191 endif
192 ifeq ($(MOZ_BITS),16)
193 --- nspr/mozilla/nsprpub/lib/libc/src/Makefile.in
194 +++ nspr/mozilla/nsprpub/lib/libc/src/Makefile.in
195 @@ -69,6 +69,7 @@
197 LIBRARY_NAME = plc
198 LIBRARY_VERSION = $(MOD_MAJOR_VERSION)
199 +SO_VERSION = 0d
201 RELEASE_LIBS = $(TARGETS)
203 @@ -187,12 +188,14 @@
205 export:: $(TARGETS)
206 $(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
207 + $(call MKSHLINKS,$(dist_libdir))
208 ifdef SHARED_LIBRARY
209 ifeq ($(OS_ARCH),HP-UX)
210 $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
211 $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
212 else
213 $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)
214 + $(call MKSHLINKS,$(dist_bindir))
215 endif
216 endif
217 ifeq ($(MOZ_BITS),16)
218 --- nspr/mozilla/nsprpub/pr/src/Makefile.in
219 +++ nspr/mozilla/nsprpub/pr/src/Makefile.in
220 @@ -332,6 +332,7 @@
222 LIBRARY_NAME = nspr
223 LIBRARY_VERSION = $(MOD_MAJOR_VERSION)
224 +SO_VERSION = 0d
226 RELEASE_LIBS = $(TARGETS)
228 @@ -402,12 +403,14 @@
230 export:: $(TARGETS)
231 $(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
232 + $(call MKSHLINKS,$(dist_libdir))
233 ifdef SHARED_LIBRARY
234 ifeq ($(OS_ARCH),HP-UX)
235 $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
236 $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
237 else
238 $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)
239 + $(call MKSHLINKS,$(dist_bindir))
240 endif
241 endif
242 ifeq ($(MOZ_BITS),16)