e7d631c0df
This reverts commit bd9810e176
. Indeed,
while uClibc-ng has support for RISC-V 64-bit, this support lacks the
__riscv_flush_icache() function call, which is used by some GCC
builtins used for example in libffi.
Due to this missing __riscv_flush_icache(), anything that links
against libffi fails to build:
/home/test/autobuild/run/instance-0/output-1/host/bin/riscv64-buildroot-linux-uclibc-gcc -o gobject/gobject-query gobject/gobject-query.p/gobject-query.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -Wl,--start-group glib/libglib-2.0.so.0.6400.4 gobject/libgobject-2.0.so.0.6400.4 -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../glib:$ORIGIN/' -Wl,-rpath-link,/home/test/autobuild/run/instance-0/output-1/build/libglib2-2.64.4/build/glib -Wl,-rpath-link,/home/test/autobuild/run/instance-0/output-1/build/libglib2-2.64.4/build/gobject
/home/test/autobuild/run/instance-0/output-1/host/lib/gcc/riscv64-buildroot-linux-uclibc/9.3.0/../../../../riscv64-buildroot-linux-uclibc/bin/ld: /home/test/autobuild/run/instance-0/output-1/host/riscv64-buildroot-linux-uclibc/sysroot/usr/lib64/libffi.so.7: undefined reference to `__riscv_flush_icache'
collect2: error: ld returned 1 exit status
Note that this commit means that
support/config-fragments/autobuild/br-riscv64-full-internal.config
will be back to using glibc as the C library, but that is OK, until
uClibc-ng is fixed to implemented __riscv_flush_icache().
This uClibc-ng issue has been reported upstream at
https://mailman.uclibc-ng.org/pipermail/devel/2020-August/002022.html.
Fixes:
http://autobuild.buildroot.net/results/ec1185ad1fd8863a3990143a0af2ace987761a27/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
154 lines
4.6 KiB
Plaintext
154 lines
4.6 KiB
Plaintext
if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
|
|
|
comment "uClibc Options"
|
|
|
|
config BR2_PACKAGE_UCLIBC
|
|
bool
|
|
default y
|
|
select BR2_PACKAGE_LINUX_HEADERS
|
|
|
|
config BR2_UCLIBC_CONFIG
|
|
string "uClibc configuration file to use?"
|
|
default "package/uclibc/uClibc-ng.config"
|
|
help
|
|
Some people may wish to use their own modified uClibc
|
|
configuration file and will specify their config file
|
|
location with this option. See also docs/README in this
|
|
package. If unsure, use the default.
|
|
|
|
config BR2_UCLIBC_CONFIG_FRAGMENT_FILES
|
|
string "Additional uClibc configuration fragment files"
|
|
help
|
|
A space-separated list of configuration fragment files, that
|
|
will be merged to the main uClibc configuration file.
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_WCHAR
|
|
bool "Enable WCHAR support"
|
|
select BR2_USE_WCHAR
|
|
help
|
|
Enable this option if you want your toolchain to support
|
|
wide characters (i.e characters longer than 8 bits, needed
|
|
for locale support).
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_LOCALE
|
|
bool "Enable toolchain locale/i18n support"
|
|
select BR2_TOOLCHAIN_BUILDROOT_WCHAR
|
|
select BR2_ENABLE_LOCALE
|
|
select BR2_NEEDS_HOST_UTF8_LOCALE
|
|
help
|
|
Enable this option if you want your toolchain to support
|
|
localization and internationalization.
|
|
|
|
choice
|
|
prompt "Thread library implementation"
|
|
help
|
|
Use this option to select the thread library implementation
|
|
that should be used in your toolchain.
|
|
|
|
config BR2_PTHREADS_NATIVE
|
|
bool "Native POSIX Threading (NPTL)"
|
|
depends on BR2_USE_MMU
|
|
select BR2_TOOLCHAIN_HAS_THREADS
|
|
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
|
|
|
config BR2_PTHREADS
|
|
bool "linuxthreads"
|
|
depends on BR2_m68k || BR2_microblaze || BR2_or1k || BR2_arm || BR2_armeb || BR2_xtensa
|
|
select BR2_TOOLCHAIN_HAS_THREADS
|
|
|
|
config BR2_PTHREADS_NONE
|
|
bool "none"
|
|
|
|
endchoice
|
|
|
|
config BR2_PTHREAD_DEBUG
|
|
bool "Thread library debugging"
|
|
depends on BR2_PTHREADS || BR2_PTHREADS_NATIVE
|
|
select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
|
|
help
|
|
Build the thread library with debugging enabled.
|
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_USE_SSP
|
|
bool "Enable stack protection support"
|
|
depends on BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI
|
|
select BR2_TOOLCHAIN_HAS_SSP
|
|
help
|
|
Enable stack smashing protection support using GCCs
|
|
-fstack-protector-all option in uClibc.
|
|
|
|
See
|
|
http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
|
|
for details.
|
|
|
|
config BR2_UCLIBC_INSTALL_UTILS
|
|
bool "Compile and install uClibc utilities"
|
|
default y
|
|
help
|
|
Enabling this option will compile and install the getconf,
|
|
ldconfig and ldd uClibc utilities for the target.
|
|
|
|
You can save ~32 KiB in target space by disabling them since
|
|
they're normally not needed.
|
|
|
|
# Mapping from the Buildroot architecture configuration options to the
|
|
# uClibc architecture names.
|
|
config BR2_UCLIBC_TARGET_ARCH
|
|
string
|
|
default "arc" if BR2_arcle || BR2_arceb
|
|
default "arm" if BR2_arm || BR2_armeb
|
|
default "m68k" if BR2_m68k
|
|
default "microblaze" if BR2_microblaze
|
|
default "mips" if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
|
|
default "or1k" if BR2_or1k
|
|
default "powerpc" if BR2_powerpc
|
|
default "sh" if BR2_sh
|
|
default "sparc" if BR2_sparc
|
|
default "xtensa" if BR2_xtensa
|
|
default "i386" if BR2_i386
|
|
default "x86_64" if BR2_x86_64
|
|
|
|
config BR2_UCLIBC_MIPS_ABI
|
|
string
|
|
default "O32" if BR2_MIPS_OABI32
|
|
default "N32" if BR2_MIPS_NABI32
|
|
default "N64" if BR2_MIPS_NABI64
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "mips"
|
|
|
|
config BR2_UCLIBC_MIPS_NAN
|
|
string
|
|
default "LEGACY" if BR2_MIPS_NAN_LEGACY
|
|
default "2008" if BR2_MIPS_NAN_2008
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "mips"
|
|
|
|
config BR2_UCLIBC_SH_TYPE
|
|
string
|
|
default "SH2A" if BR2_sh2a
|
|
default "SH4" if BR2_sh4 || BR2_sh4eb
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "sh"
|
|
|
|
config BR2_UCLIBC_SPARC_TYPE
|
|
string
|
|
default "V7" if BR2_sparc_v7 || BR2_sparc_sparchfleon || BR2_sparc_sparcsfleon
|
|
default "V8" if BR2_sparc_v8 || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleonv8
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "sparc"
|
|
|
|
config BR2_UCLIBC_POWERPC_TYPE
|
|
string
|
|
default "CLASSIC" if !BR2_powerpc_8540 && !BR2_powerpc_8548
|
|
default "E500" if BR2_powerpc_8540 || BR2_powerpc_8548
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "powerpc"
|
|
|
|
config BR2_UCLIBC_X86_TYPE
|
|
string
|
|
default "486" if BR2_x86_i486
|
|
default "586" if BR2_x86_i586
|
|
default "586MMX" if BR2_x86_pentium_mmx
|
|
default "686" if BR2_x86_i686 || BR2_x86_pentiumpro
|
|
default "PENTIUMII" if BR2_x86_pentium2
|
|
default "PENTIUMIII" if BR2_x86_pentium3
|
|
default "PENTIUM4" if BR2_x86_pentium4 || BR2_x86_pentium_m || \
|
|
BR2_x86_nocona || BR2_x86_core2 || BR2_x86_corei7
|
|
depends on BR2_UCLIBC_TARGET_ARCH = "i386"
|
|
|
|
endif # BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|