diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2015-02-14 22:01:06 +0100 |
---|---|---|
committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2015-03-01 12:02:39 +0100 |
commit | 1deb4201b390a9265bb011c137d371ea68b81d11 (patch) | |
tree | 11496b75d3ab6c49ecd3a222b6f3d70e8b3d2619 /package/uclibc/uclibc.mk | |
parent | fbe1f44ac1e3e0c32fa1e93d2e8c28c9936d8a08 (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.mk | 19 |
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 |