Import buildroot 2016.02.01
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
From 5e9a78c8a839381add6faa61e196e6dad9143163 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Claveirole <thomas.claveirole@green-communications.fr>
|
||||
Date: Tue, 2 Feb 2016 12:13:09 +0100
|
||||
Subject: [PATCH] include/netdb.h: Do not define IDN-related flags.
|
||||
|
||||
getaddrinfo() does not implement IDN encoding, and always fail when
|
||||
provided an IDN flag (e.g., AI_IDN) with EAI_BADFLAGS. Some packages
|
||||
(such as the VLC media player) check for AI_IDN before they use it;
|
||||
providing an unimplemented AI_IDN in the libc makes these package
|
||||
fail. As a result they make calls to getaddrinfo() with AI_IDN that
|
||||
always fail while they could have made successful calls without AI_IDN
|
||||
instead.
|
||||
|
||||
Thus, do not define IDN flags: it is better not to compile rather than
|
||||
to compile a code that always fail.
|
||||
|
||||
Signed-off-by: Thomas Claveirole <thomas.claveirole@green-communications.fr>
|
||||
Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
|
||||
---
|
||||
include/netdb.h | 11 -----------
|
||||
1 file changed, 11 deletions(-)
|
||||
|
||||
diff --git a/include/netdb.h b/include/netdb.h
|
||||
index a636b5f..95abe95 100644
|
||||
--- a/include/netdb.h
|
||||
+++ b/include/netdb.h
|
||||
@@ -627,16 +627,6 @@ struct addrinfo
|
||||
# define AI_ALL 0x0010 /* Return IPv4 mapped and IPv6 addresses. */
|
||||
# define AI_ADDRCONFIG 0x0020 /* Use configuration of this host to choose
|
||||
returned address type.. */
|
||||
-# ifdef __USE_GNU
|
||||
-# define AI_IDN 0x0040 /* IDN encode input (assuming it is encoded
|
||||
- in the current locale's character set)
|
||||
- before looking it up. */
|
||||
-# define AI_CANONIDN 0x0080 /* Translate canonical name from IDN format. */
|
||||
-# define AI_IDN_ALLOW_UNASSIGNED 0x0100 /* Don't reject unassigned Unicode
|
||||
- code points. */
|
||||
-# define AI_IDN_USE_STD3_ASCII_RULES 0x0200 /* Validate strings according to
|
||||
- STD3 rules. */
|
||||
-# endif
|
||||
# define AI_NUMERICSERV 0x0400 /* Don't use name resolution. */
|
||||
|
||||
/* Error values for `getaddrinfo' function. */
|
||||
@@ -658,7 +648,6 @@ struct addrinfo
|
||||
# define EAI_NOTCANCELED -102 /* Request not canceled. */
|
||||
# define EAI_ALLDONE -103 /* All requests done. */
|
||||
# define EAI_INTR -104 /* Interrupted by a signal. */
|
||||
-# define EAI_IDN_ENCODE -105 /* IDN encoding failed. */
|
||||
# endif
|
||||
|
||||
# ifdef __USE_MISC
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
From b499fe614ac5b492fc0fdc6e1fbbeeb904674159 Mon Sep 17 00:00:00 2001
|
||||
From: Waldemar Brodkorb <wbx@uclibc-ng.org>
|
||||
Date: Wed, 3 Feb 2016 21:57:04 +0100
|
||||
Subject: [PATCH] mips: fix build if threads are disabled
|
||||
|
||||
Reported-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||
Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
|
||||
---
|
||||
libc/string/mips/memcpy.S | 4 ++--
|
||||
libc/string/mips/memset.S | 4 ++--
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libc/string/mips/memcpy.S b/libc/string/mips/memcpy.S
|
||||
index 3afdb2c..59f9f0a 100644
|
||||
--- a/libc/string/mips/memcpy.S
|
||||
+++ b/libc/string/mips/memcpy.S
|
||||
@@ -23,7 +23,7 @@
|
||||
# define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE
|
||||
#elif _LIBC
|
||||
# include <sysdep.h>
|
||||
-# include <regdef.h>
|
||||
+# include <sys/regdef.h>
|
||||
# include <sys/asm.h>
|
||||
# define PREFETCH_LOAD_HINT PREFETCH_HINT_LOAD_STREAMED
|
||||
# define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE
|
||||
@@ -33,7 +33,7 @@
|
||||
# define PREFETCH_LOAD_HINT PREFETCH_HINT_LOAD_STREAMED
|
||||
# define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE
|
||||
#else
|
||||
-# include <regdef.h>
|
||||
+# include <sys/regdef.h>
|
||||
# include <sys/asm.h>
|
||||
#endif
|
||||
|
||||
diff --git a/libc/string/mips/memset.S b/libc/string/mips/memset.S
|
||||
index ef8ab0b..43034ce 100644
|
||||
--- a/libc/string/mips/memset.S
|
||||
+++ b/libc/string/mips/memset.S
|
||||
@@ -21,7 +21,7 @@
|
||||
# define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE
|
||||
#elif _LIBC
|
||||
# include <sysdep.h>
|
||||
-# include <regdef.h>
|
||||
+# include <sys/regdef.h>
|
||||
# include <sys/asm.h>
|
||||
# define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE
|
||||
#elif defined _COMPILING_NEWLIB
|
||||
@@ -29,7 +29,7 @@
|
||||
# include "machine/regdef.h"
|
||||
# define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE
|
||||
#else
|
||||
-# include <regdef.h>
|
||||
+# include <sys/regdef.h>
|
||||
# include <sys/asm.h>
|
||||
#endif
|
||||
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
192
firmware/buildroot/package/uclibc/Config.in
Normal file
192
firmware/buildroot/package/uclibc/Config.in
Normal file
@@ -0,0 +1,192 @@
|
||||
if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
||||
|
||||
config BR2_PACKAGE_UCLIBC
|
||||
bool
|
||||
default y
|
||||
select BR2_PACKAGE_LINUX_HEADERS
|
||||
|
||||
comment "uClibc Options"
|
||||
|
||||
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_INET_RPC
|
||||
bool "Enable RPC support"
|
||||
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
help
|
||||
Enable this option if you want your toolchain to support
|
||||
RPC (needed for NFS, for example).
|
||||
|
||||
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
|
||||
help
|
||||
Enable this option if you want your toolchain to support
|
||||
localization and internationalization.
|
||||
|
||||
choice
|
||||
prompt "Thread library implementation"
|
||||
default BR2_PTHREADS_NATIVE
|
||||
help
|
||||
Use this option to select the thread library implementation
|
||||
that should be used in your toolchain.
|
||||
|
||||
config BR2_PTHREADS_NONE
|
||||
bool "none"
|
||||
|
||||
config BR2_PTHREADS
|
||||
bool "linuxthreads"
|
||||
select BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on BR2_m68k
|
||||
|
||||
config BR2_PTHREADS_OLD
|
||||
bool "linuxthreads (stable/old)"
|
||||
select BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on BR2_m68k || BR2_arm || BR2_armeb
|
||||
|
||||
config BR2_PTHREADS_NATIVE
|
||||
bool "Native POSIX Threading (NPTL)"
|
||||
select BR2_TOOLCHAIN_HAS_THREADS
|
||||
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
depends on !BR2_m68k && !BR2_x86_i386
|
||||
endchoice
|
||||
|
||||
config BR2_PTHREAD_DEBUG
|
||||
bool "Thread library debugging"
|
||||
depends on BR2_PTHREADS || BR2_PTHREADS_OLD || 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"
|
||||
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.
|
||||
|
||||
config BR2_UCLIBC_INSTALL_TEST_SUITE
|
||||
bool "Compile and install uClibc tests"
|
||||
select BR2_PACKAGE_MAKE
|
||||
depends on BR2_USE_MMU # make
|
||||
help
|
||||
Enabling this option will compile and install the uClibc test suite.
|
||||
This is useful if you want to check if the uClibc library is working
|
||||
for your architecture and/or help developing uClibc.
|
||||
|
||||
The test suite will be installed into /root/uClibc directory. To run
|
||||
the test suite enter the /root/uClibc/test directory and type
|
||||
"make UCLIBC_ONLY=1 CC=/bin/true check".
|
||||
|
||||
See the /root/uClibc/test/README for additional information.
|
||||
|
||||
This is not needed at all for normal builds, so you can safely say no
|
||||
if you do not plan to dig into your C library.
|
||||
|
||||
# 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 "mips" if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
|
||||
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
|
||||
|
||||
config BR2_UCLIBC_ARC_TYPE
|
||||
string
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "arc"
|
||||
default "ARC_CPU_700" if BR2_arc750d
|
||||
default "ARC_CPU_700" if BR2_arc770d
|
||||
default "ARC_CPU_HS" if BR2_archs38
|
||||
|
||||
config BR2_UCLIBC_ARM_BX
|
||||
bool
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "arm"
|
||||
default y if (BR2_ARM_CPU_HAS_THUMB || BR2_ARM_CPU_HAS_THUMB2)
|
||||
|
||||
config BR2_UCLIBC_MIPS_ABI
|
||||
string
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "mips"
|
||||
default "O32" if BR2_MIPS_OABI32
|
||||
default "N32" if BR2_MIPS_NABI32
|
||||
default "N64" if BR2_MIPS_NABI64
|
||||
|
||||
config BR2_UCLIBC_MIPS_ISA
|
||||
string
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "mips"
|
||||
default "MIPS32" if BR2_mips_32
|
||||
default "MIPS32R2" if BR2_mips_32r2
|
||||
default "MIPS64" if BR2_mips_64
|
||||
|
||||
config BR2_UCLIBC_SH_TYPE
|
||||
string
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "sh"
|
||||
default "SH2A" if BR2_sh2a
|
||||
default "SH4" if BR2_sh4 || BR2_sh4eb
|
||||
|
||||
config BR2_UCLIBC_SPARC_TYPE
|
||||
string
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "sparc"
|
||||
default "V7" if BR2_sparc_v7 || BR2_sparc_sparchfleon || BR2_sparc_sparcsfleon
|
||||
default "V8" if BR2_sparc_v8 || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleonv8
|
||||
|
||||
config BR2_UCLIBC_POWERPC_TYPE
|
||||
string
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "powerpc"
|
||||
default "CLASSIC" if !BR2_powerpc_8540 && !BR2_powerpc_8548
|
||||
default "E500" if BR2_powerpc_8540 || BR2_powerpc_8548
|
||||
|
||||
config BR2_UCLIBC_X86_TYPE
|
||||
string
|
||||
depends on BR2_UCLIBC_TARGET_ARCH = "i386"
|
||||
default "386" if BR2_x86_i386
|
||||
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
|
||||
|
||||
endif # BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
||||
41
firmware/buildroot/package/uclibc/uClibc-ng.config
Normal file
41
firmware/buildroot/package/uclibc/uClibc-ng.config
Normal file
@@ -0,0 +1,41 @@
|
||||
DO_C99_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
|
||||
MALLOC_GLIBC_COMPAT=y
|
||||
UCLIBC_HAS_OBSTACK=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_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_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_REGEX_OLD is not set
|
||||
# UCLIBC_HAS_FNMATCH_OLD is not set
|
||||
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
|
||||
2
firmware/buildroot/package/uclibc/uclibc.hash
Normal file
2
firmware/buildroot/package/uclibc/uclibc.hash
Normal file
@@ -0,0 +1,2 @@
|
||||
# From http://www.uclibc-ng.org/
|
||||
sha256 c238b300356b2638432e023076293f29935094108a2714ad1762b76015fae729 uClibc-ng-1.0.12.tar.xz
|
||||
463
firmware/buildroot/package/uclibc/uclibc.mk
Normal file
463
firmware/buildroot/package/uclibc/uclibc.mk
Normal file
@@ -0,0 +1,463 @@
|
||||
################################################################################
|
||||
#
|
||||
# uclibc
|
||||
#
|
||||
################################################################################
|
||||
|
||||
UCLIBC_VERSION = 1.0.12
|
||||
UCLIBC_SOURCE = uClibc-ng-$(UCLIBC_VERSION).tar.xz
|
||||
UCLIBC_SITE = http://downloads.uclibc-ng.org/releases/$(UCLIBC_VERSION)
|
||||
UCLIBC_LICENSE = LGPLv2.1+
|
||||
UCLIBC_LICENSE_FILES = COPYING.LIB
|
||||
UCLIBC_INSTALL_STAGING = YES
|
||||
|
||||
# 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_FILE = $(UCLIBC_CONFIG_FILE)
|
||||
UCLIBC_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_UCLIBC_CONFIG_FRAGMENT_FILES))
|
||||
|
||||
UCLIBC_KCONFIG_OPTS = \
|
||||
$(UCLIBC_MAKE_FLAGS) \
|
||||
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
|
||||
|
||||
#
|
||||
# ARC definitions
|
||||
#
|
||||
|
||||
ifeq ($(UCLIBC_TARGET_ARCH),arc)
|
||||
UCLIBC_ARC_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_ARC_TYPE))
|
||||
define UCLIBC_ARC_TYPE_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,$(UCLIBC_ARC_TYPE),$(@D)/.config)
|
||||
endef
|
||||
|
||||
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),$(@D)/.config)
|
||||
endef
|
||||
|
||||
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,$(@D)/.config)
|
||||
endef
|
||||
|
||||
# Thumb build is broken with threads, build in ARM mode
|
||||
ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB)$(BR2_TOOLCHAIN_HAS_THREADS),yy)
|
||||
UCLIBC_EXTRA_CFLAGS += -marm
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_UCLIBC_ARM_BX),y)
|
||||
define UCLIBC_ARM_BX_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,USE_BX,$(@D)/.config)
|
||||
endef
|
||||
else
|
||||
define UCLIBC_ARM_BX_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,USE_BX,$(@D)/.config)
|
||||
endef
|
||||
endif
|
||||
|
||||
endif # arm
|
||||
|
||||
#
|
||||
# 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),$(@D)/.config)
|
||||
endef
|
||||
|
||||
UCLIBC_MIPS_ISA = CONFIG_MIPS_ISA_$(call qstrip,$(BR2_UCLIBC_MIPS_ISA))
|
||||
define UCLIBC_MIPS_ISA_CONFIG
|
||||
$(SED) '/CONFIG_MIPS_ISA_.*/d' $(@D)/.config
|
||||
$(call KCONFIG_ENABLE_OPT,$(UCLIBC_MIPS_ISA),$(@D)/.config)
|
||||
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),$(@D)/.config)
|
||||
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),$(@D)/.config)
|
||||
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,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,CONFIG_E500,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,$(UCLIBC_POWERPC_TYPE),$(@D)/.config)
|
||||
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),$(@D)/.config)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# Endianness
|
||||
#
|
||||
|
||||
ifeq ($(call qstrip,$(BR2_ENDIAN)),BIG)
|
||||
define UCLIBC_ENDIAN_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,ARCH_BIG_ENDIAN,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,ARCH_WANTS_BIG_ENDIAN,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,ARCH_LITTLE_ENDIAN,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,ARCH_WANTS_LITTLE_ENDIAN,$(@D)/.config)
|
||||
endef
|
||||
else
|
||||
define UCLIBC_ENDIAN_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,ARCH_LITTLE_ENDIAN,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,ARCH_WANTS_LITTLE_ENDIAN,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,ARCH_BIG_ENDIAN,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,ARCH_WANTS_BIG_ENDIAN,$(@D)/.config)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# Largefile
|
||||
#
|
||||
|
||||
define UCLIBC_LARGEFILE_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_LFS,$(@D)/.config)
|
||||
endef
|
||||
|
||||
#
|
||||
# MMU
|
||||
#
|
||||
|
||||
ifeq ($(BR2_USE_MMU),y)
|
||||
define UCLIBC_MMU_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,ARCH_USE_MMU,$(@D)/.config)
|
||||
endef
|
||||
else
|
||||
define UCLIBC_MMU_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,ARCH_USE_MMU,$(@D)/.config)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# IPv6
|
||||
#
|
||||
|
||||
UCLIBC_IPV6_CONFIG = $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_IPV6,$(@D)/.config)
|
||||
|
||||
#
|
||||
# RPC
|
||||
#
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_BUILDROOT_INET_RPC),y)
|
||||
define UCLIBC_RPC_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_RPC,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FULL_RPC,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_REENTRANT_RPC,$(@D)/.config)
|
||||
endef
|
||||
else
|
||||
define UCLIBC_RPC_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_RPC,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_FULL_RPC,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_REENTRANT_RPC,$(@D)/.config)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# soft-float
|
||||
#
|
||||
|
||||
ifeq ($(BR2_SOFT_FLOAT),y)
|
||||
define UCLIBC_FLOAT_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_FPU,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FLOATS,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,DO_C99_MATH,$(@D)/.config)
|
||||
endef
|
||||
else
|
||||
define UCLIBC_FLOAT_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FPU,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FLOATS,$(@D)/.config)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# SSP
|
||||
#
|
||||
ifeq ($(BR2_TOOLCHAIN_BUILDROOT_USE_SSP),y)
|
||||
define UCLIBC_SSP_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_SSP,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_BUILD_SSP,$(@D)/.config)
|
||||
endef
|
||||
else
|
||||
define UCLIBC_SSP_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_SSP,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_BUILD_SSP,$(@D)/.config)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# Threads
|
||||
#
|
||||
ifeq ($(BR2_PTHREADS_NONE),y)
|
||||
define UCLIBC_THREAD_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,LINUXTHREADS,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,LINUXTHREADS_OLD,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS_NATIVE,$(@D)/.config)
|
||||
endef
|
||||
else ifeq ($(BR2_PTHREADS),y)
|
||||
define UCLIBC_THREAD_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,LINUXTHREADS_NEW,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,LINUXTHREADS_OLD,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS_NATIVE,$(@D)/.config)
|
||||
endef
|
||||
else ifeq ($(BR2_PTHREADS_OLD),y)
|
||||
define UCLIBC_THREAD_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,LINUXTHREADS_NEW,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,LINUXTHREADS_OLD,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS_NATIVE,$(@D)/.config)
|
||||
endef
|
||||
else ifeq ($(BR2_PTHREADS_NATIVE),y)
|
||||
define UCLIBC_THREAD_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,LINUXTHREADS_NEW,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,LINUXTHREADS_OLD,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS_NATIVE,$(@D)/.config)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# Thread debug
|
||||
#
|
||||
|
||||
ifeq ($(BR2_PTHREAD_DEBUG),y)
|
||||
UCLIBC_THREAD_DEBUG_CONFIG = $(call KCONFIG_ENABLE_OPT,PTHREADS_DEBUG_SUPPORT,$(@D)/.config)
|
||||
else
|
||||
UCLIBC_THREAD_DEBUG_CONFIG = $(call KCONFIG_DISABLE_OPT,PTHREADS_DEBUG_SUPPORT,$(@D)/.config)
|
||||
endif
|
||||
|
||||
#
|
||||
# Locale
|
||||
#
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LOCALE),y)
|
||||
define UCLIBC_LOCALE_CONFIG
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_LOCALE,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_BUILD_ALL_LOCALE,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_BUILD_MINIMAL_LOCALE,$(@D)/.config)
|
||||
$(call KCONFIG_SET_OPT,UCLIBC_BUILD_MINIMAL_LOCALES,"$(UCLIBC_LOCALES)",$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_PREGENERATED_LOCALE_DATA,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,DOWNLOAD_PREGENERATED_LOCALE_DATA,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_XLOCALE,$(@D)/.config)
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_GLIBC_DIGIT_GROUPING,$(@D)/.config)
|
||||
endef
|
||||
else
|
||||
define UCLIBC_LOCALE_CONFIG
|
||||
$(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_LOCALE,$(@D)/.config)
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# wchar
|
||||
#
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
|
||||
UCLIBC_WCHAR_CONFIG = $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_WCHAR,$(@D)/.config)
|
||||
else
|
||||
UCLIBC_WCHAR_CONFIG = $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_WCHAR,$(@D)/.config)
|
||||
endif
|
||||
|
||||
#
|
||||
# static/shared libs
|
||||
#
|
||||
|
||||
ifeq ($(BR2_STATIC_LIBS),y)
|
||||
UCLIBC_SHARED_LIBS_CONFIG = $(call KCONFIG_DISABLE_OPT,HAVE_SHARED,$(@D)/.config)
|
||||
else
|
||||
UCLIBC_SHARED_LIBS_CONFIG = $(call KCONFIG_ENABLE_OPT,HAVE_SHARED,$(@D)/.config)
|
||||
endif
|
||||
|
||||
#
|
||||
# Commands
|
||||
#
|
||||
|
||||
UCLIBC_MAKE_FLAGS = \
|
||||
ARCH="$(UCLIBC_TARGET_ARCH)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
UCLIBC_EXTRA_CFLAGS="$(UCLIBC_EXTRA_CFLAGS) $(TARGET_ABI)" \
|
||||
HOSTCC="$(HOSTCC)"
|
||||
|
||||
define UCLIBC_KCONFIG_FIXUP_CMDS
|
||||
$(call KCONFIG_SET_OPT,CROSS_COMPILER_PREFIX,"$(TARGET_CROSS)",$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,TARGET_$(UCLIBC_TARGET_ARCH),$(@D)/.config)
|
||||
$(call KCONFIG_SET_OPT,TARGET_ARCH,"$(UCLIBC_TARGET_ARCH)",$(@D)/.config)
|
||||
$(call KCONFIG_SET_OPT,KERNEL_HEADERS,"$(LINUX_HEADERS_DIR)/usr/include",$(@D)/.config)
|
||||
$(call KCONFIG_SET_OPT,RUNTIME_PREFIX,"/",$(@D)/.config)
|
||||
$(call KCONFIG_SET_OPT,DEVEL_PREFIX,"/usr",$(@D)/.config)
|
||||
$(call KCONFIG_SET_OPT,SHARED_LIB_LOADER_PREFIX,"/lib",$(@D)/.config)
|
||||
$(UCLIBC_MMU_CONFIG)
|
||||
$(UCLIBC_ARC_TYPE_CONFIG)
|
||||
$(UCLIBC_ARC_PAGE_SIZE_CONFIG)
|
||||
$(UCLIBC_ARM_ABI_CONFIG)
|
||||
$(UCLIBC_ARM_BX_CONFIG)
|
||||
$(UCLIBC_MIPS_ABI_CONFIG)
|
||||
$(UCLIBC_MIPS_ISA_CONFIG)
|
||||
$(UCLIBC_SH_TYPE_CONFIG)
|
||||
$(UCLIBC_SPARC_TYPE_CONFIG)
|
||||
$(UCLIBC_POWERPC_TYPE_CONFIG)
|
||||
$(UCLIBC_X86_TYPE_CONFIG)
|
||||
$(UCLIBC_ENDIAN_CONFIG)
|
||||
$(UCLIBC_LARGEFILE_CONFIG)
|
||||
$(UCLIBC_IPV6_CONFIG)
|
||||
$(UCLIBC_RPC_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
|
||||
|
||||
ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y)
|
||||
define UCLIBC_BUILD_TEST_SUITE
|
||||
$(MAKE1) -C $(@D) \
|
||||
$(UCLIBC_MAKE_FLAGS) \
|
||||
TEST_INSTALLED_UCLIBC=1 \
|
||||
UCLIBC_ONLY=1 \
|
||||
test_compile
|
||||
endef
|
||||
endif
|
||||
|
||||
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_TEST_SUITE),y)
|
||||
define UCLIBC_INSTALL_TEST_SUITE
|
||||
mkdir -p $(TARGET_DIR)/root/uClibc
|
||||
cp -rdpf $(@D)/test $(TARGET_DIR)/root/uClibc
|
||||
$(INSTALL) -D -m 0644 $(@D)/Rules.mak $(TARGET_DIR)/root/uClibc/Rules.mak
|
||||
$(INSTALL) -D -m 0644 $(@D)/.config $(TARGET_DIR)/root/uClibc/.config
|
||||
endef
|
||||
endif
|
||||
|
||||
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)
|
||||
$(UCLIBC_BUILD_TEST_SUITE)
|
||||
$(UCLIBC_INSTALL_TEST_SUITE)
|
||||
$(UCLIBC_INSTALL_LDSO_SYMLINKS)
|
||||
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)/usr/bin/ldd
|
||||
ln -sf ldd $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldd
|
||||
$(INSTALL) -D -m 0755 $(@D)/utils/ldconfig.host $(HOST_DIR)/usr/bin/ldconfig
|
||||
ln -sf ldconfig $(HOST_DIR)/usr/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