Просмотр исходного кода

loongarch: enable shared library support / NPTL for uClibc-ng

Waldemar Brodkorb 4 дней назад
Родитель
Сommit
d19c5861ec

+ 2 - 0
mk/image.mk

@@ -240,6 +240,8 @@ createinitramfs: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
 		echo 'CONFIG_INITRAMFS_ROOT_GID=0'; \
 		echo 'CONFIG_INITRAMFS_IS_LARGE=n'; \
 		echo 'CONFIG_INITRAMFS_PRESERVE_MTIME=n'; \
+		echo 'CONFIG_ACPI_TABLE_UPGRADE=n'; \
+		echo 'CONFIG_ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD=n'; \
 	) >> ${LINUX_DIR}/.config
 ifeq ($(ADK_LINUX_KERNEL_COMP_ZSTD),y)
 		echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config

+ 3 - 0
package/uclibc-ng-test/Makefile

@@ -66,6 +66,9 @@ endif
 ifeq ($(ADK_TARGET_ARCH_NDS32),y)
 XAKE_FLAGS+=		NO_TLS=1
 endif
+ifeq ($(ADK_TARGET_ARCH_LOONGARCH),y)
+XAKE_FLAGS+=		NO_TLS=1
+endif
 
 uclibc-ng-test-install:
 	${INSTALL_DIR} ${IDIR_UCLIBC_NG_TEST}/etc

+ 1 - 0
target/config/Config.in.libc

@@ -188,6 +188,7 @@ config ADK_TARGET_LIBC_UTILS
 	default n if ADK_TARGET_ARCH_C6X
 	default n if ADK_TARGET_ARCH_LM32
 	default n if ADK_TARGET_ARCH_H8300
+	default n if ADK_TARGET_ARCH_LOONGARCH
 	default y
 
 config ADK_TARGET_LIBC

+ 1 - 0
target/linux/Config.in.kernelcfg

@@ -12,6 +12,7 @@ default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_SYSTEM_BEAGLEBONE_BL
 default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_SYSTEM_PHYTEC_WEGA && ADK_TARGET_LINUX_KERNEL_VERSION_GIT
 default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG && ADK_TARGET_LINUX_KERNEL_VERSION_GIT
 default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_BOARD_BCM28XX && ADK_TARGET_LINUX_KERNEL_VERSION_GIT
+default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_SYSTEM_QEMU_LOONGARCH
 
 config ADK_TARGET_LINUX_KERNEL_USE_MINICONFIG
 	bool "Use mini.config from OpenADK"

+ 1 - 1
target/loongarch/qemu-loongarch/genimage.cfg

@@ -8,7 +8,7 @@ image efi-part.vfat {
 		}
 	}
 
-	size = 128M
+	size = 256M
 }
 
 image disk.img {

+ 37 - 10
target/loongarch/uclibc-ng.config

@@ -17,8 +17,8 @@
 # TARGET_i386 is not set
 # TARGET_ia64 is not set
 # TARGET_kvx is not set
+TARGET_loongarch64=y
 # TARGET_lm32 is not set
-TARGET_loongarch=y
 # TARGET_m68k is not set
 # TARGET_metag is not set
 # TARGET_microblaze is not set
@@ -36,12 +36,12 @@ TARGET_loongarch=y
 # TARGET_x86_64 is not set
 # TARGET_xtensa is not set
 TARGET_LDSO_NAME="ld-uClibc"
-TARGET_ARCH_BITS=32
+TARGET_ARCH_BITS=64
 
 #
 # Target Architecture Features and Options
 #
-TARGET_ARCH="loongarch"
+TARGET_ARCH="loongarch64"
 FORCE_OPTIONS_FOR_ARCH=y
 TARGET_SUBARCH=""
 
@@ -59,6 +59,7 @@ UCLIBC_HAS_FLOATS=y
 UCLIBC_HAS_FPU=y
 DO_C99_MATH=y
 DO_XSI_MATH=y
+UCLIBC_HAS_FENV=y
 UCLIBC_HAS_LONG_DOUBLE_MATH=y
 KERNEL_HEADERS=""
 HAVE_DOT_CONFIG=y
@@ -67,23 +68,43 @@ HAVE_DOT_CONFIG=y
 # General Library Settings
 #
 DOPIC=y
-ARCH_HAS_NO_SHARED=y
-ARCH_HAS_NO_LDSO=y
+ARCH_HAS_UCONTEXT=y
+HAVE_LDSO=y
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_ENV_SUPPORT is not set
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+# LDSO_STANDALONE_SUPPORT is not set
+# LDSO_PRELINK_SUPPORT is not set
+# UCLIBC_STATIC_LDCONFIG is not set
+LDSO_RUNPATH=y
+LDSO_RUNPATH_OF_EXECUTABLE=y
+LDSO_SAFE_RUNPATH=y
+LDSO_SEARCH_INTERP_PATH=y
+LDSO_LD_LIBRARY_PATH=y
 UCLIBC_CTOR_DTOR=y
-HAS_NO_THREADS=y
+# LDSO_GNU_HASH_SUPPORT is not set
+# HAS_NO_THREADS is not set
 # UCLIBC_HAS_LINUXTHREADS is not set
-# UCLIBC_HAS_THREADS_NATIVE is not set
+UCLIBC_HAS_THREADS_NATIVE=y
+UCLIBC_HAS_THREADS=y
+UCLIBC_HAS_TLS=y
+PTHREADS_DEBUG_SUPPORT=y
 PTHREADS_STACK_DEFAULT_SIZE=2097152
 UCLIBC_HAS_SYSLOG=y
 UCLIBC_HAS_LFS=y
-MALLOC=y
+# MALLOC is not set
 # MALLOC_SIMPLE is not set
-# MALLOC_STANDARD is not set
+MALLOC_STANDARD=y
 UCLIBC_DYNAMIC_ATEXIT=y
 UCLIBC_HAS_UTMPX=y
 UCLIBC_HAS_UTMP=y
 UCLIBC_SUSV2_LEGACY=y
 UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_HAS_CONTEXT_FUNCS is not set
 # UCLIBC_SUSV3_LEGACY_MACROS is not set
 UCLIBC_SUSV4_LEGACY=y
 # UCLIBC_STRICT_HEADERS is not set
@@ -150,13 +171,14 @@ UCLIBC_DNSRAND_MODE_PRNGPLUS=y
 #
 UCLIBC_HAS_STRING_GENERIC_OPT=y
 UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_STDIO_FUTEXES=y
 UCLIBC_HAS_CTYPE_TABLES=y
 UCLIBC_HAS_CTYPE_SIGNED=y
 # UCLIBC_HAS_CTYPE_UNSAFE is not set
 UCLIBC_HAS_CTYPE_CHECKED=y
 # UCLIBC_HAS_CTYPE_ENFORCED is not set
 UCLIBC_HAS_WCHAR=y
-UCLIBC_HAS_UCHAR=y
+# UCLIBC_HAS_UCHAR is not set
 # UCLIBC_HAS_LIBICONV is not set
 # UCLIBC_HAS_LIBINTL is not set
 # UCLIBC_HAS_LOCALE is not set
@@ -215,6 +237,8 @@ HARDWIRED_ABSPATH=y
 #
 UCLIBC_HAS_SSP=y
 # UCLIBC_BUILD_SSP is not set
+# UCLIBC_BUILD_RELRO is not set
+# UCLIBC_BUILD_NOW is not set
 UCLIBC_BUILD_NOEXECSTACK=y
 
 #
@@ -225,6 +249,9 @@ UCLIBC_EXTRA_CFLAGS=""
 # DODEBUG is not set
 # DOSTRIP is not set
 # DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
 # UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_HAS_BACKTRACE is not set
 WARNINGS="-Wall"
 # EXTRA_WARNINGS is not set