|
@@ -1,32 +1,46 @@
|
|
|
################################################################################
|
|
|
#
|
|
|
-# eglibc
|
|
|
+# glibc/eglibc
|
|
|
#
|
|
|
################################################################################
|
|
|
|
|
|
-EGLIBC_VERSION = 2.17-svnr22064
|
|
|
-EGLIBC_SITE = http://downloads.yoctoproject.org/releases/eglibc/
|
|
|
-EGLIBC_SOURCE = eglibc-$(EGLIBC_VERSION).tar.bz2
|
|
|
-EGLIBC_LICENSE = GPLv2+ (programs), LGPLv2.1+, BSD-3c, MIT (library)
|
|
|
-EGLIBC_LICENSE_FILES = libc/COPYING libc/COPYING.LIB libc/LICENSES
|
|
|
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_EGLIBC),y)
|
|
|
+GLIBC_VERSION = 2.17-svnr22064
|
|
|
+GLIBC_SITE = http://downloads.yoctoproject.org/releases/eglibc/
|
|
|
+GLIBC_SOURCE = eglibc-$(GLIBC_VERSION).tar.bz2
|
|
|
+GLIBC_SRC_SUBDIR = libc
|
|
|
+else
|
|
|
+GLIBC_VERSION = 2.18
|
|
|
+GLIBC_SITE = $(BR2_GNU_MIRROR)/libc
|
|
|
+GLIBC_SOURCE = glibc-$(GLIBC_VERSION).tar.xz
|
|
|
+GLIBC_SRC_SUBDIR = .
|
|
|
+endif
|
|
|
+
|
|
|
+GLIBC_LICENSE = GPLv2+ (programs), LGPLv2.1+, BSD-3c, MIT (library)
|
|
|
+GLIBC_LICENSE_FILES = $(addprefix $(GLIBC_SRC_SUBDIR)/,COPYING COPYING.LIB LICENSES)
|
|
|
|
|
|
-# Before eglibc is configured, we must have the first stage
|
|
|
+# Before (e)glibc is configured, we must have the first stage
|
|
|
# cross-compiler and the kernel headers
|
|
|
-EGLIBC_DEPENDENCIES = host-gcc-initial linux-headers host-gawk
|
|
|
+GLIBC_DEPENDENCIES = host-gcc-initial linux-headers
|
|
|
+
|
|
|
+# eglibc also needs host-gawk
|
|
|
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_EGLIBC),y)
|
|
|
+GLIBC_DEPENDENCIES += host-gawk
|
|
|
+endif
|
|
|
|
|
|
-# Before eglibc is built, we must have the second stage
|
|
|
+# Before (e)glibc is built, we must have the second stage
|
|
|
# cross-compiler, for some gcc versions
|
|
|
-eglibc-build: $(if $(BR2_TOOLCHAIN_NEEDS_THREE_STAGE_BUILD),host-gcc-intermediate)
|
|
|
+glibc-build: $(if $(BR2_TOOLCHAIN_NEEDS_THREE_STAGE_BUILD),host-gcc-intermediate)
|
|
|
|
|
|
-EGLIBC_SUBDIR = build
|
|
|
+GLIBC_SUBDIR = build
|
|
|
|
|
|
-EGLIBC_INSTALL_STAGING = YES
|
|
|
+GLIBC_INSTALL_STAGING = YES
|
|
|
|
|
|
-EGLIBC_INSTALL_STAGING_OPT = install_root=$(STAGING_DIR) install
|
|
|
+GLIBC_INSTALL_STAGING_OPT = install_root=$(STAGING_DIR) install
|
|
|
|
|
|
# Thumb build is broken, build in ARM mode
|
|
|
ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
|
|
|
-EGLIBC_EXTRA_CFLAGS += -marm
|
|
|
+GLIBC_EXTRA_CFLAGS += -marm
|
|
|
endif
|
|
|
|
|
|
# Even though we use the autotools-package infrastructure, we have to
|
|
@@ -38,16 +52,16 @@ endif
|
|
|
# 2. We have to execute the configure script with bash and not sh.
|
|
|
#
|
|
|
# Note that as mentionned in
|
|
|
-# http://patches.openembedded.org/patch/38849/, eglibc must be built
|
|
|
-# with -O2, so we pass our own CFLAGS and CXXFLAGS below.
|
|
|
-define EGLIBC_CONFIGURE_CMDS
|
|
|
+# http://patches.openembedded.org/patch/38849/, eglibc/glibc must be
|
|
|
+# built with -O2, so we pass our own CFLAGS and CXXFLAGS below.
|
|
|
+define GLIBC_CONFIGURE_CMDS
|
|
|
mkdir -p $(@D)/build
|
|
|
# Do the configuration
|
|
|
(cd $(@D)/build; \
|
|
|
$(TARGET_CONFIGURE_OPTS) \
|
|
|
- CFLAGS="-O2 $(EGLIBC_EXTRA_CFLAGS)" CPPFLAGS="" \
|
|
|
- CXXFLAGS="-O2 $(EGLIBC_EXTRA_CFLAGS)" \
|
|
|
- $(SHELL) $(@D)/libc/configure \
|
|
|
+ CFLAGS="-O2 $(GLIBC_EXTRA_CFLAGS)" CPPFLAGS="" \
|
|
|
+ CXXFLAGS="-O2 $(GLIBC_EXTRA_CFLAGS)" \
|
|
|
+ $(SHELL) $(@D)/$(GLIBC_SRC_SUBDIR)/configure \
|
|
|
ac_cv_path_BASH_SHELL=/bin/bash \
|
|
|
libc_cv_forced_unwind=yes \
|
|
|
--target=$(GNU_TARGET_NAME) \
|
|
@@ -81,17 +95,17 @@ endef
|
|
|
# to install the libraries, and nothing more.
|
|
|
#
|
|
|
|
|
|
-EGLIBC_LIBS_LIB = \
|
|
|
+GLIBC_LIBS_LIB = \
|
|
|
ld*.so libc.so libcrypt.so libdl.so libgcc_s.so libm.so \
|
|
|
libnsl.so libpthread.so libresolv.so librt.so libutil.so \
|
|
|
libnss_files.so libnss_dns.so
|
|
|
|
|
|
ifeq ($(BR2_PACKAGE_GDB_SERVER),y)
|
|
|
-EGLIBC_LIBS_LIB += libthread_db.so
|
|
|
+GLIBC_LIBS_LIB += libthread_db.so
|
|
|
endif
|
|
|
|
|
|
-define EGLIBC_INSTALL_TARGET_CMDS
|
|
|
- for libs in $(EGLIBC_LIBS_LIB); do \
|
|
|
+define GLIBC_INSTALL_TARGET_CMDS
|
|
|
+ for libs in $(GLIBC_LIBS_LIB); do \
|
|
|
$(call copy_toolchain_lib_root,$(STAGING_DIR)/,,lib,$$libs,/lib) ; \
|
|
|
done
|
|
|
endef
|