###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 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.35
THISAPP = glibc-$(VER)
-DL_FILE = $(THISAPP).tar.gz
+DL_FILE = $(THISAPP).tar.xz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
--host=$(CROSSTARGET) \
--build=$(BUILDTARGET) \
--prefix=$(TOOLS_DIR) \
- --with-headers=$(TOOLS_DIR)/include \
- libc_cv_forced_unwind=yes \
- libc_cv_c_cleanup=yes
+ --with-headers=$(TOOLS_DIR)/include
endif
-# Enable some extra optimization for the glibc code
-CFLAGS = -O3 -DNDEBUG -fasynchronous-unwind-tables -fPIC -DPIC
-
-ifeq "$(BUILD_ARCH)" "armv7hl"
- CFLAGS += -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard
-endif
-
-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 "$(BUILD_ARCH)" "armv5tel"
- EXTRA_CONFIG += \
- --without-fp
+ifeq "$(BUILD_ARCH)" "aarch64"
+ CFLAGS += -Wno-error=maybe-uninitialized
endif
# Add some general configuration flags
EXTRA_CONFIG += \
- --enable-obsolete-rpc \
--disable-profile \
- --enable-kernel=3.2 \
+ --enable-kernel=4.14.0 \
--enable-add-ons \
--without-selinux \
--enable-experimental-malloc \
- --enable-bind-now
+ --enable-bind-now \
+ --disable-crypt
+
+ifeq "$(BUILD_ARCH)" "x86_64"
+ EXTRA_CONFIG += --enable-cet
+endif
+
+ifeq "$(BUILD_ARCH)" "aarch64"
+ EXTRA_CONFIG += --enable-memory-tagging
+endif
###############################################################################
# Top-level Rules
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 0c9f827298841dbf3bff3060f3d7f19c
+$(DL_FILE)_BLAKE2 = 623c728884f070cd87ffeb9203f74206197c52405ac9bc44f3dd519a3468b8e8ae2536c883e5d17d94417dbd1e91775de2e674314e4ff7424f9720026d6b7063
install : $(TARGET)
download :$(patsubst %,$(DIR_DL)/%,$(objects))
-md5 : $(subst %,%_MD5,$(objects))
+b2 : $(subst %,%_BLAKE2,$(objects))
###############################################################################
-# Downloading, checking, md5sum
+# Downloading, checking, b2sum
###############################################################################
$(patsubst %,$(DIR_CHK)/%,$(objects)) :
$(patsubst %,$(DIR_DL)/%,$(objects)) :
@$(LOAD)
-$(subst %,%_MD5,$(objects)) :
- @$(MD5)
+$(subst %,%_BLAKE2,$(objects)) :
+ @$(B2SUM)
###############################################################################
# Installation Details
@rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
@mkdir $(DIR_SRC)/glibc-build
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-2.25-gcc-7.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-localedef-no-archive.patch
ifneq "$(TOOLCHAIN)" "1"
scripts/test-installation.pl
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
-
- ifeq "$(BUILD_ARCH)" "armv5tel"
+ ifeq "$(BUILD_ARCH)" "armv6l"
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
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
ifneq "$(TOOLCHAIN)" "1"
# Creating the locales
mkdir -p /usr/lib/locale
- cd $(DIR_SRC)/glibc-build && make localedata/install-locales
+ cd $(DIR_SRC)/glibc-build && make localedata/install-locales $(MAKETUNING)
# Timezone data will be shipped by tzdata.
rm -rfv /usr/share/zoneinfo