Peter Kjellerstedt wrote:
Unless it has changed in the last years, there are no expressed guarantees regarding API and ABI stability for the 0.x.y releases of uClibc. AFAIK the stable API/ABI is intended for the 1.0.0 release. And with the upcoming integration of the NPTL support, I do not see this as the right time to go to 1.0.0 and lock down the API/ABI...
Could the uclibc project then start using appropriate soname, so we can install multiple versions of the library if needed (e.g. when doing package based upgrade). # objdump -p /lib/libuClibc-0.9.30.1.so |grep SONAME SONAME libc.so.0 Would indicate that all 0.x are compatible. Basically, soname should be 0.x.y if all 0.x.y.z are supposed to be ABI compatible. Currently it seems that link.so and linkm.so macros explicitly set soname according to $(2). define link.so $(Q)$(INSTALL) -d $(dir $@) $(Q)$(RM) $@ $...@.$(2) $(dir $@)$(1) @$(disp_ld) $(Q)$(CC) $(LDFLAGS-$(notdir $@)) -Wl,-soname=$(notdir $@).$(2) \ $(NOSTDLIB_CFLAGS) -o $(dir $@)$(1) $(START_FILE-$(notdir $@)) \ -Wl,--whole-archive $(firstword $^) -Wl,--no-whole-archive \ $(LIBS-$(notdir $@)) $(LIBGCC) $(END_FILE-$(notdir $@)) $(Q)$(LN) -sf $(1) $...@.$(2) $(Q)$(LN) -sf $(1) $@ endef Those get called like: ./libc/Makefile.in: $(call linkm.so,$(libc_FULL_NAME),$(MAJOR_VERSION)) And that's defined like: Rules.mak:MAJOR_VERSION := 0 Resulting in above mentioned soname, which is completely broken regarding to how shared object ABI compatibility should be handled. Please fix soname. Thanks, Timo _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc