summaryrefslogtreecommitdiff
path: root/package/uclibc/uclibc.mk
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-02-14 22:01:06 +0100
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-03-01 12:02:39 +0100
commit1deb4201b390a9265bb011c137d371ea68b81d11 (patch)
tree11496b75d3ab6c49ecd3a222b6f3d70e8b3d2619 /package/uclibc/uclibc.mk
parentfbe1f44ac1e3e0c32fa1e93d2e8c28c9936d8a08 (diff)
uclibc: add ability to use uClibc-ng 1.0.0
This commit adds support for a new uClibc version: uClibc-ng 1.0.0. Since its build system is for now exactly the same as the one of uClibc, we don't create a new package, but instead simply add it as a new uClibc version. The only special trick needed is the creation of a symlink to the program interpreter, due to a mismatch between the program interpreter file name generated by uClibc-ng and the one used by gcc. This patch is heavily based on previous work from Waldemar Brodkorb. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
Diffstat (limited to 'package/uclibc/uclibc.mk')
-rw-r--r--package/uclibc/uclibc.mk19
1 files changed, 19 insertions, 0 deletions
diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
index b29cff472..7fe50a36f 100644
--- a/package/uclibc/uclibc.mk
+++ b/package/uclibc/uclibc.mk
@@ -11,6 +11,9 @@ UCLIBC_LICENSE_FILES = COPYING.LIB
ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
UCLIBC_SITE = http://www.uclibc.org/downloads/snapshots
+else ifeq ($(BR2_UCLIBC_NG_VERSION_1_0_0),y)
+UCLIBC_SITE = http://downloads.uclibc-ng.org/releases/$(UCLIBC_VERSION)/
+UCLIBC_SOURCE = uClibc-ng-$(UCLIBC_VERSION).tar.xz
else ifeq ($(BR2_UCLIBC_VERSION_ARC_GIT),y)
UCLIBC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,uClibc,$(UCLIBC_VERSION))
UCLIBC_SOURCE = uClibc-$(UCLIBC_VERSION).tar.gz
@@ -475,6 +478,21 @@ define UCLIBC_INSTALL_UTILS_TARGET
endef
endif
+# gcc produces binaries that use ld{64,}-uClibc.so.0 as the program
+# interpreter, but since uClibc-ng version is 1.0.0, it generates
+# ld{64,}-uClibc.so.1. In order to avoid changing gcc, we simply
+# create the necessary symbolic links here.
+ifeq ($(BR2_UCLIBC_NG_VERSION_1_0_0),y)
+define UCLIBC_INSTALL_LDSO_SYMLINKS
+ if [ -e $(TARGET_DIR)/lib/ld64-uClibc.so.1 ]; then \
+ (cd $(TARGET_DIR)/lib;ln -sf ld64-uClibc.so.1 ld64-uClibc.so.0) \
+ fi
+ if [ -e $(TARGET_DIR)/lib/ld-uClibc.so.1 ]; then \
+ (cd $(TARGET_DIR)/lib;ln -sf ld-uClibc.so.1 ld-uClibc.so.0) \
+ fi
+endef
+endif
+
define UCLIBC_INSTALL_TARGET_CMDS
$(MAKE1) -C $(@D) \
$(UCLIBC_MAKE_FLAGS) \
@@ -485,6 +503,7 @@ define UCLIBC_INSTALL_TARGET_CMDS
$(UCLIBC_INSTALL_UTILS_TARGET)
$(UCLIBC_BUILD_TEST_SUITE)
$(UCLIBC_INSTALL_TEST_SUITE)
+ $(UCLIBC_INSTALL_LDSO_SYMLINKS)
endef
# STATIC has no ld* tools, only getconf