diff options
Diffstat (limited to 'extra/Configs/Config.in')
-rw-r--r-- | extra/Configs/Config.in | 143 |
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: |