[PATCH] Misc Alpha stuff for glibc
Jakub Jelinek
jakub@redhat.com
Fri Apr 21 03:44:00 GMT 2000
Hi!
When trying to compile current glibc on Alpha, I came accross these:
With this patch in, the compilation still chokes during compilation of conj.c on:
In file included from ../include/bits/cmathcalls.h:1,
from ../math/complex.h:80,
from ../include/complex.h:1,
from conj.c:21:
../math/bits/cmathcalls.h: In function `cimagf':
../math/bits/cmathcalls.h:139: Unable to access imaginary part of complex value in a hard register on this target
(gcc 2.95.3).
gcc does not like the cimagf complex float inline (but if I ifdef that
inline out for alpha, it chokes later on on conjf.c).
What's the proper solution for this, Richard?
2000-04-21 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/msgctl.c (__syscall_msgctl): Declare.
* sysdeps/unix/sysv/linux/alpha/semctl.c (__syscall_semctl): Declare.
* sysdeps/unix/sysv/linux/alpha/shmctl.c (__syscall_shmctl): Declare.
* sysdeps/unix/sysv/linux/alpha/getrusage.S: Surround uses of $f28
with .set noat/at to shut up warnings.
* sysdeps/unix/sysv/linux/alpha/syscalls.list (__fstatfs64): Add
alias.
* sysdeps/unix/sysv/linux/alpha/ioperm.c (init_iosys): Allow
compilation if __NR_pciconfig_iobase is not defined.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (__fstatfs64):
Add alias.
--- libc/sysdeps/unix/sysv/linux/alpha/msgctl.c.jj Tue Apr 4 11:56:37 2000
+++ libc/sysdeps/unix/sysv/linux/alpha/msgctl.c Fri Apr 21 09:54:47 2000
@@ -44,6 +44,8 @@ struct __old_msqid_ds
__ipc_pid_t msg_lrpid; /* pid of last msgrcv() */
};
+extern int __syscall_msgctl (int, int, void *);
+
/* Allows to control internal state and destruction of message queue
objects. */
int __new_msgctl (int, int, struct msqid_ds *);
--- libc/sysdeps/unix/sysv/linux/alpha/shmctl.c.jj Tue Apr 4 11:56:38 2000
+++ libc/sysdeps/unix/sysv/linux/alpha/shmctl.c Fri Apr 21 09:54:02 2000
@@ -52,6 +52,8 @@ struct __old_shminfo
int shmall;
};
+extern int __syscall_shmctl (int, int, void *);
+
/* Provide operations to control over shared memory segments. */
int __new_shmctl (int, int, struct shmid_ds *);
--- libc/sysdeps/unix/sysv/linux/alpha/semctl.c.jj Tue Apr 4 11:56:38 2000
+++ libc/sysdeps/unix/sysv/linux/alpha/semctl.c Fri Apr 21 10:17:35 2000
@@ -49,6 +49,7 @@ union semun
struct seminfo *__buf; /* buffer for IPC_INFO */
};
+extern int __syscall_semctl (int, int, int, void *);
/* Return identifier for array of NSEMS semaphores associated with
KEY. */
--- libc/sysdeps/unix/sysv/linux/alpha/getrusage.S.jj Sun Aug 23 06:08:46 1998
+++ libc/sysdeps/unix/sysv/linux/alpha/getrusage.S Fri Apr 21 10:27:00 2000
@@ -99,7 +99,9 @@ $do32: ldi v0, SYS_ify(osf_getrusage)
ldt $f25, 96(a1) # ru_msgrcv
ldt $f26, 104(a1) # ru_nsignals
ldt $f27, 112(a1) # ru_nvcsw
+ .set noat
ldt $f28, 120(a1) # ru_nivcsw
+ .set at
stq t0, 0(a1)
stq t1, 8(a1)
stq t2, 16(a1)
@@ -117,7 +119,9 @@ $do32: ldi v0, SYS_ify(osf_getrusage)
stt $f25, 112(a1)
stt $f26, 120(a1)
stt $f27, 128(a1)
+ .set noat
stt $f28, 136(a1)
+ .set at
addq sp, 16, sp
ret
--- libc/sysdeps/unix/sysv/linux/alpha/syscalls.list.jj Tue Mar 21 11:58:31 2000
+++ libc/sysdeps/unix/sysv/linux/alpha/syscalls.list Fri Apr 21 11:09:02 2000
@@ -22,7 +22,7 @@ mmap - mmap 6 __mmap mmap __mmap64 mm
llseek EXTRA lseek 3 __libc_lseek64 __llseek llseek __lseek64 lseek64
pread - pread 4 __libc_pread __libc_pread64 __pread pread __pread64 pread64
pwrite - pwrite 4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
-fstatfs - fstatfs 2 __fstatfs fstatfs fstatfs64
+fstatfs - fstatfs 2 __fstatfs fstatfs __fstatfs64 fstatfs64
statfs - statfs 2 __statfs statfs statfs64
getrlimit - getrlimit 2 __getrlimit getrlimit getrlimit64
setrlimit - setrlimit 2 setrlimit setrlimit64
--- libc/sysdeps/unix/sysv/linux/alpha/ioperm.c.jj Tue Mar 21 11:58:31 2000
+++ libc/sysdeps/unix/sysv/linux/alpha/ioperm.c Fri Apr 21 11:53:30 2000
@@ -537,6 +537,7 @@ init_iosys (void)
/* First try the pciconfig_iobase syscall added to 2.2.15 and 2.3.99. */
+#ifdef __NR_pciconfig_iobase
addr = __pciconfig_iobase (IOBASE_DENSE_MEM, 0, 0);
if (addr != -1)
{
@@ -578,6 +579,7 @@ init_iosys (void)
return 0;
}
+#endif
/* Second, collect the contents of /etc/alpha_systype or /proc/cpuinfo. */
--- libc/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list.jj Mon Jan 31 09:40:03 2000
+++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list Fri Apr 21 11:08:11 2000
@@ -4,7 +4,7 @@
llseek EXTRA lseek 3 __llseek llseek __libc_lseek64 __lseek64 lseek64
pread - pread 4 __libc_pread __libc_pread64 __pread pread __pread64 pread64
pwrite - pwrite 4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
-fstatfs - fstatfs 2 __fstatfs fstatfs fstatfs64
+fstatfs - fstatfs 2 __fstatfs fstatfs __fstatfs64 fstatfs64
statfs - statfs 2 __statfs statfs statfs64
getrlimit - getrlimit 2 __getrlimit getrlimit getrlimit64
setrlimit - setrlimit 2 setrlimit setrlimit64
Jakub
More information about the Libc-hacker
mailing list