diff options
Diffstat (limited to 'extra')
-rw-r--r-- | extra/Configs/Config.aarch64 | 1 | ||||
-rw-r--r-- | extra/Configs/Config.arm | 1 | ||||
-rw-r--r-- | extra/Configs/Config.i386 | 1 | ||||
-rw-r--r-- | extra/Configs/Config.in | 144 | ||||
-rw-r--r-- | extra/Configs/Config.in.arch | 33 | ||||
-rw-r--r-- | extra/Configs/Config.kvx | 18 | ||||
-rw-r--r-- | extra/Configs/Config.mips | 1 | ||||
-rw-r--r-- | extra/Configs/Config.nds32 | 1 | ||||
-rw-r--r-- | extra/Configs/Config.riscv32 | 14 | ||||
-rwxr-xr-x[-rw-r--r--] | extra/Configs/Config.x86_64 | 1 | ||||
-rw-r--r-- | extra/Configs/Config.xtensa | 3 | ||||
-rw-r--r-- | extra/config/zconf.tab.c_shipped | 4 | ||||
-rw-r--r-- | extra/locale/programs/locale.c | 2 |
13 files changed, 192 insertions, 32 deletions
diff --git a/extra/Configs/Config.aarch64 b/extra/Configs/Config.aarch64 index d666cc595..6074878f2 100644 --- a/extra/Configs/Config.aarch64 +++ b/extra/Configs/Config.aarch64 @@ -13,6 +13,7 @@ config FORCE_OPTIONS_FOR_ARCH 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.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 a06a17864..3a0136c99 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,28 @@ 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 if TARGET_riscv32 + default n + + help + Replace 32bit syscalls to their 64/time64 analog if possible. + endmenu menu "Advanced Library Settings" @@ -1344,6 +1432,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 +2373,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..1ae5134b9 100644 --- a/extra/Configs/Config.in.arch +++ b/extra/Configs/Config.in.arch @@ -10,6 +10,14 @@ 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) @@ -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 # diff --git a/extra/Configs/Config.kvx b/extra/Configs/Config.kvx index 398ffceaa..04df53c38 100644 --- a/extra/Configs/Config.kvx +++ b/extra/Configs/Config.kvx @@ -7,6 +7,24 @@ 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 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.nds32 b/extra/Configs/Config.nds32 index 2ed6a32b7..8bac9e679 100644 --- a/extra/Configs/Config.nds32 +++ b/extra/Configs/Config.nds32 @@ -11,7 +11,6 @@ config FORCE_OPTIONS_FOR_ARCH bool default y select ARCH_ANY_ENDIAN - select ARCH_HAS_DEPRECATED_SYSCALLS select ARCH_HAS_MMU select ARCH_HAS_UCONTEXT 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.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/config/zconf.tab.c_shipped b/extra/config/zconf.tab.c_shipped index 208f20087..a2d7a7543 100644 --- a/extra/config/zconf.tab.c_shipped +++ b/extra/config/zconf.tab.c_shipped @@ -1067,7 +1067,7 @@ int yydebug; # define YYMAXDEPTH 10000 #endif - + #if YYERROR_VERBOSE @@ -1278,7 +1278,7 @@ yysyntax_error (char *yyresult, int yystate, int yychar) } } #endif /* YYERROR_VERBOSE */ - + /*-----------------------------------------------. | Release the memory associated to this symbol. | diff --git a/extra/locale/programs/locale.c b/extra/locale/programs/locale.c index 5d16d1276..4157c4a8e 100644 --- a/extra/locale/programs/locale.c +++ b/extra/locale/programs/locale.c @@ -231,7 +231,7 @@ static void find_locale_string(locale_entry * loc_rec, char *loc) *loc = '\0'; } else { dotcs = (uint16_t) loc_rec->dot_cs; - cs = (uint16_t) loc_rec->cs;; + cs = (uint16_t) loc_rec->cs; loc = strncpy(loc, GET_LOCALE_NAME(idx), 5); if (loc[2] == '_') { |