diff options
Diffstat (limited to 'extra/Configs')
| -rw-r--r-- | extra/Configs/Config.aarch64 | 2 | ||||
| -rw-r--r-- | extra/Configs/Config.arm | 1 | ||||
| -rw-r--r-- | extra/Configs/Config.csky | 1 | ||||
| -rw-r--r-- | extra/Configs/Config.i386 | 1 | ||||
| -rw-r--r-- | extra/Configs/Config.in | 162 | ||||
| -rw-r--r-- | extra/Configs/Config.in.arch | 46 | ||||
| -rw-r--r-- | extra/Configs/Config.kvx | 37 | ||||
| -rw-r--r-- | extra/Configs/Config.mips | 1 | ||||
| -rw-r--r-- | extra/Configs/Config.riscv32 | 14 | ||||
| -rw-r--r-- | extra/Configs/Config.riscv64 | 1 | ||||
| -rwxr-xr-x[-rw-r--r--] | extra/Configs/Config.x86_64 | 1 | ||||
| -rw-r--r-- | extra/Configs/Config.xtensa | 3 | ||||
| -rw-r--r-- | extra/Configs/defconfigs/kvx/defconfig | 1 | 
13 files changed, 239 insertions, 32 deletions
| diff --git a/extra/Configs/Config.aarch64 b/extra/Configs/Config.aarch64 index cf1ce3b79..6074878f2 100644 --- a/extra/Configs/Config.aarch64 +++ b/extra/Configs/Config.aarch64 @@ -12,6 +12,8 @@ config FORCE_OPTIONS_FOR_ARCH  	default y  	select ARCH_ANY_ENDIAN  	select ARCH_HAS_MMU +	select ARCH_USE_MMU +	select ARCH_VDSO_SUPPORT  	select UCLIBC_HAS_FPU  choice diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm index 0d02e3f10..ea8ab4895 100644 --- a/extra/Configs/Config.arm +++ b/extra/Configs/Config.arm @@ -13,6 +13,7 @@ config FORCE_OPTIONS_FOR_ARCH  	select ARCH_ANY_ENDIAN  	select ARCH_HAS_UCONTEXT  	select ARCH_HAS_DEPRECATED_SYSCALLS +	select ARCH_VDSO_SUPPORT  config CONFIG_ARM_EABI  	bool "Build for EABI" diff --git a/extra/Configs/Config.csky b/extra/Configs/Config.csky index 3173ce91f..f5dc6832b 100644 --- a/extra/Configs/Config.csky +++ b/extra/Configs/Config.csky @@ -6,7 +6,6 @@ config FORCE_OPTIONS_FOR_ARCH  	bool  	default y  	select ARCH_ANY_ENDIAN -	select ARCH_HAS_DEPRECATED_SYSCALLS  	select ARCH_USE_MMU  	select ARCH_HAS_MMU diff --git a/extra/Configs/Config.i386 b/extra/Configs/Config.i386 index c928ac1a2..c2a9a6e93 100644 --- a/extra/Configs/Config.i386 +++ b/extra/Configs/Config.i386 @@ -14,6 +14,7 @@ config FORCE_OPTIONS_FOR_ARCH  	select ARCH_HAS_MMU  	select ARCH_HAS_UCONTEXT  	select ARCH_HAS_DEPRECATED_SYSCALLS +	select ARCH_VDSO_SUPPORT  choice  	prompt "Target x86 Processor Family" diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index e062086ac..454b6ddb8 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -28,6 +28,7 @@ choice  	default TARGET_hppa if DESIRED_TARGET_ARCH = "hppa"  	default TARGET_i386 if DESIRED_TARGET_ARCH = "i386"  	default TARGET_ia64 if DESIRED_TARGET_ARCH = "ia64" +	default TARGET_kvx if DESIRED_TARGET_ARCH = "kvx"  	default TARGET_lm32 if DESIRED_TARGET_ARCH = "lm32"  	default TARGET_m68k if DESIRED_TARGET_ARCH = "m68k"  	default TARGET_metag if DESIRED_TARGET_ARCH = "metag" @@ -38,6 +39,7 @@ choice  	default TARGET_or1k if DESIRED_TARGET_ARCH = "or1k"  	default TARGET_powerpc if DESIRED_TARGET_ARCH = "powerpc"  	default TARGET_riscv64 if DESIRED_TARGET_ARCH = "riscv64" +	default TARGET_riscv32 if DESIRED_TARGET_ARCH = "riscv32"  	default TARGET_sh if DESIRED_TARGET_ARCH = "sh"  	default TARGET_sparc if DESIRED_TARGET_ARCH = "sparc"  	default TARGET_sparc64 if DESIRED_TARGET_ARCH = "sparc64" @@ -91,6 +93,9 @@ config TARGET_i386  config TARGET_ia64  	bool "ia64" +config TARGET_kvx +	bool "kvx" +  config TARGET_lm32  	bool "lm32" @@ -121,6 +126,9 @@ config TARGET_powerpc  config TARGET_riscv64  	bool "riscv64" +config TARGET_riscv32 +	bool "riscv32" +  config TARGET_sh  	bool "superh" @@ -141,6 +149,27 @@ config TARGET_xtensa  endchoice +config TARGET_LDSO_NAME +	string +	default "ld64-uClibc" if TARGET_ia64 +	default "ld64-uClibc" if TARGET_powerpc64 +	default "ld64-uClibc" if TARGET_sparc64 +	default "ld64-uClibc" if TARGET_x86_64 +	default "ld64-uClibc" if TARGET_kvx +	default "ld64-uClibc" if CONFIG_MIPS_N64_ABI +	default "ld-uClibc" + +config TARGET_ARCH_BITS +	int +	default 64 if TARGET_aarch64 +	default 64 if TARGET_ia64 +	default 64 if TARGET_powerpc64 +	default 64 if TARGET_riscv64 +	default 64 if TARGET_sparc64 +	default 64 if TARGET_x86_64 +	default 64 if TARGET_kvx +	default 64 if CONFIG_MIPS_N64_ABI +	default 32  menu "Target Architecture Features and Options" @@ -192,6 +221,10 @@ if TARGET_ia64  source "extra/Configs/Config.ia64"  endif +if TARGET_kvx +source "extra/Configs/Config.kvx" +endif +  if TARGET_lm32  source "extra/Configs/Config.lm32"  endif @@ -232,6 +265,10 @@ if TARGET_riscv64  source "extra/Configs/Config.riscv64"  endif +if TARGET_riscv32 +source "extra/Configs/Config.riscv32" +endif +  if TARGET_sh  source "extra/Configs/Config.sh"  endif @@ -293,6 +330,15 @@ config DOPIC  	  If you wish to build all of uClibc as PIC objects, then answer Y here.  	  If you are unsure, then you should answer N. +config STATIC_PIE +	bool "Add support for Static Position Independent Executables (PIE)" +	default n +	depends on DOPIC && !UCLIBC_FORMAT_FDPIC_ELF && \ +		(TARGET_aarch64 || TARGET_arm || TARGET_i386 || \ +		 TARGET_m68k || TARGET_mips || TARGET_powerpc || \ +		 TARGET_riscv32 || TARGET_riscv64 || TARGET_x86_64 \ +		|| TARGET_xtensa) +  config ARCH_HAS_NO_SHARED  	bool @@ -303,9 +349,13 @@ config ARCH_HAS_NO_LDSO  config ARCH_HAS_UCONTEXT  	bool +config HAVE_LDSO +	bool +  config HAVE_SHARED  	bool "Enable shared libraries"  	depends on !ARCH_HAS_NO_SHARED +	select HAVE_LDSO  	default y  	help  	  If you wish to build uClibc with support for shared libraries then @@ -412,6 +462,22 @@ config LDSO_PRELINK_SUPPORT  	  time. It also is able to load and handle prelinked libraries and  	  binaries at runtime. +config ARCH_VDSO_SUPPORT +	bool +	 +config VDSO_SUPPORT +	bool "Dynamic linker vDSO support" +	depends on ARCH_VDSO_SUPPORT +	help +	  Enable this option to support vDSO loading + +	  vDSO provides access to some kernel function without a systemcall +	  if provided by the kernel + +	  most archs support gettimeofday() and clock_gettime() + +	  vDSO loading can be disabled via VDSO_DISABLE environment variable +  config UCLIBC_STATIC_LDCONFIG  	bool "Link ldconfig statically"  	depends on HAVE_SHARED @@ -479,7 +545,7 @@ config LDSO_LD_LIBRARY_PATH  	  If unsure, simply say Y here.  config UCLIBC_CTOR_DTOR -	bool +	bool "Support global constructors and destructors"  	default y  	help  	  If you wish to build uClibc with support for global constructor @@ -497,7 +563,7 @@ config UCLIBC_CTOR_DTOR  config LDSO_GNU_HASH_SUPPORT  	bool "Enable GNU hash style support" -	depends on HAVE_SHARED +	depends on HAVE_SHARED && !TARGET_mips  	help  	  Newest binutils support a new hash style named GNU-hash. The dynamic  	  linker will use the new GNU-hash section (.gnu.hash) for symbol lookup @@ -549,7 +615,7 @@ config UCLIBC_HAS_THREADS_NATIVE  		   !TARGET_h8300 && \  		   !TARGET_hppa && \  		   !TARGET_ia64 && \ -		   (ARCH_USE_MMU || TARGET_arm) +		   (ARCH_USE_MMU || TARGET_arm || TARGET_xtensa)  	help  	  If you want to compile uClibc with NPTL support, then answer Y. @@ -583,6 +649,15 @@ config PTHREADS_DEBUG_SUPPORT  	  If you are doing development and want to debug applications using  	  uClibc's pthread library, answer Y.  Otherwise, answer N. +config PTHREADS_STACK_DEFAULT_SIZE +	int "Default thread stack size" +	default 4194304 if TARGET_alpha # 4 MiB +	default 4194304 if TARGET_powerpc # 4 MiB +	default 2097152 # 2 MiB +	help +	  Set the default thread stack size. This option is useful on MMU-less +	  systems where the stack size is fixed and the default stack size may +	  be excessively large and waste memory.  config UCLIBC_HAS_SYSLOG  	bool "Syslog support" @@ -949,6 +1024,27 @@ config UCLIBC_FALLBACK_TO_ETC_LOCALTIME  	  Most people will answer Y. +config UCLIBC_USE_TIME64 +	bool "Use *time64 syscalls instead of 32bit ones (if possible)" +	depends on TARGET_arc                            || \ +		   TARGET_arm                            || \ +		   TARGET_csky                           || \ +		   TARGET_i386                           || \ +		   TARGET_m68k                           || \ +		   TARGET_microblaze                     || \ +		   (TARGET_mips && !CONFIG_MIPS_N64_ABI) || \ +		   TARGET_or1k                           || \ +		   TARGET_powerpc                        || \ +		   TARGET_riscv32                        || \ +		   TARGET_sparc                          || \ +		   TARGET_sh                             || \ +		   TARGET_xtensa +	# TODO: add support for other architectures +	default y + +	help +	  Replace 32bit syscalls to their 64/time64 analog if possible. +  endmenu  menu "Advanced Library Settings" @@ -1035,6 +1131,14 @@ config UCLIBC_HAS_OBSOLETE_BSD_SIGNAL  	  If unsure, say N. +config UCLIBC_HAS_BSD_B64_NTOP_B64_PTON +	bool "Support b64_ntop(), b64_pton() (bsd-compat)" +	help +	  Answer Y if you need additional BSD compatibility +          (e.g. for openbsd-netcat). + +	  Most people will say N. +  config UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL  	bool "SYSV obsolete signal functions"  	help @@ -1327,6 +1431,57 @@ config UCLIBC_HAS_RESOLVER_SUPPORT  	  ns_name_pack, ns_name_compress, ns_name_skip, dn_skipname,  	  ns_get16, ns_get32, ns_put16, ns_put32 +choice +	prompt "DNS Query ID generation" +	default UCLIBC_DNSRAND_MODE_PRNGPLUS +	help +	  Control how successive dns query ids' are generated during +	  dns lookup. + +config UCLIBC_DNSRAND_MODE_URANDOM +	bool "urandom" +	help +	  "urandom" uses /dev/urandom available under many unix flavours +	  to generate dns query id. This can generate good random ids, +	  by dipping into the entropy pool maintained by the system. +	  However this is relatively slow compared to the other options, +	  as it may involve cryptographic operations internally and +	  kernel-userspace handshake. + +config UCLIBC_DNSRAND_MODE_CLOCK +	bool "clock" +	depends on UCLIBC_HAS_REALTIME +	help +	  "clock" uses CLOCK_REALTIME of the system to generate plausibly +	  random dns query id. Systems require to have clock source with +	  nanosec granularity mapped to this clock id for this to generate +	  plausibly random values. However has processor and io performances +	  improve in future, its effectiveness can get impacted. + +config UCLIBC_DNSRAND_MODE_PRNGPLUS +	bool "prngplus" +	help +	  "prngplus" uses random prng available within uclibc, to indirectly +	  generate the dns query id. This tries to provide a good balance +	  between speed and randomness to an extent. It periodically reseeds +	  the prng using random value generated from either the urandom or +	  else the clock, if either of them is available. Additionally applies +	  transform (one way, if possible) on internal generated random values. +	  These make it difficult to infer internal state of prng from unbroken +	  sequences of exposed random values. +	  This is the default. + +config UCLIBC_DNSRAND_MODE_SIMPLECOUNTER +	bool "simplecounter" +	help +	  "simplecounter" uses a simple counter to generate dns query id. +	  This is a very simple logic and can be subjected to dns poison +	  attack relatively easily. +	  It is recommended to avoid this option. + +endchoice + +  endif @@ -2217,6 +2372,7 @@ config SUPPORT_LD_DEBUG  	    nofixups      never fixes up jump relocations  	    bindings      displays the resolve processing (function calls);  	                  detail shows the relocation patch +	    vdso          display vdso symbol table processing  	    all           Enable everything!  	  The additional environment variable: diff --git a/extra/Configs/Config.in.arch b/extra/Configs/Config.in.arch index 91b639493..24c0db157 100644 --- a/extra/Configs/Config.in.arch +++ b/extra/Configs/Config.in.arch @@ -10,9 +10,17 @@  if !ARCH_USE_MMU  choice  	prompt "Target File Format" +config UCLIBC_FORMAT_ELF +	bool "ELF (using ELF_FDPIC loader)" +	depends on !ARCH_USE_MMU && (TARGET_arm || TARGET_m68k || \ +				     TARGET_riscv32 || TARGET_riscv64) +	select DOPIC +	select STATIC_PIE +	select ARCH_HAS_NO_SHARED +	select HAVE_LDSO  config UCLIBC_FORMAT_FDPIC_ELF  	bool "FDPIC ELF" -	depends on !ARCH_USE_MMU && (TARGET_bfin || TARGET_frv || TARGET_arm) +	depends on !ARCH_USE_MMU && (TARGET_bfin || TARGET_frv || TARGET_arm || TARGET_xtensa)  	select DOPIC  config UCLIBC_FORMAT_DSBT_ELF  	bool "DBST ELF" @@ -26,13 +34,6 @@ config UCLIBC_FORMAT_FLAT_SEP_DATA  	bool "STATIC FLAT (sep-data)"  	depends on !ARCH_USE_MMU && !TARGET_frv  	select ARCH_HAS_NO_LDSO -config UCLIBC_FORMAT_SHARED_FLAT -	bool "SHARED FLAT" -	depends on !ARCH_USE_MMU && !TARGET_frv -	select ARCH_HAS_NO_LDSO -	help -	  Pick this one if you are using uClinux and wish to build -	  uClibc as a flat-format shared library.  endchoice  endif  if ARCH_USE_MMU @@ -47,24 +48,6 @@ config ARCH_HAS_DEPRECATED_SYSCALLS  	  this symbol controls whether there is support for these threading libraries  	  or not. -config UCLIBC_SHARED_FLAT_ID -	int "Shared library ID" -	default 1 -	depends on UCLIBC_FORMAT_SHARED_FLAT -	help -	  When using flat shared libraries, every library has a unique -	  system-wide identifier.  Identifier 0 is reserved for -	  executables and true shared libraries have identifiers -	  starting at 1.  The maximum shared library identifier is -	  determined by the kernel and is usually 3.  Shared library -	  N must be available on the target system as "/lib/libN.so". - -	  When a shared C library is used, it usually has identifier 1, -	  but you can use this option to select a different identifier -	  if you need to. - - -  #  # Endian Format  # @@ -181,9 +164,20 @@ config UCLIBC_HAS_FENV  	bool "Enable C99 Floating-point environment"  	depends on UCLIBC_HAS_FLOATS  	depends on TARGET_i386 || \ +		   TARGET_aarch64 || \ +		   TARGET_arc || \ +		   TARGET_arm || \ +		   TARGET_csky || \ +		   TARGET_m68k || \  		   TARGET_metag || \ +		   TARGET_mips || \  		   TARGET_nds32 || \ +		   TARGET_or1k || \  		   (TARGET_powerpc && CONFIG_E500) || \ +		   TARGET_riscv32 || \ +		   TARGET_riscv64 || \ +		   (TARGET_sh && (CONFIG_SH4 || CONFIG_SH4A)) || \ +		   TARGET_sparc || \  		   TARGET_x86_64  	help  	  If you want the uClibc math library to contain the C99 floating diff --git a/extra/Configs/Config.kvx b/extra/Configs/Config.kvx new file mode 100644 index 000000000..4d8152ab9 --- /dev/null +++ b/extra/Configs/Config.kvx @@ -0,0 +1,37 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config TARGET_ARCH +	string +	default "kvx" + +choice +	prompt "Target architecture variant" +	help +		Select CPU variant to use + +config CONFIG_KVX_COOLIDGE_V1 +        bool "Coolidge V1" + +config CONFIG_KVX_COOLIDGE_V2 +        bool "Coolidge V2" + +endchoice + +config TARGET_MARCH +	string +	default "kv3-1" if CONFIG_KVX_COOLIDGE_V1 +	default "kv3-2" if CONFIG_KVX_COOLIDGE_V2 + +config FORCE_OPTIONS_FOR_ARCH +	bool +	default y +	select ARCH_LITTLE_ENDIAN +        select ARCH_HAS_MMU +	select ARCH_HAS_UCONTEXT +	select UCLIBC_HAS_FPU +	select UCLIBC_HAS_FENV +	select UCLIBC_HAS_WCHAR +	select DO_C99_MATH diff --git a/extra/Configs/Config.mips b/extra/Configs/Config.mips index 8137d8be4..14b784fcc 100644 --- a/extra/Configs/Config.mips +++ b/extra/Configs/Config.mips @@ -13,6 +13,7 @@ config FORCE_OPTIONS_FOR_ARCH  	select ARCH_ANY_ENDIAN  	select ARCH_HAS_UCONTEXT  	select ARCH_HAS_DEPRECATED_SYSCALLS +	select ARCH_VDSO_SUPPORT  choice  	prompt "Target ABI" diff --git a/extra/Configs/Config.riscv32 b/extra/Configs/Config.riscv32 new file mode 100644 index 000000000..304d30f70 --- /dev/null +++ b/extra/Configs/Config.riscv32 @@ -0,0 +1,14 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config TARGET_ARCH +	string +	default "riscv32" + +config FORCE_OPTIONS_FOR_ARCH +	bool +	default y +	select ARCH_LITTLE_ENDIAN +	select ARCH_HAS_MMU diff --git a/extra/Configs/Config.riscv64 b/extra/Configs/Config.riscv64 index 7d0136a2b..f1e8511ee 100644 --- a/extra/Configs/Config.riscv64 +++ b/extra/Configs/Config.riscv64 @@ -12,4 +12,3 @@ config FORCE_OPTIONS_FOR_ARCH  	default y  	select ARCH_LITTLE_ENDIAN  	select ARCH_HAS_MMU -	select ARCH_HAS_NO_LDSO diff --git a/extra/Configs/Config.x86_64 b/extra/Configs/Config.x86_64 index 317a5007f..73c0e13a5 100644..100755 --- a/extra/Configs/Config.x86_64 +++ b/extra/Configs/Config.x86_64 @@ -14,3 +14,4 @@ config FORCE_OPTIONS_FOR_ARCH  	select ARCH_HAS_MMU  	select ARCH_HAS_UCONTEXT  	select ARCH_HAS_DEPRECATED_SYSCALLS +	select ARCH_VDSO_SUPPORT diff --git a/extra/Configs/Config.xtensa b/extra/Configs/Config.xtensa index 3ee8817ba..7316c542d 100644 --- a/extra/Configs/Config.xtensa +++ b/extra/Configs/Config.xtensa @@ -10,5 +10,6 @@ config TARGET_ARCH  config FORCE_OPTIONS_FOR_ARCH  	bool  	default y -	select ARCH_HAS_DEPRECATED_SYSCALLS  	select ARCH_ANY_ENDIAN +	select ARCH_HAS_DEPRECATED_SYSCALLS +	select ARCH_HAS_UCONTEXT diff --git a/extra/Configs/defconfigs/kvx/defconfig b/extra/Configs/defconfigs/kvx/defconfig new file mode 100644 index 000000000..c80e6ce8e --- /dev/null +++ b/extra/Configs/defconfigs/kvx/defconfig @@ -0,0 +1 @@ +TARGET_kvx=y | 
