diff options
Diffstat (limited to 'extra')
-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 | 159 | ||||
-rw-r--r-- | extra/Configs/Config.in.arch | 33 | ||||
-rw-r--r-- | extra/Configs/Config.kvx | 36 | ||||
-rw-r--r-- | extra/Configs/Config.mips | 1 | ||||
-rw-r--r-- | extra/Configs/Config.nds32 | 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 | ||||
-rw-r--r-- | extra/config/zconf.tab.c_shipped | 4 | ||||
-rw-r--r-- | extra/locale/gen_wc8bit.c | 3 | ||||
-rw-r--r-- | extra/locale/programs/locale.c | 2 |
17 files changed, 230 insertions, 34 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..3a0136c99 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 @@ -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 @@ -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,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" @@ -1035,6 +1132,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 +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 @@ -2217,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 new file mode 100644 index 000000000..04df53c38 --- /dev/null +++ b/extra/Configs/Config.kvx @@ -0,0 +1,36 @@ +# +# 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 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.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.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 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/gen_wc8bit.c b/extra/locale/gen_wc8bit.c index 8031df1cf..110541ad5 100644 --- a/extra/locale/gen_wc8bit.c +++ b/extra/locale/gen_wc8bit.c @@ -121,7 +121,8 @@ int main(int argc, char **argv) } locale_failure: - printf("could not find a UTF8 locale ... please enable en_US.UTF-8\n"); + fprintf(stderr, + "could not find a UTF8 locale ... please enable en_US.UTF-8\n"); return EXIT_FAILURE; locale_success: pclose(fp); 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] == '_') { |