initial buildroot for linux 5.15
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
||||
|
||||
comment "uClibc Options"
|
||||
|
||||
config BR2_PACKAGE_UCLIBC
|
||||
bool
|
||||
default y
|
||||
select BR2_PACKAGE_LINUX_HEADERS
|
||||
|
||||
config BR2_UCLIBC_CONFIG
|
||||
string "uClibc configuration file to use?"
|
||||
default "package/uclibc/uClibc-ng.config"
|
||||
help
|
||||
Some people may wish to use their own modified uClibc
|
||||
configuration file and will specify their config file
|
||||
location with this option. See also docs/README in this
|
||||
package. If unsure, use the default.
|
||||
|
||||
config BR2_UCLIBC_CONFIG_FRAGMENT_FILES
|
||||
string "Additional uClibc configuration fragment files"
|
||||
help
|
||||
A space-separated list of configuration fragment files, that
|
||||
will be merged to the main uClibc configuration file.
|
||||
|
||||
config BR2_TOOLCHAIN_BUILDROOT_WCHAR
|
||||
bool "Enable WCHAR support"
|
||||
select BR2_USE_WCHAR
|
||||
help
|
||||
Enable this option if you want your toolchain to support
|
||||
wide characters (i.e characters longer than 8 bits, needed
|
||||
for locale support).
|
||||
|
||||
config BR2_TOOLCHAIN_BUILDROOT_LOCALE
|
||||
bool "Enable toolchain locale/i18n support"
|
||||
select BR2_TOOLCHAIN_BUILDROOT_WCHAR
|
||||
select BR2_ENABLE_LOCALE
|
||||
select BR2_NEEDS_HOST_UTF8_LOCALE
|
||||
help
|
||||
Enable this option if you want your toolchain to support
|
||||
localization and internationalization.
|
||||
|
||||
choice
|
||||
prompt "Thread library implementation"
|
||||
help
|
||||
Use this option to select the thread library implementation
|
||||
that should be used in your toolchain.
|
||||
|
||||
config BR2_PTHREADS_NATIVE
|
||||
bool "Native POSIX Threading (NPTL)"
|
||||
depends on BR2_USE_MMU
|
||||
select BR2_TOOLCHAIN_HAS_THREADS
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
|
||||
config BR2_PTHREADS
|
||||
bool "linuxthreads"
|
||||
depends on !BR2_aarch64 && !BR2_aarch64_be
|
||||
depends on !BR2_RISCV_64
|
||||
select BR2_TOOLCHAIN_HAS_THREADS
|
||||
|
||||
config BR2_PTHREADS_NONE
|
||||
bool "none"
|
||||
|
||||
endchoice
|
||||
|
||||
config BR2_PTHREAD_DEBUG
|
||||
bool "Thread library debugging"
|
||||
depends on BR2_PTHREADS || BR2_PTHREADS_NATIVE
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
||||
help
|
||||
Build the thread library with debugging enabled.
|
||||
|
||||
config BR2_TOOLCHAIN_BUILDROOT_USE_SSP
|
||||
bool "Enable stack protection support"
|
||||
depends on BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI
|
||||
select BR2_TOOLCHAIN_HAS_SSP
|
||||
help
|
||||
Enable stack smashing protection support using GCCs
|
||||
-fstack-protector-all option in uClibc.
|
||||
|
||||
See
|
||||
http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
|
||||
for details.
|
||||
|
||||
config BR2_UCLIBC_INSTALL_UTILS
|
||||
bool "Compile and install uClibc utilities"
|
||||
default y
|
||||
help
|
||||
Enabling this option will compile and install the getconf,
|
||||
ldconfig and ldd uClibc utilities for the target.
|
||||
|
||||
You can save ~32 KiB in target space by disabling them since
|
||||
they're normally not needed.
|
||||
|
||||
# Mapping from the Buildroot architecture configuration options to the
|
||||
# uClibc architecture names.
|
||||
config BR2_UCLIBC_TARGET_ARCH
|
||||
string
|
||||
default "arc" if BR2_arcle || BR2_arceb
|
||||
default "arm" if BR2_arm || BR2_armeb
|
||||
default "m68k" if BR2_m68k
|
||||
default "microblaze" if BR2_microblaze
|
||||
default "mips" if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
|
||||
default "or1k" if BR2_or1k
|
||||
default "powerpc" if BR2_powerpc
|
||||
default "sh" if BR2_sh
|
||||
default "sparc" if BR2_sparc
|
||||
default "xtensa" if BR2_xtensa
|
||||
default "i386" if BR2_i386
|
||||
default "x86_64" if BR2_x86_64
|
||||
default "riscv64" if BR2_RISCV_64
|
||||
|
||||
config BR2_UCLIBC_MIPS_ABI
|
||||
string
|
||||
default "O32" if BR2_MIPS_OABI32
|
||||
default "N32" if BR2_MIPS_NABI32
|
||||
default "N64" if BR2_MIPS_NABI64
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "mips"
|
||||
|
||||
config BR2_UCLIBC_MIPS_NAN
|
||||
string
|
||||
default "LEGACY" if BR2_MIPS_NAN_LEGACY
|
||||
default "2008" if BR2_MIPS_NAN_2008
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "mips"
|
||||
|
||||
config BR2_UCLIBC_SH_TYPE
|
||||
string
|
||||
default "SH2A" if BR2_sh2a
|
||||
default "SH4" if BR2_sh4 || BR2_sh4eb
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "sh"
|
||||
|
||||
config BR2_UCLIBC_SPARC_TYPE
|
||||
string
|
||||
default "V7" if BR2_sparc_v7 || BR2_sparc_sparchfleon || BR2_sparc_sparcsfleon
|
||||
default "V8" if BR2_sparc_v8 || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleonv8
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "sparc"
|
||||
|
||||
config BR2_UCLIBC_POWERPC_TYPE
|
||||
string
|
||||
default "CLASSIC" if !BR2_powerpc_8540 && !BR2_powerpc_8548
|
||||
default "E500" if BR2_powerpc_8540 || BR2_powerpc_8548
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "powerpc"
|
||||
|
||||
config BR2_UCLIBC_X86_TYPE
|
||||
string
|
||||
default "486" if BR2_x86_i486
|
||||
default "586" if BR2_x86_i586
|
||||
default "586MMX" if BR2_x86_pentium_mmx
|
||||
default "686" if BR2_x86_i686 || BR2_x86_pentiumpro
|
||||
default "PENTIUMII" if BR2_x86_pentium2
|
||||
default "PENTIUMIII" if BR2_x86_pentium3
|
||||
default "PENTIUM4" if BR2_x86_pentium4 || BR2_x86_pentium_m || \
|
||||
BR2_x86_nocona || BR2_x86_core2 || BR2_x86_corei7
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "i386"
|
||||
|
||||
endif # BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
||||
@@ -0,0 +1,42 @@
|
||||
DO_C99_MATH=y
|
||||
DO_XSI_MATH=y
|
||||
KERNEL_HEADERS="/usr/src/linux/include"
|
||||
# LDSO_CACHE_SUPPORT is not set
|
||||
# UCLIBC_STATIC_LDCONFIG is not set
|
||||
LDSO_RUNPATH=y
|
||||
LDSO_RUNPATH_OF_EXECUTABLE=y
|
||||
UCLIBC_HAS_UTMPX=y
|
||||
UCLIBC_HAS_UTMP=y
|
||||
UCLIBC_SUSV2_LEGACY=y
|
||||
UCLIBC_SUSV3_LEGACY=y
|
||||
UCLIBC_HAS_CONTEXT_FUNCS=y
|
||||
UCLIBC_SUSV4_LEGACY=y
|
||||
UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
|
||||
UCLIBC_HAS_GETPT=y
|
||||
UCLIBC_HAS_LIBUTIL=y
|
||||
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
|
||||
UCLIBC_HAS_SHA256_CRYPT_IMPL=y
|
||||
UCLIBC_HAS_SHA512_CRYPT_IMPL=y
|
||||
UCLIBC_USE_NETLINK=y
|
||||
UCLIBC_SUPPORT_AI_ADDRCONFIG=y
|
||||
UCLIBC_HAS_RESOLVER_SUPPORT=y
|
||||
UCLIBC_HAS_LIBRESOLV_STUB=y
|
||||
UCLIBC_HAS_LIBNSL_STUB=y
|
||||
UCLIBC_HAS_CTYPE_CHECKED=y
|
||||
UCLIBC_HAS_LIBINTL=y
|
||||
UCLIBC_HAS_HEXADECIMAL_FLOATS=y
|
||||
UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
|
||||
UCLIBC_HAS_STDIO_GETC_MACRO=y
|
||||
UCLIBC_HAS_STDIO_PUTC_MACRO=y
|
||||
UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
|
||||
UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
|
||||
UCLIBC_HAS_PRINTF_M_SPEC=y
|
||||
UCLIBC_HAS_WORDEXP=y
|
||||
UCLIBC_HAS_NFTW=y
|
||||
UCLIBC_HAS_FTW=y
|
||||
UCLIBC_HAS_GNU_GLOB=y
|
||||
RUNTIME_PREFIX="/"
|
||||
DEVEL_PREFIX="/usr/"
|
||||
UCLIBC_HAS_SSP=y
|
||||
UCLIBC_BUILD_NOW=y
|
||||
# DOSTRIP is not set
|
||||
@@ -0,0 +1,4 @@
|
||||
# From https://downloads.uclibc-ng.org/releases/1.0.38/uClibc-ng-1.0.39.tar.xz.sha256
|
||||
sha256 cb089dfe14867a38f222d6428e85d0e1191dcbb66dd9b1a671484f6bc7c81920 uClibc-ng-1.0.39.tar.xz
|
||||
# Locally calculated
|
||||
sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING.LIB
|
||||
@@ -0,0 +1,461 @@
|
||||
################################################################################
|
||||
#
|
||||
# uclibc
|
||||
#
|
||||
################################################################################
|
||||
|
||||
UCLIBC_VERSION = 1.0.39
|
||||
UCLIBC_SOURCE = uClibc-ng-$(UCLIBC_VERSION).tar.xz
|
||||
UCLIBC_SITE = https://downloads.uclibc-ng.org/releases/$(UCLIBC_VERSION)
|
||||
UCLIBC_LICENSE = LGPL-2.1+
|
||||
UCLIBC_LICENSE_FILES = COPYING.LIB
|
||||
UCLIBC_INSTALL_STAGING = YES
|
||||
UCLIBC_CPE_ID_VENDOR = uclibc-ng_project
|
||||
UCLIBC_CPE_ID_PRODUCT = uclibc-ng
|
||||
|
||||
# uclibc is part of the toolchain so disable the toolchain dependency
|
||||
UCLIBC_ADD_TOOLCHAIN_DEPENDENCY = NO
|
||||
|
||||
# Before uClibc is configured, we must have the first stage
|
||||
# cross-compiler and the kernel headers
|
||||
UCLIBC_DEPENDENCIES = host-gcc-initial linux-headers
|
||||
|
||||
# specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config
|
||||
# setting.
|
||||
ifndef UCLIBC_CONFIG_FILE
|
||||
UCLIBC_CONFIG_FILE = $(call qstrip,$(BR2_UCLIBC_CONFIG))
|
||||
endif
|
||||
|
||||
UCLIBC_KCONFIG_EDITORS = menuconfig nconfig
|
||||
UCLIBC_KCONFIG_FILE = $(UCLIBC_CONFIG_FILE)
|
||||
UCLIBC_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_UCLIBC_CONFIG_FRAGMENT_FILES))
|
||||
|
||||
# UCLIBC_MAKE_FLAGS set HOSTCC to the default HOSTCC, which may be
|
||||
# wrapped with ccache. However, host-ccache may not already be built
|
||||
# and installed when we apply the configuration, so we override that
|
||||
# to use the non-ccached host compiler.
|
||||
UCLIBC_KCONFIG_OPTS = \
|
||||
$(UCLIBC_MAKE_FLAGS) \
|
||||
HOSTCC="$(HOSTCC_NOCCACHE)" \
|
||||
PREFIX=$(STAGING_DIR) \
|
||||
DEVEL_PREFIX=/usr/ \
|
||||
RUNTIME_PREFIX=$(STAGING_DIR)/
|
||||
|
||||
UCLIBC_TARGET_ARCH = $(call qstrip,$(BR2_UCLIBC_TARGET_ARCH))
|
||||
|
||||
UCLIBC_GENERATE_LOCALES = $(call qstrip,$(BR2_GENERATE_LOCALE))
|
||||
|
||||
ifeq ($(UCLIBC_GENERATE_LOCALES),)
|
||||
# We need at least one locale
|
||||
UCLIBC_LOCALES = en_US
|
||||
else
|
||||
# Strip out the encoding part of locale names, if any
|
||||
UCLIBC_LOCALES = \
|
||||
$(foreach locale,$(UCLIBC_GENERATE_LOCALES),\
|
||||
$(firstword $(subst .,$(space),$(locale))))
|
||||
endif
|
||||
|
||||
# noMMU binary formats
|
||||
ifeq ($(BR2_BINFMT_FLAT_ONE),y)
|
||||
define UCLIBC_BINFMT_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_FLAT)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_SHARED_FLAT)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF)
|
||||
endef
|
||||
endif
|
||||
ifeq ($(BR2_BINFMT_FLAT_SHARED),y)
|
||||
define UCLIBC_BINFMT_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_SHARED_FLAT)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# ARC definitions
|
||||
#
|
||||
|
||||
ifeq ($(UCLIBC_TARGET_ARCH),arc)
|
||||
UCLIBC_ARC_PAGE_SIZE = CONFIG_ARC_PAGE_SIZE_$(call qstrip,$(BR2_ARC_PAGE_SIZE))
|
||||
define UCLIBC_ARC_PAGE_SIZE_CONFIG
|
||||
$(SED) '/CONFIG_ARC_PAGE_SIZE_*/d' $(@D)/.config
|
||||
$(call KCONFIG_ENABLE_OPT,$(UCLIBC_ARC_PAGE_SIZE))
|
||||
endef
|
||||
|
||||
ifeq ($(BR2_ARC_ATOMIC_EXT),)
|
||||
define UCLIBC_ARC_ATOMICS_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,CONFIG_ARC_HAS_ATOMICS)
|
||||
endef
|
||||
endif
|
||||
|
||||
endif # arc
|
||||
|
||||
#
|
||||
# ARM definitions
|
||||
#
|
||||
|
||||
ifeq ($(UCLIBC_TARGET_ARCH),arm)
|
||||
define UCLIBC_ARM_ABI_CONFIG
|
||||
$(SED) '/CONFIG_ARM_.ABI/d' $(@D)/.config
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_ARM_EABI)
|
||||
endef
|
||||
|
||||
ifeq ($(BR2_BINFMT_FLAT),y)
|
||||
define UCLIBC_ARM_BINFMT_FLAT
|
||||
$(call KCONFIG_DISABLE_OPT,DOPIC)
|
||||
endef
|
||||
endif
|
||||
|
||||
# context functions are written with ARM instructions. Therefore, if
|
||||
# we are using a Thumb2-only platform (i.e, Cortex-M), they must be
|
||||
# disabled. Thumb1 platforms are not a problem, since they all also
|
||||
# support the ARM instructions.
|
||||
ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB2):$(BR2_ARM_CPU_HAS_ARM),y:)
|
||||
define UCLIBC_ARM_NO_CONTEXT_FUNCS
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_CONTEXT_FUNCS)
|
||||
endef
|
||||
endif
|
||||
|
||||
endif # arm
|
||||
|
||||
#
|
||||
# m68k/coldfire definitions
|
||||
#
|
||||
|
||||
ifeq ($(UCLIBC_TARGET_ARCH),m68k)
|
||||
|
||||
# disable DOPIC for flat without separate data
|
||||
ifeq ($(BR2_BINFMT_FLAT_ONE),y)
|
||||
define UCLIBC_M68K_BINFMT_FLAT
|
||||
$(call KCONFIG_DISABLE_OPT,DOPIC)
|
||||
endef
|
||||
endif
|
||||
|
||||
endif # m68k/coldfire
|
||||
|
||||
#
|
||||
# MIPS definitions
|
||||
#
|
||||
|
||||
ifeq ($(UCLIBC_TARGET_ARCH),mips)
|
||||
UCLIBC_MIPS_ABI = CONFIG_MIPS_$(call qstrip,$(BR2_UCLIBC_MIPS_ABI))_ABI
|
||||
define UCLIBC_MIPS_ABI_CONFIG
|
||||
$(SED) '/CONFIG_MIPS_[NO].._ABI/d' $(@D)/.config
|
||||
$(call KCONFIG_ENABLE_OPT,$(UCLIBC_MIPS_ABI))
|
||||
endef
|
||||
|
||||
UCLIBC_MIPS_NAN = CONFIG_MIPS_NAN_$(call qstrip,$(BR2_UCLIBC_MIPS_NAN))
|
||||
define UCLIBC_MIPS_NAN_CONFIG
|
||||
$(SED) '/CONFIG_MIPS_NAN_.*/d' $(@D)/.config
|
||||
$(call KCONFIG_ENABLE_OPT,$(UCLIBC_MIPS_NAN))
|
||||
endef
|
||||
endif # mips
|
||||
|
||||
#
|
||||
# SH definitions
|
||||
#
|
||||
|
||||
ifeq ($(UCLIBC_TARGET_ARCH),sh)
|
||||
UCLIBC_SH_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_SH_TYPE))
|
||||
define UCLIBC_SH_TYPE_CONFIG
|
||||
$(SED) '/CONFIG_SH[234A]*/d' $(@D)/.config
|
||||
$(call KCONFIG_ENABLE_OPT,$(UCLIBC_SH_TYPE))
|
||||
endef
|
||||
endif # sh
|
||||
|
||||
#
|
||||
# SPARC definitions
|
||||
#
|
||||
|
||||
ifeq ($(UCLIBC_TARGET_ARCH),sparc)
|
||||
UCLIBC_SPARC_TYPE = CONFIG_SPARC_$(call qstrip,$(BR2_UCLIBC_SPARC_TYPE))
|
||||
define UCLIBC_SPARC_TYPE_CONFIG
|
||||
$(SED) 's/^\(CONFIG_[^_]*[_]*SPARC[^=]*\)=.*/# \1 is not set/g' \
|
||||
$(@D)/.config
|
||||
$(call KCONFIG_ENABLE_OPT,$(UCLIBC_SPARC_TYPE))
|
||||
endef
|
||||
endif # sparc
|
||||
|
||||
#
|
||||
# PowerPC definitions
|
||||
#
|
||||
|
||||
ifeq ($(UCLIBC_TARGET_ARCH),powerpc)
|
||||
UCLIBC_POWERPC_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_POWERPC_TYPE))
|
||||
define UCLIBC_POWERPC_TYPE_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,CONFIG_GENERIC)
|
||||
$(call KCONFIG_DISABLE_OPT,CONFIG_E500)
|
||||
$(call KCONFIG_ENABLE_OPT,$(UCLIBC_POWERPC_TYPE))
|
||||
endef
|
||||
endif # powerpc
|
||||
|
||||
#
|
||||
# x86 definitions
|
||||
#
|
||||
ifeq ($(UCLIBC_TARGET_ARCH),i386)
|
||||
UCLIBC_X86_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_X86_TYPE))
|
||||
define UCLIBC_X86_TYPE_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,$(UCLIBC_X86_TYPE))
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# Debug
|
||||
#
|
||||
ifeq ($(BR2_ENABLE_DEBUG),y)
|
||||
define UCLIBC_DEBUG_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,DODEBUG)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# Endianness
|
||||
#
|
||||
|
||||
ifeq ($(call qstrip,$(BR2_ENDIAN)),BIG)
|
||||
define UCLIBC_ENDIAN_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,ARCH_BIG_ENDIAN)
|
||||
$(call KCONFIG_ENABLE_OPT,ARCH_WANTS_BIG_ENDIAN)
|
||||
$(call KCONFIG_DISABLE_OPT,ARCH_LITTLE_ENDIAN)
|
||||
$(call KCONFIG_DISABLE_OPT,ARCH_WANTS_LITTLE_ENDIAN)
|
||||
endef
|
||||
else
|
||||
define UCLIBC_ENDIAN_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,ARCH_LITTLE_ENDIAN)
|
||||
$(call KCONFIG_ENABLE_OPT,ARCH_WANTS_LITTLE_ENDIAN)
|
||||
$(call KCONFIG_DISABLE_OPT,ARCH_BIG_ENDIAN)
|
||||
$(call KCONFIG_DISABLE_OPT,ARCH_WANTS_BIG_ENDIAN)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# MMU
|
||||
#
|
||||
|
||||
ifeq ($(BR2_USE_MMU),y)
|
||||
define UCLIBC_MMU_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,ARCH_HAS_MMU)
|
||||
$(call KCONFIG_ENABLE_OPT,ARCH_USE_MMU)
|
||||
endef
|
||||
else
|
||||
define UCLIBC_MMU_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,ARCH_HAS_MMU)
|
||||
$(call KCONFIG_DISABLE_OPT,ARCH_USE_MMU)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# IPv6
|
||||
#
|
||||
|
||||
UCLIBC_IPV6_CONFIG = $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_IPV6)
|
||||
|
||||
#
|
||||
# soft-float
|
||||
#
|
||||
|
||||
ifeq ($(BR2_SOFT_FLOAT),y)
|
||||
define UCLIBC_FLOAT_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_FPU)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FLOATS)
|
||||
$(call KCONFIG_ENABLE_OPT,DO_C99_MATH)
|
||||
endef
|
||||
else
|
||||
define UCLIBC_FLOAT_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FPU)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FLOATS)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# SSP
|
||||
#
|
||||
ifeq ($(BR2_TOOLCHAIN_BUILDROOT_USE_SSP),y)
|
||||
define UCLIBC_SSP_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_SSP)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_BUILD_SSP)
|
||||
endef
|
||||
else
|
||||
define UCLIBC_SSP_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_SSP)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_BUILD_SSP)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# Threads
|
||||
#
|
||||
ifeq ($(BR2_PTHREADS_NONE),y)
|
||||
define UCLIBC_THREAD_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_LINUXTHREADS)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS_NATIVE)
|
||||
endef
|
||||
else ifeq ($(BR2_PTHREADS),y)
|
||||
define UCLIBC_THREAD_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_LINUXTHREADS)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS_NATIVE)
|
||||
endef
|
||||
else ifeq ($(BR2_PTHREADS_NATIVE),y)
|
||||
define UCLIBC_THREAD_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_LINUXTHREADS)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS_NATIVE)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# Thread debug
|
||||
#
|
||||
|
||||
ifeq ($(BR2_PTHREAD_DEBUG),y)
|
||||
UCLIBC_THREAD_DEBUG_CONFIG = $(call KCONFIG_ENABLE_OPT,PTHREADS_DEBUG_SUPPORT)
|
||||
else
|
||||
UCLIBC_THREAD_DEBUG_CONFIG = $(call KCONFIG_DISABLE_OPT,PTHREADS_DEBUG_SUPPORT)
|
||||
endif
|
||||
|
||||
#
|
||||
# Locale
|
||||
#
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LOCALE),y)
|
||||
define UCLIBC_LOCALE_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_LOCALE)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_BUILD_ALL_LOCALE)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_BUILD_MINIMAL_LOCALE)
|
||||
$(call KCONFIG_SET_OPT,UCLIBC_BUILD_MINIMAL_LOCALES,"$(UCLIBC_LOCALES)")
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_PREGENERATED_LOCALE_DATA)
|
||||
$(call KCONFIG_DISABLE_OPT,DOWNLOAD_PREGENERATED_LOCALE_DATA)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_XLOCALE)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_GLIBC_DIGIT_GROUPING)
|
||||
endef
|
||||
else
|
||||
define UCLIBC_LOCALE_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_LOCALE)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# wchar
|
||||
#
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
|
||||
UCLIBC_WCHAR_CONFIG = $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_WCHAR)
|
||||
else
|
||||
UCLIBC_WCHAR_CONFIG = $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_WCHAR)
|
||||
endif
|
||||
|
||||
#
|
||||
# static/shared libs
|
||||
#
|
||||
|
||||
ifeq ($(BR2_STATIC_LIBS),y)
|
||||
UCLIBC_SHARED_LIBS_CONFIG = $(call KCONFIG_DISABLE_OPT,HAVE_SHARED)
|
||||
else
|
||||
UCLIBC_SHARED_LIBS_CONFIG = $(call KCONFIG_ENABLE_OPT,HAVE_SHARED)
|
||||
endif
|
||||
|
||||
#
|
||||
# Commands
|
||||
#
|
||||
|
||||
UCLIBC_MAKE_FLAGS = \
|
||||
ARCH="$(UCLIBC_TARGET_ARCH)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
|
||||
HOSTCC="$(HOSTCC)"
|
||||
|
||||
define UCLIBC_KCONFIG_FIXUP_CMDS
|
||||
$(call KCONFIG_SET_OPT,CROSS_COMPILER_PREFIX,"$(TARGET_CROSS)")
|
||||
$(call KCONFIG_ENABLE_OPT,TARGET_$(UCLIBC_TARGET_ARCH))
|
||||
$(call KCONFIG_SET_OPT,TARGET_ARCH,"$(UCLIBC_TARGET_ARCH)")
|
||||
$(call KCONFIG_SET_OPT,KERNEL_HEADERS,"$(LINUX_HEADERS_DIR)/usr/include")
|
||||
$(call KCONFIG_SET_OPT,RUNTIME_PREFIX,"/")
|
||||
$(call KCONFIG_SET_OPT,DEVEL_PREFIX,"/usr")
|
||||
$(call KCONFIG_SET_OPT,SHARED_LIB_LOADER_PREFIX,"/lib")
|
||||
$(UCLIBC_MMU_CONFIG)
|
||||
$(UCLIBC_BINFMT_CONFIG)
|
||||
$(UCLIBC_ARC_PAGE_SIZE_CONFIG)
|
||||
$(UCLIBC_ARC_ATOMICS_CONFIG)
|
||||
$(UCLIBC_ARM_ABI_CONFIG)
|
||||
$(UCLIBC_ARM_BINFMT_FLAT)
|
||||
$(UCLIBC_ARM_NO_CONTEXT_FUNCS)
|
||||
$(UCLIBC_M68K_BINFMT_FLAT)
|
||||
$(UCLIBC_MIPS_ABI_CONFIG)
|
||||
$(UCLIBC_MIPS_NAN_CONFIG)
|
||||
$(UCLIBC_SH_TYPE_CONFIG)
|
||||
$(UCLIBC_SPARC_TYPE_CONFIG)
|
||||
$(UCLIBC_POWERPC_TYPE_CONFIG)
|
||||
$(UCLIBC_X86_TYPE_CONFIG)
|
||||
$(UCLIBC_DEBUG_CONFIG)
|
||||
$(UCLIBC_ENDIAN_CONFIG)
|
||||
$(UCLIBC_IPV6_CONFIG)
|
||||
$(UCLIBC_FLOAT_CONFIG)
|
||||
$(UCLIBC_SSP_CONFIG)
|
||||
$(UCLIBC_THREAD_CONFIG)
|
||||
$(UCLIBC_THREAD_DEBUG_CONFIG)
|
||||
$(UCLIBC_LOCALE_CONFIG)
|
||||
$(UCLIBC_WCHAR_CONFIG)
|
||||
$(UCLIBC_SHARED_LIBS_CONFIG)
|
||||
endef
|
||||
|
||||
define UCLIBC_BUILD_CMDS
|
||||
$(MAKE) -C $(@D) $(UCLIBC_MAKE_FLAGS) headers
|
||||
$(MAKE) -C $(@D) $(UCLIBC_MAKE_FLAGS)
|
||||
$(MAKE) -C $(@D)/utils \
|
||||
PREFIX=$(HOST_DIR) \
|
||||
HOSTCC="$(HOSTCC)" hostutils
|
||||
endef
|
||||
|
||||
ifeq ($(BR2_UCLIBC_INSTALL_UTILS),y)
|
||||
define UCLIBC_INSTALL_UTILS_TARGET
|
||||
$(MAKE1) -C $(@D) \
|
||||
CC="$(TARGET_CC)" CPP="$(TARGET_CPP)" LD="$(TARGET_LD)" \
|
||||
ARCH="$(UCLIBC_TARGET_ARCH)" \
|
||||
PREFIX=$(TARGET_DIR) \
|
||||
utils install_utils
|
||||
endef
|
||||
endif
|
||||
|
||||
define UCLIBC_INSTALL_TARGET_CMDS
|
||||
$(MAKE1) -C $(@D) \
|
||||
$(UCLIBC_MAKE_FLAGS) \
|
||||
PREFIX=$(TARGET_DIR) \
|
||||
DEVEL_PREFIX=/usr/ \
|
||||
RUNTIME_PREFIX=/ \
|
||||
install_runtime
|
||||
$(UCLIBC_INSTALL_UTILS_TARGET)
|
||||
endef
|
||||
|
||||
# STATIC has no ld* tools, only getconf
|
||||
ifeq ($(BR2_STATIC_LIBS),)
|
||||
define UCLIBC_INSTALL_UTILS_STAGING
|
||||
$(INSTALL) -D -m 0755 $(@D)/utils/ldd.host $(HOST_DIR)/bin/ldd
|
||||
ln -sf ldd $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-ldd
|
||||
$(INSTALL) -D -m 0755 $(@D)/utils/ldconfig.host $(HOST_DIR)/bin/ldconfig
|
||||
ln -sf ldconfig $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-ldconfig
|
||||
endef
|
||||
endif
|
||||
|
||||
define UCLIBC_INSTALL_STAGING_CMDS
|
||||
$(MAKE1) -C $(@D) \
|
||||
$(UCLIBC_MAKE_FLAGS) \
|
||||
PREFIX=$(STAGING_DIR) \
|
||||
DEVEL_PREFIX=/usr/ \
|
||||
RUNTIME_PREFIX=/ \
|
||||
install_runtime install_dev
|
||||
$(UCLIBC_INSTALL_UTILS_STAGING)
|
||||
endef
|
||||
|
||||
# Checks to give errors that the user can understand
|
||||
# Must be before we call to kconfig-package
|
||||
ifeq ($(BR2_PACKAGE_UCLIBC)$(BR_BUILDING),yy)
|
||||
ifeq ($(call qstrip,$(BR2_UCLIBC_CONFIG)),)
|
||||
$(error No uClibc configuration file specified, check your BR2_UCLIBC_CONFIG setting)
|
||||
endif
|
||||
endif
|
||||
|
||||
$(eval $(kconfig-package))
|
||||
Reference in New Issue
Block a user