diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2017-05-24 20:49:02 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2017-06-23 23:46:04 +0200 |
commit | 041cdc2769407c4d3869b218ad7ee7638e1c306e (patch) | |
tree | 1ea25250d74dcb230cf5feee99226fc080dbd678 /libc/sysdeps | |
parent | 58a5ba12bffad5916d9897c2870fc483f1db8282 (diff) |
sparc64: add basic support
No NPTL, no LDSO support.
Bootup with Busybox Ash in Qemu working.
Testuite shows only two failures, but mksh continue/break
support doesn't work.
Diffstat (limited to 'libc/sysdeps')
111 files changed, 13472 insertions, 1 deletions
diff --git a/libc/sysdeps/linux/common/bits/kernel_sigaction.h b/libc/sysdeps/linux/common/bits/kernel_sigaction.h index 5c8726058..21e4c9296 100644 --- a/libc/sysdeps/linux/common/bits/kernel_sigaction.h +++ b/libc/sysdeps/linux/common/bits/kernel_sigaction.h @@ -19,6 +19,14 @@ struct old_kernel_sigaction { unsigned long sa_flags; void (*sa_restorer)(void); }; + +/* This is the sigaction structure from the Linux 2.1.68 kernel. */ +struct kernel_sigaction { + __sighandler_t k_sa_handler; + unsigned long sa_flags; + void (*sa_restorer) (void); + sigset_t sa_mask; +}; #endif #endif /* _BITS_SIGACTION_STRUCT_H */ diff --git a/libc/sysdeps/linux/common/mmap.c b/libc/sysdeps/linux/common/mmap.c index cafe756bf..b74fc19ef 100644 --- a/libc/sysdeps/linux/common/mmap.c +++ b/libc/sysdeps/linux/common/mmap.c @@ -21,6 +21,7 @@ static _syscall6(void *, _mmap, void *, addr, size_t, len, #elif defined __NR_mmap2 && defined _syscall6 + # include <errno.h> # include <bits/uClibc_page.h> # ifndef MMAP2_PAGE_SHIFT @@ -51,7 +52,6 @@ static void *_mmap(void *addr, size_t len, int prot, int flags, } #elif defined __NR_mmap - # define __NR___syscall_mmap __NR_mmap static __inline__ _syscall1(void *, __syscall_mmap, unsigned long *, buffer) diff --git a/libc/sysdeps/linux/sparc64/Makefile b/libc/sysdeps/linux/sparc64/Makefile new file mode 100644 index 000000000..633c91f3e --- /dev/null +++ b/libc/sysdeps/linux/sparc64/Makefile @@ -0,0 +1,13 @@ +# Makefile for uClibc +# +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +top_srcdir=../../../../ +top_builddir=../../../../ +all: objs +include $(top_builddir)Rules.mak +include Makefile.arch +include $(top_srcdir)Makerules diff --git a/libc/sysdeps/linux/sparc64/Makefile.arch b/libc/sysdeps/linux/sparc64/Makefile.arch new file mode 100644 index 000000000..37b539b3b --- /dev/null +++ b/libc/sysdeps/linux/sparc64/Makefile.arch @@ -0,0 +1,18 @@ +# Makefile for uClibc-ng +# +# Copyright (C) 2017 Waldemar Brodkorb <wbx@uclibc-ng.org> +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + +CSRC-y := __syscall_error.c sigaction.c +SSRC-y := __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S brk.S fork.S \ + syscall.S pipe.S vfork.S clone.S + +CSRC-y += $(addprefix soft-fp/, \ + qp_add.c qp_cmp.c qp_cmpe.c qp_div.c qp_dtoq.c qp_feq.c qp_fge.c \ + qp_fgt.c qp_fle.c qp_flt.c qp_fne.c qp_itoq.c qp_mul.c qp_neg.c \ + qp_qtod.c qp_qtoi.c qp_qtos.c qp_qtoui.c qp_qtoux.c qp_qtox.c \ + qp_sqrt.c qp_stoq.c qp_sub.c qp_uitoq.c qp_uxtoq.c qp_xtoq.c qp_util.c) + +CSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.c +SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += getcontext.S setcontext.S swapcontext.S \ + __start_context.S diff --git a/libc/sysdeps/linux/sparc64/__longjmp.S b/libc/sysdeps/linux/sparc64/__longjmp.S new file mode 100644 index 000000000..79cefcc9d --- /dev/null +++ b/libc/sysdeps/linux/sparc64/__longjmp.S @@ -0,0 +1,40 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + Contributed by Richard Henderson (rth@tamu.edu). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along |