summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
Diffstat (limited to 'extra')
-rw-r--r--extra/Configs/Config.aarch641
-rw-r--r--extra/Configs/Config.arm1
-rw-r--r--extra/Configs/Config.i3861
-rw-r--r--extra/Configs/Config.in144
-rw-r--r--extra/Configs/Config.in.arch33
-rw-r--r--extra/Configs/Config.kvx18
-rw-r--r--extra/Configs/Config.mips1
-rw-r--r--extra/Configs/Config.nds321
-rw-r--r--extra/Configs/Config.riscv3214
-rwxr-xr-x[-rw-r--r--]extra/Configs/Config.x86_641
-rw-r--r--extra/Configs/Config.xtensa3
-rw-r--r--extra/config/zconf.tab.c_shipped4
-rw-r--r--extra/locale/programs/locale.c2
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] == '_') {