summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2016-01-27 21:33:34 (GMT)
committerWaldemar Brodkorb <wbx@openadk.org>2016-01-27 21:34:47 (GMT)
commite6acefa2ddd445e7e13aa89ced6d184a08ad8da6 (patch)
tree963add8ce9b30835eab0c01dbd1e68f9c145dfb5
parent61cf47568f3f81589cc4462945832c18ec3af410 (diff)
nios2: allow to build toolchain
At least allow to compile a toolchain targeting nios2 without MMU.
-rw-r--r--extra/Configs/Config.nios21
-rw-r--r--libc/sysdeps/linux/nios2/bits/kernel_types.h16
-rw-r--r--libc/sysdeps/linux/nios2/bits/syscalls.h3
-rw-r--r--libc/sysdeps/linux/nios2/crt1.S1
-rw-r--r--libc/sysdeps/linux/nios2/vfork.S4
5 files changed, 12 insertions, 13 deletions
diff --git a/extra/Configs/Config.nios2 b/extra/Configs/Config.nios2
index 8bb8aca..2310a46 100644
--- a/extra/Configs/Config.nios2
+++ b/extra/Configs/Config.nios2
@@ -13,5 +13,4 @@ config FORCE_OPTIONS_FOR_ARCH
select ARCH_LITTLE_ENDIAN
select ARCH_HAS_NO_MMU
select ARCH_HAS_NO_LDSO
- select ARCH_HAS_DEPRECATED_SYSCALLS
select HAVE_NO_PIC
diff --git a/libc/sysdeps/linux/nios2/bits/kernel_types.h b/libc/sysdeps/linux/nios2/bits/kernel_types.h
index 3c030e7..004f9c7 100644
--- a/libc/sysdeps/linux/nios2/bits/kernel_types.h
+++ b/libc/sysdeps/linux/nios2/bits/kernel_types.h
@@ -4,8 +4,8 @@
* our private content, and not the kernel header, will win.
* -Erik
*/
-#ifndef _ASM_NIOS2_POSIX_TYPES_H
-#define _ASM_NIOS2_POSIX_TYPES_H
+#ifndef __ASM_GENERIC_POSIX_TYPES_H
+#define __ASM_GENERIC_POSIX_TYPES_H
typedef unsigned long __kernel_dev_t;
typedef unsigned long __kernel_ino_t;
@@ -14,8 +14,8 @@ typedef unsigned short __kernel_nlink_t;
typedef long __kernel_off_t;
typedef int __kernel_pid_t;
typedef unsigned short __kernel_ipc_pid_t;
-typedef unsigned short __kernel_uid_t;
-typedef unsigned short __kernel_gid_t;
+typedef unsigned int __kernel_uid_t;
+typedef unsigned int __kernel_gid_t;
typedef unsigned int __kernel_size_t;
typedef int __kernel_ssize_t;
typedef int __kernel_ptrdiff_t;
@@ -28,9 +28,9 @@ typedef unsigned short __kernel_uid16_t;
typedef unsigned short __kernel_gid16_t;
typedef unsigned int __kernel_uid32_t;
typedef unsigned int __kernel_gid32_t;
-typedef unsigned short __kernel_old_uid_t;
-typedef unsigned short __kernel_old_gid_t;
-typedef unsigned short __kernel_old_dev_t;
+typedef unsigned int __kernel_old_uid_t;
+typedef unsigned int __kernel_old_gid_t;
+typedef unsigned int __kernel_old_dev_t;
typedef long __kernel_long_t;
typedef unsigned long __kernel_ulong_t;
typedef long long __kernel_loff_t;
@@ -43,4 +43,4 @@ typedef struct {
#endif
} __kernel_fsid_t;
-#endif /* _ASM_NIOS2_POSIX_TYPES_H */
+#endif /* __ASM_GENERIC_POSIX_TYPES_H */
diff --git a/libc/sysdeps/linux/nios2/bits/syscalls.h b/libc/sysdeps/linux/nios2/bits/syscalls.h
index 3214e3c..5be5d4d 100644
--- a/libc/sysdeps/linux/nios2/bits/syscalls.h
+++ b/libc/sysdeps/linux/nios2/bits/syscalls.h
@@ -4,10 +4,11 @@
# error "Never use <bits/syscalls.h> directly; include <sys/syscall.h> instead."
#endif
+#define TRAP_ID_SYSCALL 0
+
#ifndef __ASSEMBLER__
#include <errno.h>
-#include <asm/traps.h>
#define __syscall_return(type, res) \
do { \
diff --git a/libc/sysdeps/linux/nios2/crt1.S b/libc/sysdeps/linux/nios2/crt1.S
index 7bf4e37..c178452 100644
--- a/libc/sysdeps/linux/nios2/crt1.S
+++ b/libc/sysdeps/linux/nios2/crt1.S
@@ -14,6 +14,7 @@
#include <features.h>
#include <asm/unistd.h>
+#define TRAP_ID_SYSCALL 0
.global _start
.type _start,@function
diff --git a/libc/sysdeps/linux/nios2/vfork.S b/libc/sysdeps/linux/nios2/vfork.S
index 5d61db0..2aee81e 100644
--- a/libc/sysdeps/linux/nios2/vfork.S
+++ b/libc/sysdeps/linux/nios2/vfork.S
@@ -12,9 +12,7 @@
#include <sys/syscall.h>
-#ifndef __NR_vfork
-#define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
-#endif
+#define __NR_vfork 1071
.text
.global __vfork