about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c8
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list1
3 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ee88fccdcb..5708db8bd2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+1998-06-27  David S. Miller  <davem@pierdol.cobaltmicro.com>
+
+        * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_matches_host):
+        Cleanup weak_extern usage for _dl_hwcap and _dl_hwcap_mask.
+        (elf_machine_fixup_plt): Likewise.
+        * sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c: When
+	_dl_pagesize not set, use system call to always get correct answer.
+        * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
+        (__syscall_getpagesize): Add
+
 1998-06-27  Ulrich Drepper  <drepper@cygnus.com>
 
 	* resolv/res_send.c (res_send): Fix typo.
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c b/sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c
index e04e926644..6d44be7821 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c
@@ -24,15 +24,17 @@
 
 /* If we are not a static program, this value is collected from the system
    via the AT_PAGESZ auxiliary argument.  If we are a static program, we
-   have to guess.  We should _really_ get Linux a proper sysconf()...  */
+   use the getpagesize system call.  */
 
-extern size_t _dl_pagesize;
+size_t _dl_pagesize;
+
+extern size_t __syscall_getpagesize(void);
 
 int
 __getpagesize ()
 {
   if (_dl_pagesize == 0)
-    _dl_pagesize = EXEC_PAGESIZE;
+    _dl_pagesize = __syscall_getpagesize();
   return _dl_pagesize;
 }
 
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list b/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
index 9a3e4d0e58..14c4691896 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
@@ -3,3 +3,4 @@
 s_getgroups	getgroups getgroups	2	__syscall_getgroups
 s_llseek	llseek	_llseek		5	__sys_llseek
 s_setgroups	setgroups setgroups	2	__syscall_setgroups
+s_getpagesize	getpagesize getpagesize	0	__syscall_getpagesize