From patchwork Wed Jun 5 11:56:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vincent Chen X-Patchwork-Id: 33021 Received: (qmail 90646 invoked by alias); 5 Jun 2019 11:58:00 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 90586 invoked by uid 89); 5 Jun 2019 11:57:59 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.1 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RDNS_DYNAMIC, SPF_PASS, TVD_RCVD_IP autolearn=ham version=3.3.1 spammy= X-HELO: ATCSQR.andestech.com From: Vincent Chen To: , CC: , , Subject: [PATCH v4 01/11] nds32: Build Infastructure Date: Wed, 5 Jun 2019 19:56:45 +0800 Message-ID: <1559735815-20093-2-git-send-email-vincentc@andestech.com> In-Reply-To: <1559735815-20093-1-git-send-email-vincentc@andestech.com> References: <1559735815-20093-1-git-send-email-vincentc@andestech.com> MIME-Version: 1.0 X-DNSRBL: X-MAIL: ATCSQR.andestech.com x55Bp02N068138 This patch contains all needed Implies, configure and Makefile for nds32 port. 2019-06-03 Vincent Chen 2019-06-03 CheWei Chuang * sysdeps/nds32/Implies: New file. * sysdeps/nds32/Makefile: Likewise. * sysdeps/nds32/configure: Likewise. * sysdeps/nds32/configure.ac: Likewise. * sysdeps/nds32/nofpu/Implies: Likewise. * sysdeps/nds32/nptl/Makefile: Likewise. * sysdeps/nds32/preconfigure: Likewise. * sysdeps/unix/sysv/linux/nds32/Implies: Likewise. * sysdeps/unix/sysv/linux/nds32/Makefile: Likewise. * sysdeps/unix/sysv/linux/nds32/Versions: Likewise. * sysdeps/unix/sysv/linux/nds32/configure: Likewise. * sysdeps/unix/sysv/linux/nds32/configure.ac: Likewise. * sysdeps/unix/sysv/linux/nds32/shlib-versions: Likewise. --- sysdeps/nds32/Implies | 4 +++ sysdeps/nds32/Makefile | 12 +++++++++ sysdeps/nds32/configure | 10 ++++++++ sysdeps/nds32/configure.ac | 10 ++++++++ sysdeps/nds32/nofpu/Implies | 1 + sysdeps/nds32/nptl/Makefile | 4 +++ sysdeps/nds32/preconfigure | 37 ++++++++++++++++++++++++++++ sysdeps/unix/sysv/linux/nds32/Implies | 3 +++ sysdeps/unix/sysv/linux/nds32/Makefile | 16 ++++++++++++ sysdeps/unix/sysv/linux/nds32/Versions | 11 +++++++++ sysdeps/unix/sysv/linux/nds32/configure | 4 +++ sysdeps/unix/sysv/linux/nds32/configure.ac | 4 +++ sysdeps/unix/sysv/linux/nds32/shlib-versions | 9 +++++++ 13 files changed, 125 insertions(+) create mode 100644 sysdeps/nds32/Implies create mode 100644 sysdeps/nds32/Makefile create mode 100755 sysdeps/nds32/configure create mode 100644 sysdeps/nds32/configure.ac create mode 100644 sysdeps/nds32/nofpu/Implies create mode 100644 sysdeps/nds32/nptl/Makefile create mode 100644 sysdeps/nds32/preconfigure create mode 100644 sysdeps/unix/sysv/linux/nds32/Implies create mode 100644 sysdeps/unix/sysv/linux/nds32/Makefile create mode 100644 sysdeps/unix/sysv/linux/nds32/Versions create mode 100755 sysdeps/unix/sysv/linux/nds32/configure create mode 100644 sysdeps/unix/sysv/linux/nds32/configure.ac create mode 100644 sysdeps/unix/sysv/linux/nds32/shlib-versions diff --git a/sysdeps/nds32/Implies b/sysdeps/nds32/Implies new file mode 100644 index 0000000..ff699c7 --- /dev/null +++ b/sysdeps/nds32/Implies @@ -0,0 +1,4 @@ +init_array +wordsize-32 +ieee754/dbl-64 +ieee754/flt-32 diff --git a/sysdeps/nds32/Makefile b/sysdeps/nds32/Makefile new file mode 100644 index 0000000..5dc46c2 --- /dev/null +++ b/sysdeps/nds32/Makefile @@ -0,0 +1,12 @@ + +long-double-fcts = no + +ifeq ($(subdir),elf) +sysdep-dl-routines += tlsdesc dl-tlsdesc +sysdep_routines += tlsdesc dl-tlsdesc +sysdep-rtld-routines += tlsdesc dl-tlsdesc +endif + +ifeq ($(subdir),csu) +gen-as-const-headers += tlsdesc.sym +endif diff --git a/sysdeps/nds32/configure b/sysdeps/nds32/configure new file mode 100755 index 0000000..8ece006 --- /dev/null +++ b/sysdeps/nds32/configure @@ -0,0 +1,10 @@ +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/nds32. + +# For nds32 ABI for linux toolchain, the $r15 register is not only an +# assembler reserved register but also used to passing the sysem call +# number. In order to ensure the data safety, $r15 is included in +# clobber list by default. Using the option -minline-asm-r15 can +# avoid the conflict between asm-specifier for syscall number and +# clobber list when issuing system call by inline assembly. +CFLAGS="$CFLAGS -minline-asm-r15" diff --git a/sysdeps/nds32/configure.ac b/sysdeps/nds32/configure.ac new file mode 100644 index 0000000..c0e2494 --- /dev/null +++ b/sysdeps/nds32/configure.ac @@ -0,0 +1,10 @@ +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/nds32. + +# For nds32 ABI for linux toolchain, the $r15 register is not only an +# assembler reserved register but also used to passing the sysem call +# number. In order to ensure the data safety, $r15 is included in +# clobber list by default. Using the option -minline-asm-r15 can +# avoid the conflict between asm-specifier for syscall number and +# clobber list when issuing system call by inline assembly. +CFLAGS="$CFLAGS -minline-asm-r15" diff --git a/sysdeps/nds32/nofpu/Implies b/sysdeps/nds32/nofpu/Implies new file mode 100644 index 0000000..abcbadb --- /dev/null +++ b/sysdeps/nds32/nofpu/Implies @@ -0,0 +1 @@ +ieee754/soft-fp diff --git a/sysdeps/nds32/nptl/Makefile b/sysdeps/nds32/nptl/Makefile new file mode 100644 index 0000000..6f553d6 --- /dev/null +++ b/sysdeps/nds32/nptl/Makefile @@ -0,0 +1,4 @@ + +ifeq ($(subdir),csu) +gen-as-const-headers += tcb-offsets.sym +endif diff --git a/sysdeps/nds32/preconfigure b/sysdeps/nds32/preconfigure new file mode 100644 index 0000000..a7acac9 --- /dev/null +++ b/sysdeps/nds32/preconfigure @@ -0,0 +1,37 @@ +case "$machine" in +nds32*) + endian_abi_type=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | sed -n 's/^#define __NDS32_E\([B|L]*\)__ 1/\1/p'` + case "$endian_abi_type" in + L) + endian_abi_type=0 + ;; + B) + echo "glibc does not yet support big-endian configuration" >&2 + exit 1 + ;; + esac + + float_abi_type=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep ^"#define __NDS32_ABI_2FP_PLUS__" | wc -l` + case "$float_abi_type" in + 0) + with_fp_cond=0 + ;; + *) + flen=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep ^"#define __NDS32_EXT_FPU_DP__" | wc -l` + case "$flen" in + 0) + echo "glibc does not yet support nds32 v3s extension" >&2 + exit 1 + ;; + 1) + float_abi_type=1 + ;; + esac + esac + + base_machine=nds32 + machine=nds32 + + $as_echo "#define NDS32_ABI_TYPE 0x$float_abi_type$endian_abi_type" >>confdefs.h + ;; +esac diff --git a/sysdeps/unix/sysv/linux/nds32/Implies b/sysdeps/unix/sysv/linux/nds32/Implies new file mode 100644 index 0000000..91b4e1e --- /dev/null +++ b/sysdeps/unix/sysv/linux/nds32/Implies @@ -0,0 +1,3 @@ +nds32/nptl +unix/sysv/linux/generic/wordsize-32 +unix/sysv/linux/generic diff --git a/sysdeps/unix/sysv/linux/nds32/Makefile b/sysdeps/unix/sysv/linux/nds32/Makefile new file mode 100644 index 0000000..c9bb589 --- /dev/null +++ b/sysdeps/unix/sysv/linux/nds32/Makefile @@ -0,0 +1,16 @@ +ifeq ($(subdir),misc) +sysdep_headers += sys/cachectl.h +sysdep_routines += cacheflush prctl mremap +endif + +ifeq ($(subdir),stdlib) +gen-as-const-headers += ucontext_i.sym +endif + +ifeq ($(subdir),elf) +sysdep_routines += dl-vdso +ifeq ($(build-shared),yes) +# This is needed for DSO loading from static binaries. +sysdep-dl-routines += dl-static +endif +endif diff --git a/sysdeps/unix/sysv/linux/nds32/Versions b/sysdeps/unix/sysv/linux/nds32/Versions new file mode 100644 index 0000000..abe47ce --- /dev/null +++ b/sysdeps/unix/sysv/linux/nds32/Versions @@ -0,0 +1,11 @@ +ld { + GLIBC_PRIVATE { + # used for loading by static libraries + _dl_var_init; + } +} +libc { + GLIBC_2.28 { + cacheflush; + } +} diff --git a/sysdeps/unix/sysv/linux/nds32/configure b/sysdeps/unix/sysv/linux/nds32/configure new file mode 100755 index 0000000..ceb6c90 --- /dev/null +++ b/sysdeps/unix/sysv/linux/nds32/configure @@ -0,0 +1,4 @@ +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/unix/sysv/linux/nds32. + +arch_minimum_kernel=4.17.0 diff --git a/sysdeps/unix/sysv/linux/nds32/configure.ac b/sysdeps/unix/sysv/linux/nds32/configure.ac new file mode 100644 index 0000000..91bf889 --- /dev/null +++ b/sysdeps/unix/sysv/linux/nds32/configure.ac @@ -0,0 +1,4 @@ +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/unix/sysv/linux/nds32. + +arch_minimum_kernel=4.17.0 diff --git a/sysdeps/unix/sysv/linux/nds32/shlib-versions b/sysdeps/unix/sysv/linux/nds32/shlib-versions new file mode 100644 index 0000000..21fcaba --- /dev/null +++ b/sysdeps/unix/sysv/linux/nds32/shlib-versions @@ -0,0 +1,9 @@ +DEFAULT GLIBC_2.30 + +%if NDS32_ABI_TYPE == 0 +ld=ld-linux-nds32le.so.1 +%elif NDS32_ABI_TYPE == 0x10 +ld=ld-linux-nds32lef.so.1 +%else +%error cannot determine ABI +%endif