X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=blobdiff_plain;f=lfs%2Fglibc;h=4530f2ddd6c3581ee8516401f404e07591419433;hp=67f13a3fb34138ff80c7d33971f112f2478cbd69;hb=2caca412176a5de89fa4b359cf33766be552c447;hpb=de1928cca7aef30c0aadb2cd6fecbb7bd07790f9 diff --git a/lfs/glibc b/lfs/glibc index 67f13a3fb3..4530f2ddd6 100644 --- a/lfs/glibc +++ b/lfs/glibc @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2016 IPFire Team # +# Copyright (C) 2007-2018 IPFire Team # # # # 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 # @@ -24,28 +24,29 @@ 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)