]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - lfs/glibc
kernel: update 4.14.113
[ipfire-2.x.git] / lfs / glibc
index 67f13a3fb34138ff80c7d33971f112f2478cbd69..4530f2ddd6c3581ee8516401f404e07591419433 100644 (file)
--- a/lfs/glibc
+++ b/lfs/glibc
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
 
 include Config
 
-VER        = 2.25
+VER        = 2.28
 
 THISAPP    = glibc-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
-# Normal build or /tools build.
+# Normal build or $(TOOLS_DIR) build.
 #
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
   EXTRA_CONFIG = \
        --build=$(BUILDTARGET) \
        --prefix=/usr \
-       --libexecdir=/usr/lib/glibc
+       --libexecdir=/usr/lib/glibc \
+       --enable-stack-protector=strong
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = \
        --host=$(CROSSTARGET) \
        --build=$(BUILDTARGET) \
-       --prefix=/tools \
-       --with-headers=/tools/include \
+       --prefix=$(TOOLS_DIR) \
+       --with-headers=$(TOOLS_DIR)/include \
        libc_cv_forced_unwind=yes \
        libc_cv_c_cleanup=yes
 endif
@@ -53,29 +54,36 @@ endif
 # Enable some extra optimization for the glibc code
 CFLAGS = -O3 -DNDEBUG -fasynchronous-unwind-tables -fPIC -DPIC
 
-ifeq "$(MACHINE)" "armv7hl"
+ifeq "$(BUILD_ARCH)" "armv7hl"
        CFLAGS += -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard
 endif
 
-ifeq "$(MACHINE)" "i586"
-       CFLAGS += -march=i586 -mtune=generic -mno-tls-direct-seg-refs
+ifeq "$(BUILD_ARCH)" "i586"
+       CFLAGS += -march=i586 -mtune=generic -mindirect-branch=thunk -mfunction-return=thunk -mno-tls-direct-seg-refs
+endif
+
+ifeq "$(BUILD_ARCH)" "x86_64"
+       CFLAGS += -mindirect-branch=thunk -mfunction-return=thunk
 endif
 
 # Disable hardware FP for armv5tel
-ifeq "$(MACHINE)" "armv5tel"
+ifeq "$(BUILD_ARCH)" "armv5tel"
        EXTRA_CONFIG += \
                --without-fp
 endif
 
 # Add some general configuration flags
 EXTRA_CONFIG += \
+       --enable-obsolete-rpc \
        --disable-profile \
        --enable-kernel=3.2 \
        --enable-add-ons \
        --without-selinux \
        --enable-experimental-malloc \
        --enable-bind-now \
-       --enable-stack-protector=strong
+       --enable-obsolete-rpc \
+       --enable-obsolete-nsl \
+       --disable-nss-crypt
 
 ###############################################################################
 # Top-level Rules
@@ -85,7 +93,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 0c9f827298841dbf3bff3060f3d7f19c
+$(DL_FILE)_MD5 = c81d2388896379997bc359d4f2084239
 
 install : $(TARGET)
 
@@ -117,19 +125,23 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        @mkdir $(DIR_SRC)/glibc-build
 
-ifeq "$(ROOT)" ""
-ifeq "$(MACHINE_TYPE)" "arm"
-       cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.3 -o|' \
-               scripts/test-installation.pl
-else
-ifeq "$(MACHINE)" "x86_64"
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-localedef-no-archive.patch
+
+ifneq "$(TOOLCHAIN)" "1"
+ ifeq "$(BUILD_ARCH)" "x86_64"
        cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib64 -Wl,-dynamic-linker=/lib64/ld-linux-x86-64.so.2 -o|' \
                scripts/test-installation.pl
-else
+ endif
+
+ ifeq "$(BUILD_ARCH)" "i586"
        cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.2 -o|' \
                scripts/test-installation.pl
-endif
-endif
+ endif
+
+ ifeq "$(BUILD_ARCH)" "armv5tel"
+       cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.3 -o|' \
+               scripts/test-installation.pl
+ endif
 endif
 
        cd $(DIR_SRC)/glibc-build && \
@@ -139,17 +151,28 @@ endif
        cd $(DIR_SRC)/glibc-build && make PARALLELMFLAGS=$(MAKETUNING) \
                CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)"
 
+       cd $(DIR_APP) && sed '/test-installation/s@\$$(PERL)@echo not running@' -i Makefile
+
        cd $(DIR_SRC)/glibc-build && make install
 
-ifeq "$(ROOT)" ""
+ifneq "$(TOOLCHAIN)" "1"
        # Creating the locales
        mkdir -p /usr/lib/locale
        cd $(DIR_SRC)/glibc-build && make localedata/install-locales
 
        # Timezone data will be shipped by tzdata.
        rm -rfv /usr/share/zoneinfo
-else
-       ln -svf lib /tools/lib64
 endif
+
+ifeq "$(TOOLCHAIN)" "1"
+       # Test the linker in toolchain
+       cd $(DIR_APP) && echo "int main() { return 0; }" > dummy.c
+       cd $(DIR_APP) && $(CROSSTARGET)-gcc dummy.c -o dummy
+
+       # Must be using a runtime linker from $(TOOLS_DIR)
+       cd $(DIR_APP) && readelf -l dummy | grep "Requesting program interpreter: $(TOOLS_DIR)"
+       cd $(DIR_APP) && rm -vf dummy dummy.c
+endif
+
        @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build
        @$(POSTBUILD)