diff options
113 files changed, 13498 insertions, 1 deletions
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 53dff1c82..59ef31c47 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -38,6 +38,7 @@ choice default TARGET_powerpc if DESIRED_TARGET_ARCH = "powerpc" default TARGET_sh if DESIRED_TARGET_ARCH = "sh" default TARGET_sparc if DESIRED_TARGET_ARCH = "sparc" + default TARGET_sparc64 if DESIRED_TARGET_ARCH = "sparc64" default TARGET_x86_64 if DESIRED_TARGET_ARCH = "x86_64" default TARGET_xtensa if DESIRED_TARGET_ARCH = "xtensa" help @@ -117,6 +118,9 @@ config TARGET_sh config TARGET_sparc bool "sparc" +config TARGET_sparc64 + bool "sparc64" + config TARGET_x86_64 bool "x86_64" @@ -216,6 +220,10 @@ if TARGET_sparc source "extra/Configs/Config.sparc" endif +if TARGET_sparc64 +source "extra/Configs/Config.sparc64" +endif + if TARGET_x86_64 source "extra/Configs/Config.x86_64" endif diff --git a/extra/Configs/Config.sparc64 b/extra/Configs/Config.sparc64 new file mode 100644 index 000000000..8e162263c --- /dev/null +++ b/extra/Configs/Config.sparc64 @@ -0,0 +1,18 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config TARGET_ARCH + string + default "sparc64" + +config FORCE_OPTIONS_FOR_ARCH + bool + default y + select ARCH_BIG_ENDIAN + select ARCH_HAS_UCONTEXT + select ARCH_HAS_MMU + select ARCH_HAS_NO_LDSO + select ARCH_HAS_DEPRECATED_SYSCALLS + 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 |