summaryrefslogtreecommitdiff
path: root/extra/Configs/Config.in
diff options
context:
space:
mode:
Diffstat (limited to 'extra/Configs/Config.in')
-rw-r--r--extra/Configs/Config.in143
1 files changed, 141 insertions, 2 deletions
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index a06a17864..b814449b4 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -39,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"
@@ -125,6 +126,9 @@ config TARGET_powerpc
config TARGET_riscv64
bool "riscv64"
+config TARGET_riscv32
+ bool "riscv32"
+
config TARGET_sh
bool "superh"
@@ -145,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"
@@ -240,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
@@ -301,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
@@ -311,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
@@ -420,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
@@ -488,7 +546,7 @@ config LDSO_LD_LIBRARY_PATH
config UCLIBC_CTOR_DTOR
bool
- default y if !TARGET_riscv64
+ default y
help
If you wish to build uClibc with support for global constructor
(ctor) and global destructor (dtor) support, then answer Y here.
@@ -537,7 +595,6 @@ config UCLIBC_HAS_LINUXTHREADS
# linuxthreads need nanosleep()
select UCLIBC_HAS_REALTIME
depends on !TARGET_aarch64 && \
- !TARGET_riscv64 && \
!TARGET_metag
help
If you want to compile uClibc with Linuxthreads support, then answer Y.
@@ -592,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"
@@ -958,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_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 if TARGET_riscv32
+ default n
+
+ help
+ Replace 32bit syscalls to their 64/time64 analog if possible.
+
endmenu
menu "Advanced Library Settings"
@@ -1344,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
@@ -2234,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: