ifeq ($(HAVE_SHARED),y)
for i in `cd $(top_builddir) && find lib/ -type l -name 'lib[a-zA-Z]*.so' | \
$(SED) -e 's/lib\///'` ; do \
- $(LN) -sf $(RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB)$$i.$(MAJOR_VERSION) \
+ $(LN) -sf $(RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB)$$i.$(ABI_VERSION) \
$(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/$$i; \
done
ifeq ($(HARDWIRED_ABSPATH),y)
- if [ -f $(top_builddir)lib/libc.so -a -f $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(SHARED_MAJORNAME) ] ; then \
+ if [ -f $(top_builddir)lib/libc.so -a -f $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(SHARED_LIBNAME) ] ; then \
$(RM) $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libc.so; \
$(SED) -e 's:$(NONSHARED_LIBNAME):$(DEVEL_PREFIX)$(MULTILIB_DIR)/$(NONSHARED_LIBNAME):' \
- -e 's:$(SHARED_MAJORNAME):$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(SHARED_MAJORNAME):' \
+ -e 's:$(SHARED_LIBNAME):$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(SHARED_LIBNAME):' \
-e 's:$(UCLIBC_LDSO):$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(UCLIBC_LDSO):' \
$(top_builddir)lib/libc.so > $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libc.so; \
fi
ifeq ($(UCLIBC_HAS_THREADS),y)
ifneq ($(LINUXTHREADS_OLD),y)
ifeq ($(HARDWIRED_ABSPATH),y)
- if [ -f $(top_builddir)lib/libpthread.so -a -f $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)/libpthread.so.$(MAJOR_VERSION) ] ; then \
+ if [ -f $(top_builddir)lib/libpthread.so -a -f $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)/libpthread.so.$(ABI_VERSION) ] ; then \
$(RM) $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libpthread.so; \
cp $(top_srcdir)extra/scripts/format.lds $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libpthread.so; \
- echo "GROUP ( $(RUNTIME_PREFIX)$(MULTILIB_DIR)/libpthread.so.$(MAJOR_VERSION) $(DEVEL_PREFIX)$(MULTILIB_DIR)/libpthread_nonshared.a )" \
+ echo "GROUP ( $(RUNTIME_PREFIX)$(MULTILIB_DIR)/libpthread.so.$(ABI_VERSION) $(DEVEL_PREFIX)$(MULTILIB_DIR)/libpthread_nonshared.a )" \
>> $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libpthread.so; \
fi
else
$(Q)$(STRIPTOOL) -x -R .note -R .comment $@
$(ldso):
- @cd $(top_builddir); $(MAKE) lib/$(patsubst %.$(MAJOR_VERSION),%,$(notdir $@))
+ @cd $(top_builddir); $(MAKE) lib/$(patsubst %.$(ABI_VERSION),%,$(notdir $@))
$(libc):
- @cd $(top_builddir); $(MAKE) lib/$(patsubst %.$(MAJOR_VERSION),%,$(notdir $@))
+ @cd $(top_builddir); $(MAKE) lib/$(patsubst %.$(ABI_VERSION),%,$(notdir $@))
CRT := crt1
SUBLEVEL := 32
EXTRAVERSION :=-git
VERSION := $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL)
+# no abi compat between sublevel releases yet, so we use full version
+# for soname
+ABI_VERSION := $(VERSION)
ifneq ($(EXTRAVERSION),)
VERSION := $(VERSION)$(EXTRAVERSION)
endif
# Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc.
LC_ALL := C
-export MAJOR_VERSION MINOR_VERSION SUBLEVEL VERSION LC_ALL
+export MAJOR_VERSION MINOR_VERSION SUBLEVEL VERSION ABI_VERSION LC_ALL
LIBC := libc
-SHARED_MAJORNAME := $(LIBC).so.$(MAJOR_VERSION)
+SHARED_LIBNAME := $(LIBC).so.$(ABI_VERSION)
+
ifneq ($(findstring $(TARGET_ARCH) , hppa64 ia64 mips64 powerpc64 s390x sparc64 x86_64 ),)
UCLIBC_LDSO_NAME := ld64-uClibc
ARCH_NATIVE_BIT := 64
UCLIBC_LDSO_NAME := ld-uClibc
ARCH_NATIVE_BIT := 32
endif
-UCLIBC_LDSO := $(UCLIBC_LDSO_NAME).so.$(MAJOR_VERSION)
+UCLIBC_LDSO := $(UCLIBC_LDSO_NAME).so.$(ABI_VERSION)
NONSHARED_LIBNAME := uclibc_nonshared.a
-libc := $(top_builddir)lib/$(SHARED_MAJORNAME)
-libc.depend := $(top_builddir)lib/$(SHARED_MAJORNAME:.$(MAJOR_VERSION)=)
+libc := $(top_builddir)lib/$(SHARED_LIBNAME)
+libc.depend := $(top_builddir)lib/$(SHARED_LIBNAME:.$(ABI_VERSION)=)
libdl.depend := $(top_builddir)lib/libdl.so
libpthread.depend := $(top_builddir)lib/libpthread.so
interp := $(top_builddir)lib/interp.os
sub_headers := $(headers_dep)
#LIBS :=$(interp) -L$(top_builddir)lib -lc
-LIBS := $(interp) -L$(top_builddir)lib $(libc:.$(MAJOR_VERSION)=)
+LIBS := $(interp) -L$(top_builddir)lib $(libc:.$(ABI_VERSION)=)
# Make sure DESTDIR and PREFIX can be used to install
# PREFIX is a uClibcism while DESTDIR is a common GNUism
lib-so-y += $(ldso)
objclean-y += CLEAN_ldso/ldso
-$(ldso): $(ldso:.$(MAJOR_VERSION)=)
-$(ldso:.$(MAJOR_VERSION)=): $($(UCLIBC_LDSO_NAME)_OUT)/$(UCLIBC_LDSO_NAME)_so.a
- $(call link.so,$(ldso_FULL_NAME),$(MAJOR_VERSION))
+$(ldso): $(ldso:.$(ABI_VERSION)=)
+$(ldso:.$(ABI_VERSION)=): $($(UCLIBC_LDSO_NAME)_OUT)/$(UCLIBC_LDSO_NAME)_so.a
+ $(call link.so,$(ldso_FULL_NAME),$(ABI_VERSION))
$($(UCLIBC_LDSO_NAME)_OUT)/$(UCLIBC_LDSO_NAME)_so.a: $(ldso-y)
$(Q)$(RM) $@
objclean-y += CLEAN_ldso/libdl
$(top_builddir)lib/libdl.so: $(libdl_OUT)/libdl_so.a $(libc.depend)
- $(call link.so,$(libdl_FULL_NAME),$(MAJOR_VERSION))
+ $(call link.so,$(libdl_FULL_NAME),$(ABI_VERSION))
$(libdl_OUT)/libdl_so.a: $(libdl-so-y)
$(Q)$(RM) $@
endif
LIBS-libc.so := $(interp) $(ldso) $(top_builddir)lib/$(NONSHARED_LIBNAME)
-# we have SHARED_MAJORNAME=libc.so.$(MAJOR_VERSION) defined in Rules.mak
+# we have SHARED_LIBNAME=libc.so.$(ABI_VERSION) defined in Rules.mak
libc_FULL_NAME := libuClibc-$(VERSION).so
# this comes first, so duplicate removal works correctly
ifeq ($(DOMULTI),n)
$(libc.depend): $(libc_OUT)/libc_so.a $(LIBS-libc.so)
- $(call link.so,$(libc_FULL_NAME),$(MAJOR_VERSION))
+ $(call link.so,$(libc_FULL_NAME),$(ABI_VERSION))
else
$(libc.depend): $(libc_OUT)/libc.oS $(libc-nomulti-y:.o=.oS) | $(LIBS-libc.so)
- $(call linkm.so,$(libc_FULL_NAME),$(MAJOR_VERSION))
+ $(call linkm.so,$(libc_FULL_NAME),$(ABI_VERSION))
endif
$(Q)$(RM) $@
$(Q)cp $(top_srcdir)extra/scripts/format.lds $@
$(Q)$(OUTPUT_FORMAT) >> $@
ifeq ($(COMPAT_ATEXIT),y)
- $(Q)echo "GROUP ( $(NONSHARED_LIBNAME) $(SHARED_MAJORNAME) $(ASNEEDED) )" >> $@
+ $(Q)echo "GROUP ( $(NONSHARED_LIBNAME) $(SHARED_LIBNAME) $(ASNEEDED) )" >> $@
else
- $(Q)echo "GROUP ( $(SHARED_MAJORNAME) $(NONSHARED_LIBNAME) $(ASNEEDED) )" >> $@
+ $(Q)echo "GROUP ( $(SHARED_LIBNAME) $(NONSHARED_LIBNAME) $(ASNEEDED) )" >> $@
endif
$(libc_OUT)/libc_so.a: $(libc-so-y) | $(top_builddir)lib/libc.a $(top_builddir)lib/$(NONSHARED_LIBNAME)
else
$(top_builddir)lib/libcrypt.so: $(libcrypt_OUT)/libcrypt_so.a $(libc.depend)
endif
- $(call link.so,$(libcrypt_FULL_NAME),$(MAJOR_VERSION))
+ $(call link.so,$(libcrypt_FULL_NAME),$(ABI_VERSION))
else
$(top_builddir)lib/libcrypt.so: $(libcrypt_OUT)/libcrypt.oS | $(libc.depend)
- $(call linkm.so,$(libcrypt_FULL_NAME),$(MAJOR_VERSION))
+ $(call linkm.so,$(libcrypt_FULL_NAME),$(ABI_VERSION))
endif
$(libcrypt_OUT)/libcrypt_so.a: $(libcrypt-so-y)
else
$(top_builddir)lib/libintl.so: $(libintl_OUT)/libintl_so.a $(libc)
endif
- $(call link.so,$(libintl_FULL_NAME),$(MAJOR_VERSION))
+ $(call link.so,$(libintl_FULL_NAME),$(ABI_VERSION))
else
$(top_builddir)lib/libintl.so: $(libintl_OUT)/libintl.oS | $(libc)
- $(call linkm.so,$(libintl_FULL_NAME),$(MAJOR_VERSION))
+ $(call linkm.so,$(libintl_FULL_NAME),$(ABI_VERSION))
endif
$(libintl_OUT)/libintl_so.a: $(libintl-so-y)
else
$(top_builddir)lib/libm.so: $(libm_OUT)/libm_so.a $(libc.depend)
endif
- $(call link.so,$(libm_FULL_NAME),$(MAJOR_VERSION))
+ $(call link.so,$(libm_FULL_NAME),$(ABI_VERSION))
else
$(top_builddir)lib/libm.so: $(libm_OUT)/libm.oS | $(libc.depend)
- $(call linkm.so,$(libm_FULL_NAME),$(MAJOR_VERSION))
+ $(call linkm.so,$(libm_FULL_NAME),$(ABI_VERSION))
endif
$(libm_OUT)/libm_so.a: $(libm-so-y)
else
$(top_builddir)lib/libnsl.so: $(libnsl_OUT)/libnsl_so.a $(libc.depend)
endif
- $(call link.so,$(libnsl_FULL_NAME),$(MAJOR_VERSION))
+ $(call link.so,$(libnsl_FULL_NAME),$(ABI_VERSION))
$(libnsl_OUT)/libnsl_so.a: $(libnsl-so-y)
$(Q)$(RM) $@
#ifeq ($(DOMULTI),n)
$(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread_so.a $(libc.depend)
- $(call link.so,$(libpthread_FULL_NAME),$(MAJOR_VERSION))
+ $(call link.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
#else
#$(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread.oS | $(libc.depend)
-# $(call linkm.so,$(libpthread_FULL_NAME),$(MAJOR_VERSION))
+# $(call linkm.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
#endif
ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
subdirs += libpthread/linuxthreads.old_db
# Get the thread include dependencies and shared object name
-CFLAGS-linuxthreads.old_db := -DNOT_IN_libc -DLIBPTHREAD_SO="\"libpthread.so.$(MAJOR_VERSION)\""
+CFLAGS-linuxthreads.old_db := -DNOT_IN_libc -DLIBPTHREAD_SO="\"libpthread.so.$(ABI_VERSION)\""
LDFLAGS-libthread_db.so := $(LDFLAGS_NOSTRIP) $(if $(call check_ld,--warn-unresolved-symbols),-Wl$(comma)--warn-unresolved-symbols)
ifeq ($(DOSTRIP),y)
#ifeq ($(DOMULTI),n)
$(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread_so.a $(libc.depend) $(top_builddir)lib/libpthread_nonshared.a
- $(call link.so,$(libpthread_FULL_NAME),$(MAJOR_VERSION))
+ $(call link.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
#else
#$(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread.oS | $(libc.depend) $(top_builddir)lib/libpthread_nonshared.a
-# $(call linkm.so,$(libpthread_FULL_NAME),$(MAJOR_VERSION))
+# $(call linkm.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
#endif
$(Q)$(RM) $@
$(Q)cp $(top_srcdir)extra/scripts/format.lds $@
- $(Q)echo "GROUP ( $(notdir $@).$(MAJOR_VERSION) libpthread_nonshared.a )" >> $@
+ $(Q)echo "GROUP ( $(notdir $@).$(ABI_VERSION) libpthread_nonshared.a )" >> $@
ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
$(libpthread_OUT)/libpthread_so.a: STRIP_FLAGS:=$(STRIP_FLAGS:-x=-X --strip-debug)
subdirs += libpthread/linuxthreads_db
# Get the thread include dependencies and shared object name
-CFLAGS-linuxthreads_db := -DNOT_IN_libc -DLIBPTHREAD_SO="\"libpthread.so.$(MAJOR_VERSION)\""
+CFLAGS-linuxthreads_db := -DNOT_IN_libc -DLIBPTHREAD_SO="\"libpthread.so.$(ABI_VERSION)\""
LDFLAGS-libthread_db.so := $(LDFLAGS_NOSTRIP) $(if $(call check_ld,--warn-unresolved-symbols),-Wl$(comma)--warn-unresolved-symbols)
ifeq ($(DOSTRIP),y)
lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
$(top_builddir)lib/libpthread.so: $(PTHREAD_OUT)/libpthread_so.a $(libc.depend) $(libdl.depend) $(top_builddir)lib/libpthread_nonshared.a
- $(call link.so,$(libpthread_FULL_NAME),$(MAJOR_VERSION))
+ $(call link.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
$(Q)$(RM) $@
$(Q)cp $(top_srcdir)extra/scripts/format.lds $@
- $(Q)echo "GROUP ( $(notdir $@).$(MAJOR_VERSION) libpthread_nonshared.a )" >> $@
+ $(Q)echo "GROUP ( $(notdir $@).$(ABI_VERSION) libpthread_nonshared.a )" >> $@
$(PTHREAD_OUT)/libpthread_so.a: $(libpthread-so-y)
$(Q)$(RM) $@
subdirs += libpthread/nptl/nptl_db
# Get the thread include dependencies and shared object name
-CFLAGS-nptl_db := -DLIBPTHREAD_SO="\"libpthread.so.$(MAJOR_VERSION)\""
+CFLAGS-nptl_db := -DLIBPTHREAD_SO="\"libpthread.so.$(ABI_VERSION)\""
CFLAGS-nptl_db += -I$(top_srcdir)libpthread/nptl -D_GNU_SOURCE
CFLAGS-nptl_db += -DIS_IN_libthread_db=1 -std=gnu99 -I$(top_srcdir)ldso/include
else
$(top_builddir)lib/libresolv.so: $(libresolv_OUT)/libresolv_so.a $(libc.depend)
endif
- $(call link.so,$(libresolv_FULL_NAME),$(MAJOR_VERSION))
+ $(call link.so,$(libresolv_FULL_NAME),$(ABI_VERSION))
$(libresolv_OUT)/libresolv_so.a: $(libresolv-so-y)
$(Q)$(RM) $@
else
$(top_builddir)lib/librt.so: $(librt_OUT)/librt_so.a $(libc.depend) $(libpthread.depend) $(libdl.depend)
endif
- $(call link.so,$(librt_FULL_NAME),$(MAJOR_VERSION))
+ $(call link.so,$(librt_FULL_NAME),$(ABI_VERSION))
$(librt_OUT)/librt_so.a: $(librt-so-y)
$(Q)$(RM) $@
else
$(top_builddir)lib/libutil.so: $(libutil_OUT)/libutil_so.a $(libc.depend)
endif
- $(call link.so,$(libutil_FULL_NAME),$(MAJOR_VERSION))
+ $(call link.so,$(libutil_FULL_NAME),$(ABI_VERSION))
else
$(top_builddir)lib/libutil.so: $(libutil_OUT)/libutil.oS | $(libc.depend)
- $(call linkm.so,$(libutil_FULL_NAME),$(MAJOR_VERSION))
+ $(call linkm.so,$(libutil_FULL_NAME),$(ABI_VERSION))
endif
$(libutil_OUT)/libutil_so.a: $(libutil-so-y)