summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/alpha
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha')
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/types.h3
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fstatfs64.c1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ftruncate64.c1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getrlimit64.c1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/init-first.h48
-rw-r--r--sysdeps/unix/sysv/linux/alpha/readdir.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/readdir64.c1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/readdir64_r.c1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/readdir_r.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/setrlimit64.c1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/statfs64.c1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscalls.list8
-rw-r--r--sysdeps/unix/sysv/linux/alpha/truncate64.c1
13 files changed, 48 insertions, 27 deletions
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/types.h b/sysdeps/unix/sysv/linux/alpha/bits/types.h
index 9acdf0c490..9033fdb362 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/types.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/types.h
@@ -77,6 +77,9 @@ typedef long int __swblk_t; /* Type of a swap block maybe? */
typedef long int __clock_t;
typedef int __key_t; /* Type of a SYSV IPC key. */
+/* Used in `struct shmid_ds'. */
+typedef int __ipc_pid_t;
+
/* One element in the file descriptor mask array. */
typedef unsigned long int __fd_mask;
diff --git a/sysdeps/unix/sysv/linux/alpha/fstatfs64.c b/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
new file mode 100644
index 0000000000..2be4e59ba4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
@@ -0,0 +1 @@
+/* fstatfs64 is the same as fstatfs. */
diff --git a/sysdeps/unix/sysv/linux/alpha/ftruncate64.c b/sysdeps/unix/sysv/linux/alpha/ftruncate64.c
new file mode 100644
index 0000000000..673a8b525a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/ftruncate64.c
@@ -0,0 +1 @@
+/* ftruncate64 is the same as ftruncate. */
diff --git a/sysdeps/unix/sysv/linux/alpha/getrlimit64.c b/sysdeps/unix/sysv/linux/alpha/getrlimit64.c
new file mode 100644
index 0000000000..9feab0e6b8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/getrlimit64.c
@@ -0,0 +1 @@
+/* getrlimit64 is the same as getrlimit. */
diff --git a/sysdeps/unix/sysv/linux/alpha/init-first.h b/sysdeps/unix/sysv/linux/alpha/init-first.h
index ffbcaf1521..a3f5d8f0c4 100644
--- a/sysdeps/unix/sysv/linux/alpha/init-first.h
+++ b/sysdeps/unix/sysv/linux/alpha/init-first.h
@@ -2,28 +2,26 @@
This is done in one of two ways: either in the stack context
of program start, or having dlopen pass them in. */
-#define SYSDEP_CALL_INIT(NAME, INIT) \
- asm(".weak _dl_starting_up\n\t" \
- ".globl " #NAME "\n\t" \
- ".ent " #NAME "\n" \
- #NAME ":\n\t" \
- "ldgp $29, 0($27)\n\t" \
- ".prologue 1\n\t" \
- ".set at\n\t" \
- /* Are we a dynamic libc being loaded into a static program? */ \
- "lda $0, _dl_starting_up\n\t" \
- "beq $0, 1f\n\t" \
- "ldl $0, 0($0)\n" \
- "cmpeq $31, $0, $0\n" \
- "1:\t" \
- "stl $0, __libc_multiple_libcs\n\t" \
- /* If so, argc et al are in a0-a2 already. Otherwise, load them. */ \
- "bne $0, 2f\n\t" \
- "ldl $16, 0($30)\n\t" \
- "lda $17, 8($30)\n\t" \
- "s8addq $16, $17, $18\n\t" \
- "addq $18, 8, $18\n" \
- "2:\t" \
- "br $31, " #INIT "..ng\n\t" \
- ".set noat\n\t" \
- ".end " #NAME);
+#define SYSDEP_CALL_INIT(NAME, INIT) asm("\
+ .weak _dl_starting_up
+ .globl " #NAME "
+ .ent " #NAME "
+" #NAME ":
+ ldgp $29, 0($27)
+ .prologue 1
+ .set at
+ /* Are we a dynamic libc being loaded into a static program? */
+ lda $0, _dl_starting_up
+ beq $0, 1f
+ ldl $0, 0($0)
+ cmpeq $31, $0, $0
+1: stl $0, __libc_multiple_libcs
+ /* If so, argc et al are in a0-a2 already. Otherwise, load them. */
+ bne $0, 2f
+ ldl $16, 0($30)
+ lda $17, 8($30)
+ s8addq $16, $17, $18
+ addq $18, 8, $18
+2: br $31, " ASM_ALPHA_NG_SYMBOL_PREFIX #INIT "..ng
+ .set noat
+ .end " #NAME);
diff --git a/sysdeps/unix/sysv/linux/alpha/readdir.c b/sysdeps/unix/sysv/linux/alpha/readdir.c
new file mode 100644
index 0000000000..96a6a76945
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/readdir.c
@@ -0,0 +1,4 @@
+#define readdir64 __no_readdir64_decl
+#include <sysdeps/unix/readdir.c>
+#undef readdir64
+weak_alias (__readdir, readdir64)
diff --git a/sysdeps/unix/sysv/linux/alpha/readdir64.c b/sysdeps/unix/sysv/linux/alpha/readdir64.c
new file mode 100644
index 0000000000..9796431dc4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/readdir64.c
@@ -0,0 +1 @@
+/* readdir64 is in readdir.c */
diff --git a/sysdeps/unix/sysv/linux/alpha/readdir64_r.c b/sysdeps/unix/sysv/linux/alpha/readdir64_r.c
new file mode 100644
index 0000000000..b8fe9a31b4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/readdir64_r.c
@@ -0,0 +1 @@
+/* readdir64_r is in readdir_r.c */
diff --git a/sysdeps/unix/sysv/linux/alpha/readdir_r.c b/sysdeps/unix/sysv/linux/alpha/readdir_r.c
new file mode 100644
index 0000000000..adb92db6af
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/readdir_r.c
@@ -0,0 +1,4 @@
+#define readdir64_r __no_readdir64_r_decl
+#include <sysdeps/unix/readdir_r.c>
+#undef readdir64_r
+weak_alias (__readdir_r, readdir64_r)
diff --git a/sysdeps/unix/sysv/linux/alpha/setrlimit64.c b/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
new file mode 100644
index 0000000000..8edcff0086
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
@@ -0,0 +1 @@
+/* setrlimit64 is the same as setrlimit. */
diff --git a/sysdeps/unix/sysv/linux/alpha/statfs64.c b/sysdeps/unix/sysv/linux/alpha/statfs64.c
new file mode 100644
index 0000000000..06bc68826f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/statfs64.c
@@ -0,0 +1 @@
+/* statfs64 is the same as statfs. */
diff --git a/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list
index d3bc033b3d..af964718bc 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscalls.list
+++ b/sysdeps/unix/sysv/linux/alpha/syscalls.list
@@ -23,10 +23,14 @@ mmap - mmap 6 __mmap mmap
llseek EXTRA lseek 3 __llseek llseek lseek64
pread EXTRA pread 4 __pread pread __pread64 pread64
pwrite EXTRA pwrite 4 __pwrite pwrite __pwrite64 pwrite64
+fstatfs - fstatfs 2 __fstatfs fstatfs fstatfs64
+statfs - statfs 2 __statfs statfs statfs64
+getrlimit - getrlimit 2 getrlimit getrlimit64
+setrlimit - setrlimit 2 setrlimit setrlimit64
+ftruncate - ftruncate 2 ftruncate ftruncate64
+truncate - truncate 2 truncate truncate64
# these are actually common with the x86:
-fstatfs - fstatfs 2 __fstatfs fstatfs
-statfs - statfs 2 __statfs statfs
sys_ustat ustat ustat 2 __syscall_ustat
sys_mknod xmknod mknod 3 __syscall_mknod
diff --git a/sysdeps/unix/sysv/linux/alpha/truncate64.c b/sysdeps/unix/sysv/linux/alpha/truncate64.c
new file mode 100644
index 0000000000..8999768874
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/truncate64.c
@@ -0,0 +1 @@
+/* truncate64 is the same as truncate. */