openwrt/toolchain/musl/common.mk

59 lines
1.6 KiB
Makefile
Raw Normal View History

#
# Copyright (C) 2012-2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/target.mk
PKG_NAME:=musl
toolchain/musl: update to version 1.1.22 new features: - priority-inheritance mutexes - membarrier syscall, pre-registration to use it, fallback emulation - header-level support for new linux features in 4.19, 4.20, 5.0 major internal changes: - complete, async-safe view of all existent threads as global list - robust __synccall based on new thread list - new dynamic TLS is installed synchronously at dlopen - TLSDESC resolver functions no longer make bad ABI assumptions to call C - resolved shared library dependencies are now recorded compatibility & conformance: - dependency-order shared library constructor execution - sigaltstack no longer rejects SS_AUTODISARM, future flags - FILE is now a complete (dummy) type in pre-C11 feature profiles - setvbuf reports failure on invalid arguments - TSVTX is exposed unconditionally in tar.h - multithreaded set*id() no longer depends on /proc - key slot reuse after pthread_key_delete no longer depends on /proc bugs fixed: - failures in multithreaded set*id() with concurrent thread creation/exit - interposed free was called from invalid/inconsistent contexts - freeaddrinfo performed invalid free of some partial results lists - dlsym dependency order search had false negatives and false positives - dn_skipname gave wrong results for labels with 8-bit content - dcngettext clobbered errno, often breaking printing of error messages - sscanf read past end of buffer under certain conditions (1.1.21 regression) - pthread_key_create spuriously failed under race condition (1.1.21 regression) - fdopendir wrongly succeeded with O_PATH file descriptors - gets behaved incorrectly in presence of null bytes - namespace violations in c11 tsd and mutex function dependencies - incorrect prototype for makecontext (unimplemented) arch-specfic bugs fixed: - s390x had wrong values for POSIX_FADV_DONTNEED/_NOREUSE Extensively tested on dozens of devices, covering most popular architectures. Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> Signed-off-by: Dainis Jonitis <dainis.jonitis@ubnt.com> Signed-off-by: Roman Yeryomin <roman@advem.lv>
2019-04-12 14:25:49 +00:00
PKG_VERSION:=1.1.22
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
toolchain/musl: update to version 1.1.22 new features: - priority-inheritance mutexes - membarrier syscall, pre-registration to use it, fallback emulation - header-level support for new linux features in 4.19, 4.20, 5.0 major internal changes: - complete, async-safe view of all existent threads as global list - robust __synccall based on new thread list - new dynamic TLS is installed synchronously at dlopen - TLSDESC resolver functions no longer make bad ABI assumptions to call C - resolved shared library dependencies are now recorded compatibility & conformance: - dependency-order shared library constructor execution - sigaltstack no longer rejects SS_AUTODISARM, future flags - FILE is now a complete (dummy) type in pre-C11 feature profiles - setvbuf reports failure on invalid arguments - TSVTX is exposed unconditionally in tar.h - multithreaded set*id() no longer depends on /proc - key slot reuse after pthread_key_delete no longer depends on /proc bugs fixed: - failures in multithreaded set*id() with concurrent thread creation/exit - interposed free was called from invalid/inconsistent contexts - freeaddrinfo performed invalid free of some partial results lists - dlsym dependency order search had false negatives and false positives - dn_skipname gave wrong results for labels with 8-bit content - dcngettext clobbered errno, often breaking printing of error messages - sscanf read past end of buffer under certain conditions (1.1.21 regression) - pthread_key_create spuriously failed under race condition (1.1.21 regression) - fdopendir wrongly succeeded with O_PATH file descriptors - gets behaved incorrectly in presence of null bytes - namespace violations in c11 tsd and mutex function dependencies - incorrect prototype for makecontext (unimplemented) arch-specfic bugs fixed: - s390x had wrong values for POSIX_FADV_DONTNEED/_NOREUSE Extensively tested on dozens of devices, covering most popular architectures. Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> Signed-off-by: Dainis Jonitis <dainis.jonitis@ubnt.com> Signed-off-by: Roman Yeryomin <roman@advem.lv>
2019-04-12 14:25:49 +00:00
PKG_SOURCE_VERSION:=e97681d6f2c44bf5fa9ecdd30607cb63c780062e
PKG_MIRROR_HASH:=a6655418698735e19fe1c2deffb7335bbda634385c636206dd3cd5c8194a3ce0
PKG_SOURCE_URL:=https://git.musl-libc.org/git/musl
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
LIBC_SO_VERSION:=$(PKG_VERSION)
PATCH_DIR:=$(PATH_PREFIX)/patches
BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN)
HOST_BUILD_PREFIX:=$(TOOLCHAIN_DIR)
HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/hardening.mk
TARGET_CFLAGS:= $(filter-out -O%,$(TARGET_CFLAGS))
TARGET_CFLAGS+= $(if $(CONFIG_MUSL_DISABLE_CRYPT_SIZE_HACK),,-DCRYPT_SIZE_HACK)
MUSL_CONFIGURE:= \
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="$(TARGET_CFLAGS)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
$(HOST_BUILD_DIR)/configure \
--prefix=/ \
--host=$(GNU_HOST_NAME) \
--target=$(REAL_GNU_TARGET_NAME) \
--disable-gcc-wrapper \
--enable-debug \
--enable-optimize
define Host/Configure
ln -snf $(PKG_NAME)-$(PKG_VERSION) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)
( cd $(HOST_BUILD_DIR); rm -f config.cache; \
$(MUSL_CONFIGURE) \
);
endef
define Host/Clean
rm -rf \
$(HOST_BUILD_DIR) \
$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) \
$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev
endef