1################################################################################ 2# 3# musl 4# 5################################################################################ 6 7MUSL_VERSION = 1.2.2 8MUSL_SITE = http://www.musl-libc.org/releases 9MUSL_LICENSE = MIT 10MUSL_LICENSE_FILES = COPYRIGHT 11MUSL_CPE_ID_VENDOR = musl-libc 12 13# Before musl is configured, we must have the first stage 14# cross-compiler and the kernel headers 15MUSL_DEPENDENCIES = host-gcc-initial linux-headers 16 17# musl does not provide an implementation for sys/queue.h or sys/cdefs.h. 18# So, add the musl-compat-headers package that will install those files, 19# into the staging directory: 20# sys/queue.h: header from NetBSD 21# sys/cdefs.h: minimalist header bundled in Buildroot 22MUSL_DEPENDENCIES += musl-compat-headers 23 24# musl is part of the toolchain so disable the toolchain dependency 25MUSL_ADD_TOOLCHAIN_DEPENDENCY = NO 26 27MUSL_INSTALL_STAGING = YES 28 29# Thumb build is broken, build in ARM mode, since all architectures 30# that support Thumb1 also support ARM. 31ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y) 32MUSL_EXTRA_CFLAGS += -marm 33endif 34 35define MUSL_CONFIGURE_CMDS 36 (cd $(@D); \ 37 $(TARGET_CONFIGURE_OPTS) \ 38 CFLAGS="$(filter-out -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64,$(TARGET_CFLAGS)) $(MUSL_EXTRA_CFLAGS)" \ 39 CPPFLAGS="$(filter-out -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64,$(TARGET_CPPFLAGS))" \ 40 ./configure \ 41 --target=$(GNU_TARGET_NAME) \ 42 --host=$(GNU_TARGET_NAME) \ 43 --prefix=/usr \ 44 --libdir=/lib \ 45 --disable-gcc-wrapper \ 46 --enable-static \ 47 $(if $(BR2_STATIC_LIBS),--disable-shared,--enable-shared)) 48endef 49 50define MUSL_BUILD_CMDS 51 $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) 52endef 53 54define MUSL_INSTALL_STAGING_CMDS 55 $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ 56 DESTDIR=$(STAGING_DIR) install-libs install-tools install-headers 57endef 58 59define MUSL_INSTALL_TARGET_CMDS 60 $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ 61 DESTDIR=$(TARGET_DIR) install-libs 62 $(RM) $(addprefix $(TARGET_DIR)/lib/,crt1.o crtn.o crti.o rcrt1.o Scrt1.o) 63endef 64 65$(eval $(generic-package)) 66