Skip to content

Commit e8a6c9b

Browse files
committed
uclibc: Create backward compatibility symlinks
Apps built against oldish uClibc (0.9.x.x) require .so.0 libs on target but uClibc-ng (1.0.x) creates .so.1 libs because its ABI version was bumped from 0 to 1. This change allows to use apps built against old uClibc on systems with uClibc-ng system libraries. Signed-off-by: Alexey Brodkin <[email protected]>
1 parent 2303ff3 commit e8a6c9b

File tree

1 file changed

+220
-0
lines changed

1 file changed

+220
-0
lines changed
Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
From 3901896e9130bb57f9a0bae814c9cee5642fcdae Mon Sep 17 00:00:00 2001
2+
From: Alexey Brodkin <[email protected]>
3+
Date: Tue, 21 Jun 2016 18:31:15 +0300
4+
Subject: [PATCH] libs: install backward compatibility symlink
5+
6+
Simplify the switch from uClibc to uClibc-ng.
7+
Apps already built against uClibc-0.9.x.y require .so.0
8+
libs to present on target which in case of current uClibc-ng is
9+
not the case and those apps could not be run.
10+
11+
This change creates symlinks from .so.1 to .so.0 for
12+
most of other libs in the same way as it was done by
13+
23e96d89b6ab "ldso: install backward compatibility symlink by default"
14+
15+
Signed-off-by: Alexey Brodkin <[email protected]>
16+
Cc: Waldemar Brodkorb <[email protected]>
17+
Cc: Vineet Gupta <[email protected]>
18+
Cc: Anton Kolesov <[email protected]>
19+
---
20+
ldso/libdl/Makefile.in | 2 ++
21+
libc/Makefile.in | 4 ++++
22+
libcrypt/Makefile.in | 2 ++
23+
libintl/Makefile.in | 4 ++++
24+
libm/Makefile.in | 4 ++++
25+
libnsl/Makefile.in | 2 ++
26+
libpthread/linuxthreads/Makefile.in | 2 ++
27+
libpthread/nptl/Makefile.in | 2 ++
28+
libresolv/Makefile.in | 2 ++
29+
librt/Makefile.in | 2 ++
30+
libubacktrace/Makefile.in | 4 ++++
31+
libutil/Makefile.in | 4 ++++
32+
12 files changed, 34 insertions(+)
33+
34+
diff --git a/ldso/libdl/Makefile.in b/ldso/libdl/Makefile.in
35+
index fe1eb9d..1ba8770 100644
36+
--- a/ldso/libdl/Makefile.in
37+
+++ b/ldso/libdl/Makefile.in
38+
@@ -48,6 +48,8 @@ objclean-y += CLEAN_ldso/libdl
39+
40+
$(top_builddir)lib/libdl.so: $(libdl_OUT)/libdl_so.a $(libc.depend)
41+
$(call link.so,$(libdl_FULL_NAME),$(ABI_VERSION))
42+
+ # link for backward compatibility
43+
+ $(call link.so,$(libdl_FULL_NAME),0)
44+
45+
$(libdl_OUT)/libdl_so.a: $(libdl-so-y)
46+
$(Q)$(RM) $@
47+
diff --git a/libc/Makefile.in b/libc/Makefile.in
48+
index 2abc77d..8ed8a75 100644
49+
--- a/libc/Makefile.in
50+
+++ b/libc/Makefile.in
51+
@@ -60,9 +60,13 @@ OUTPUT_FORMAT = $(CC) $(CFLAGS) -Wl,--verbose 2>&1 | $(SED) -n '/OUTPUT_FORMAT/,
52+
ifeq ($(DOMULTI),n)
53+
$(libc.depend): $(libc_OUT)/libc_so.a $(LIBS-libc.so)
54+
$(call link.so,$(libc_FULL_NAME),$(ABI_VERSION))
55+
+ # link for backward compatibility
56+
+ $(call link.so,$(libc_FULL_NAME),0)
57+
else
58+
$(libc.depend): $(libc_OUT)/libc.oS $(libc-nomulti-y:.o=.oS) | $(LIBS-libc.so)
59+
$(call linkm.so,$(libc_FULL_NAME),$(ABI_VERSION))
60+
+ # link for backward compatibility
61+
+ $(call linkm.so,$(libc_FULL_NAME),0)
62+
endif
63+
$(Q)$(RM) $@
64+
$(Q)cat $(top_srcdir)extra/scripts/format.lds > [email protected]
65+
diff --git a/libcrypt/Makefile.in b/libcrypt/Makefile.in
66+
index 94753f4..f0ee24d 100644
67+
--- a/libcrypt/Makefile.in
68+
+++ b/libcrypt/Makefile.in
69+
@@ -46,9 +46,11 @@ else
70+
$(top_builddir)lib/libcrypt.so: $(libcrypt_OUT)/libcrypt_so.a $(libc.depend)
71+
endif
72+
$(call link.so,$(libcrypt_FULL_NAME),$(ABI_VERSION))
73+
+ $(call link.so,$(libcrypt_FULL_NAME),0)
74+
else
75+
$(top_builddir)lib/libcrypt.so: $(libcrypt_OUT)/libcrypt.oS | $(libc.depend)
76+
$(call linkm.so,$(libcrypt_FULL_NAME),$(ABI_VERSION))
77+
+ $(call linkm.so,$(libcrypt_FULL_NAME),0)
78+
endif
79+
80+
$(libcrypt_OUT)/libcrypt_so.a: $(libcrypt-so-y)
81+
diff --git a/libintl/Makefile.in b/libintl/Makefile.in
82+
index 22ae70c..39b39a5 100644
83+
--- a/libintl/Makefile.in
84+
+++ b/libintl/Makefile.in
85+
@@ -48,9 +48,13 @@ else
86+
$(top_builddir)lib/libintl.so: $(libintl_OUT)/libintl_so.a $(libc.depend)
87+
endif
88+
$(call link.so,$(libintl_FULL_NAME),$(ABI_VERSION))
89+
+ # link for backward compatibility
90+
+ $(call link.so,$(libintl_FULL_NAME),0)
91+
else
92+
$(top_builddir)lib/libintl.so: $(libintl_OUT)/libintl.oS | $(libc.depend)
93+
$(call linkm.so,$(libintl_FULL_NAME),$(ABI_VERSION))
94+
+ # link for backward compatibility
95+
+ $(call linkm.so,$(libintl_FULL_NAME),0)
96+
endif
97+
98+
$(libintl_OUT)/libintl_so.a: $(libintl-so-y)
99+
diff --git a/libm/Makefile.in b/libm/Makefile.in
100+
index f0e5528..6591542 100644
101+
--- a/libm/Makefile.in
102+
+++ b/libm/Makefile.in
103+
@@ -306,9 +306,13 @@ else
104+
$(top_builddir)lib/libm.so: $(libm_OUT)/libm_so.a $(libc.depend)
105+
endif
106+
$(call link.so,$(libm_FULL_NAME),$(ABI_VERSION))
107+
+ # link for backward compatibility
108+
+ $(call link.so,$(libm_FULL_NAME),0)
109+
else
110+
$(top_builddir)lib/libm.so: $(libm_OUT)/libm.oS | $(libc.depend)
111+
$(call linkm.so,$(libm_FULL_NAME),$(ABI_VERSION))
112+
+ # link for backward compatibility
113+
+ $(call linkm.so,$(libm_FULL_NAME),0)
114+
endif
115+
116+
$(libm_OUT)/libm_so.a: $(libm-so-y)
117+
diff --git a/libnsl/Makefile.in b/libnsl/Makefile.in
118+
index 333c490..e79268c 100644
119+
--- a/libnsl/Makefile.in
120+
+++ b/libnsl/Makefile.in
121+
@@ -39,6 +39,8 @@ else
122+
$(top_builddir)lib/libnsl.so: $(libnsl_OUT)/libnsl_so.a $(libc.depend)
123+
endif
124+
$(call link.so,$(libnsl_FULL_NAME),$(ABI_VERSION))
125+
+ # link for backward compatibility
126+
+ $(call link.so,$(libnsl_FULL_NAME),0)
127+
128+
$(libnsl_OUT)/libnsl_so.a: $(libnsl-so-y)
129+
$(Q)$(RM) $@
130+
diff --git a/libpthread/linuxthreads/Makefile.in b/libpthread/linuxthreads/Makefile.in
131+
index c1ec1c9..1c6aa06 100644
132+
--- a/libpthread/linuxthreads/Makefile.in
133+
+++ b/libpthread/linuxthreads/Makefile.in
134+
@@ -85,6 +85,8 @@ lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
135+
#ifeq ($(DOMULTI),n)
136+
$(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread_so.a $(libc.depend) $(top_builddir)lib/libpthread_nonshared.a
137+
$(call link.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
138+
+ # link for backward compatibility
139+
+ $(call link.so,$(libpthread_FULL_NAME),0)
140+
#else
141+
#$(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread.oS | $(libc.depend) $(top_builddir)lib/libpthread_nonshared.a
142+
# $(call linkm.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
143+
diff --git a/libpthread/nptl/Makefile.in b/libpthread/nptl/Makefile.in
144+
index 8261fce..f0d5ad6 100644
145+
--- a/libpthread/nptl/Makefile.in
146+
+++ b/libpthread/nptl/Makefile.in
147+
@@ -76,6 +76,8 @@ lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
148+
149+
$(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread_so.a $(libc.depend) $(libdl.depend) $(top_builddir)lib/libpthread_nonshared.a
150+
$(call link.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
151+
+ # link for backward compatibility
152+
+ $(call link.so,$(libpthread_FULL_NAME),0)
153+
$(Q)cat $(top_srcdir)extra/scripts/format.lds > [email protected]
154+
$(Q)echo "GROUP ( $(notdir $@).$(ABI_VERSION) libpthread_nonshared.a )" >> [email protected]
155+
156+
diff --git a/libresolv/Makefile.in b/libresolv/Makefile.in
157+
index fa3c341..89ef4f7 100644
158+
--- a/libresolv/Makefile.in
159+
+++ b/libresolv/Makefile.in
160+
@@ -39,6 +39,8 @@ else
161+
$(top_builddir)lib/libresolv.so: $(libresolv_OUT)/libresolv_so.a $(libc.depend)
162+
endif
163+
$(call link.so,$(libresolv_FULL_NAME),$(ABI_VERSION))
164+
+ # link for backward compatibility
165+
+ $(call link.so,$(libresolv_FULL_NAME),0)
166+
167+
$(libresolv_OUT)/libresolv_so.a: $(libresolv-so-y)
168+
$(Q)$(RM) $@
169+
diff --git a/librt/Makefile.in b/librt/Makefile.in
170+
index 1536a5c..88f15f9 100644
171+
--- a/librt/Makefile.in
172+
+++ b/librt/Makefile.in
173+
@@ -73,6 +73,8 @@ else
174+
$(top_builddir)lib/librt.so: $(librt_OUT)/librt_so.a $(librt-dep-y)
175+
endif
176+
$(call link.so,$(librt_FULL_NAME),$(ABI_VERSION))
177+
+ # link for backward compatibility
178+
+ $(call link.so,$(librt_FULL_NAME),0)
179+
180+
$(librt_OUT)/librt_so.a: $(librt-so-y)
181+
$(Q)$(RM) $@
182+
diff --git a/libubacktrace/Makefile.in b/libubacktrace/Makefile.in
183+
index 311f1e3..587eaf6 100644
184+
--- a/libubacktrace/Makefile.in
185+
+++ b/libubacktrace/Makefile.in
186+
@@ -62,9 +62,13 @@ objclean-y += CLEAN_libubacktrace
187+
ifeq ($(DOMULTI),n)
188+
$(top_builddir)lib/libubacktrace.so: $(libubacktrace_OUT)/libubacktrace_so.a $(libdl.depend)
189+
$(call link.so,$(libubacktrace_FULL_NAME),$(ABI_VERSION))
190+
+ # link for backward compatibility
191+
+ $(call link.so,$(libubacktrace_FULL_NAME),0)
192+
else
193+
$(top_builddir)lib/libubacktrace.so: $(libubacktrace_OUT)/libubacktrace.oS | $(libdl.depend)
194+
$(call linkm.so,$(libubacktrace_FULL_NAME),$(ABI_VERSION))
195+
+ # link for backward compatibility
196+
+ $(call linkm.so,$(libubacktrace_FULL_NAME),0)
197+
endif
198+
199+
$(libubacktrace_OUT)/libubacktrace_so.a: $(libubacktrace-so-y)
200+
diff --git a/libutil/Makefile.in b/libutil/Makefile.in
201+
index 98b178e..7759482 100644
202+
--- a/libutil/Makefile.in
203+
+++ b/libutil/Makefile.in
204+
@@ -55,9 +55,13 @@ else
205+
$(top_builddir)lib/libutil.so: $(libutil_OUT)/libutil_so.a $(libc.depend)
206+
endif
207+
$(call link.so,$(libutil_FULL_NAME),$(ABI_VERSION))
208+
+ # link for backward compatibility
209+
+ $(call link.so,$(libutil_FULL_NAME),0)
210+
else
211+
$(top_builddir)lib/libutil.so: $(libutil_OUT)/libutil.oS | $(libc.depend)
212+
$(call linkm.so,$(libutil_FULL_NAME),$(ABI_VERSION))
213+
+ # link for backward compatibility
214+
+ $(call linkm.so,$(libutil_FULL_NAME),0)
215+
endif
216+
217+
$(libutil_OUT)/libutil_so.a: $(libutil-so-y)
218+
--
219+
2.5.5
220+

0 commit comments

Comments
 (0)