On Fri, Nov 21, 2008 at 11:59 AM, Tobias Poschwatta <[EMAIL PROTECTED]> wrote:
> On Thu, Nov 20, 2008 at 11:20:05PM +0100, Denys Vlasenko wrote:
>> Please, if something broke, yell at me (and mail your .config).
>
> It broke ioperm.c on my ARM. Uncommenting the hidden_proto seems to
> fix it again. Config attached.
I see.
> --- libc/sysdeps/linux/arm/ioperm.c.orig 2008-11-21 11:32:38.000000000
> +0100
> +++ libc/sysdeps/linux/arm/ioperm.c 2008-11-21 11:32:56.000000000 +0100
> @@ -46,7 +46,7 @@
> #include <sys/sysctl.h>
> #include <sys/io.h>
>
> -/* libc_hidden_proto(ioperm) */
> +libc_hidden_proto(ioperm)
The rule now is to try to keep libc_hidden_proto's in .h files.
Please try attached patch.
--
vda
Index: libc/sysdeps/linux/arm/sys/io.h
===================================================================
--- libc/sysdeps/linux/arm/sys/io.h (revision 24111)
+++ libc/sysdeps/linux/arm/sys/io.h (working copy)
@@ -28,6 +28,7 @@
permission off for that range. This call requires root privileges. */
extern int ioperm (unsigned long int __from, unsigned long int __num,
int __turn_on) __THROW;
+libc_hidden_proto(ioperm)
/* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
permission to access any I/O port is granted. This call requires
Index: libc/sysdeps/linux/alpha/sys/io.h
===================================================================
--- libc/sysdeps/linux/alpha/sys/io.h (revision 24111)
+++ libc/sysdeps/linux/alpha/sys/io.h (working copy)
@@ -32,6 +32,7 @@
E.g., Linux/Alpha for Alpha PCs supports this. */
extern int ioperm (unsigned long int __from, unsigned long int __num,
int __turn_on) __THROW;
+libc_hidden_proto(ioperm)
/* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
access any I/O port is granted. This call requires root
Index: libc/sysdeps/linux/common/ioperm.c
===================================================================
--- libc/sysdeps/linux/common/ioperm.c (revision 24111)
+++ libc/sysdeps/linux/common/ioperm.c (working copy)
@@ -8,8 +8,13 @@
*/
#include <sys/syscall.h>
+
#if defined __ARCH_USE_MMU__ && defined __NR_ioperm
+
/* psm: can't #include <sys/io.h>, some archs miss it */
extern int ioperm(unsigned long __from, unsigned long __num, int __turn_on) __THROW;
+libc_hidden_proto(ioperm)
+
_syscall3(int, ioperm, unsigned long, from, unsigned long, num, int, turn_on)
+
#endif
Index: libc/sysdeps/linux/i386/sys/perm.h
===================================================================
--- libc/sysdeps/linux/i386/sys/perm.h (revision 24111)
+++ libc/sysdeps/linux/i386/sys/perm.h (working copy)
@@ -26,6 +26,7 @@
/* Set port input/output permissions. */
extern int ioperm (unsigned long int __from, unsigned long int __num,
int __turn_on) __THROW;
+libc_hidden_proto(ioperm)
/* Change I/O privilege level. */
Index: libc/sysdeps/linux/i386/sys/io.h
===================================================================
--- libc/sysdeps/linux/i386/sys/io.h (revision 24111)
+++ libc/sysdeps/linux/i386/sys/io.h (working copy)
@@ -33,6 +33,7 @@
E.g., Linux/Alpha for Alpha PCs supports this. */
extern int ioperm (unsigned long int __from, unsigned long int __num,
int __turn_on) __THROW;
+libc_hidden_proto(ioperm)
/* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
access any I/O port is granted. This call requires root
Index: libc/sysdeps/linux/x86_64/sys/perm.h
===================================================================
--- libc/sysdeps/linux/x86_64/sys/perm.h (revision 24111)
+++ libc/sysdeps/linux/x86_64/sys/perm.h (working copy)
@@ -26,6 +26,7 @@
/* Set port input/output permissions. */
extern int ioperm (unsigned long int __from, unsigned long int __num,
int __turn_on) __THROW;
+libc_hidden_proto(ioperm)
/* Change I/O privilege level. */
Index: libc/sysdeps/linux/ia64/sys/io.h
===================================================================
--- libc/sysdeps/linux/ia64/sys/io.h (revision 24111)
+++ libc/sysdeps/linux/ia64/sys/io.h (working copy)
@@ -33,6 +33,7 @@
E.g., Linux/Alpha for Alpha PCs supports this. */
extern int ioperm (unsigned long int __from, unsigned long int __num,
int __turn_on);
+libc_hidden_proto(ioperm)
/* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
access any I/O port is granted. This call requires root
Index: libc/sysdeps/linux/sh/sys/io.h
===================================================================
--- libc/sysdeps/linux/sh/sys/io.h (revision 24111)
+++ libc/sysdeps/linux/sh/sys/io.h (working copy)
@@ -28,6 +28,7 @@
permission off for that range. This call requires root privileges. */
extern int ioperm (unsigned long int __from, unsigned long int __num,
int __turn_on) __THROW;
+libc_hidden_proto(ioperm)
/* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
permission to access any I/O port is granted. This call requires
Index: libc/sysdeps/linux/bfin/sys/io.h
===================================================================
--- libc/sysdeps/linux/bfin/sys/io.h (revision 24111)
+++ libc/sysdeps/linux/bfin/sys/io.h (working copy)
@@ -28,6 +28,7 @@
permission off for that range. This call requires root privileges. */
extern int ioperm (unsigned long int __from, unsigned long int __num,
int __turn_on) __THROW;
+libc_hidden_proto(ioperm)
/* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
permission to access any I/O port is granted. This call requires
_______________________________________________
uClibc mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/uclibc