This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[PATCH] Misc Alpha stuff for glibc


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]