about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/powerpc/Makefile9
-rw-r--r--sysdeps/powerpc/bits/endian.h6
-rw-r--r--sysdeps/unix/sysv/linux/pread.c6
-rw-r--r--sysdeps/unix/sysv/linux/pread64.c6
-rw-r--r--sysdeps/unix/sysv/linux/pwrite.c6
-rw-r--r--sysdeps/unix/sysv/linux/pwrite64.c6
6 files changed, 30 insertions, 9 deletions
diff --git a/sysdeps/powerpc/Makefile b/sysdeps/powerpc/Makefile
index a9922ff6b6..0f8860b1d0 100644
--- a/sysdeps/powerpc/Makefile
+++ b/sysdeps/powerpc/Makefile
@@ -8,16 +8,21 @@ endif
 
 # On PPC, -fpic works until the GOT contains 2^15 bytes, and possibly
 # more depending on how clever the linker is.  Each GOT entry takes 4 bytes,
-# so that's at least 8192 entries.  Since libc only uses about 1200 entries,
+# so that's at least 8192 entries.  Since libc only uses about 2000 entries,
 # we want to use -fpic, because this generates fewer relocs.
 ifeq (yes,$(build-shared))
 pic-ccflag = -fpic
 endif
 
+ifeq ($(subdir),csu)
 # The initfini generation code doesn't work in the presence of -fPIC, so
 # we use -fpic instead which is much better.
-ifeq ($(subdir),csu)
 CFLAGS-initfini.s = -g0 -fpic
+
+# There is no benefit to using sdata for these objects, and the user
+# of the library should be able to control what goes into sdata.
+CFLAGS-init.o = -G0
+CFLAGS-gmon-start.o = -G0
 endif
 
 ifeq ($(subdir),string)
diff --git a/sysdeps/powerpc/bits/endian.h b/sysdeps/powerpc/bits/endian.h
index 9259da8039..d292ba9fdb 100644
--- a/sysdeps/powerpc/bits/endian.h
+++ b/sysdeps/powerpc/bits/endian.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -24,13 +24,13 @@
 
 #if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN
 # if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN
-#  error Please fix sysdeps/powerpc/bits/endian.h (compiling bi-endian?).
+#  error Both BIG_ENDIAN and LITTLE_ENDIAN defined!
 # endif
 # define __BYTE_ORDER __BIG_ENDIAN
 #else
 # if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN
 #  define __BYTE_ORDER __LITTLE_ENDIAN
 # else
-#  error Please fix sysdeps/powerpc/bits/endian.h.
+#  error Cannot determine current byte order.
 # endif
 #endif
diff --git a/sysdeps/unix/sysv/linux/pread.c b/sysdeps/unix/sysv/linux/pread.c
index eb0d301fa1..4d7a7c5ad7 100644
--- a/sysdeps/unix/sysv/linux/pread.c
+++ b/sysdeps/unix/sysv/linux/pread.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -19,6 +19,9 @@
 
 #include <errno.h>
 #include <unistd.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_pread
 
 extern ssize_t __syscall_pread64 (int fd, void *buf, size_t count,
 				  off_t offset_hi, off_t offset_lo);
@@ -49,4 +52,5 @@ weak_alias (__pread, pread)
 
 #define __pread(fd, buf, count, offset) \
      static internal_function __emulate_pread (fd, buf, count, offset)
+#endif
 #include <sysdeps/posix/pread.c>
diff --git a/sysdeps/unix/sysv/linux/pread64.c b/sysdeps/unix/sysv/linux/pread64.c
index e2505dbaa4..bd600f17d4 100644
--- a/sysdeps/unix/sysv/linux/pread64.c
+++ b/sysdeps/unix/sysv/linux/pread64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -19,6 +19,9 @@
 
 #include <errno.h>
 #include <unistd.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_pread
 
 extern ssize_t __syscall_pread64 (int fd, void *buf, size_t count,
 				  off_t offset_hi, off_t offset_lo);
@@ -50,4 +53,5 @@ weak_alias (__pread64, pread64)
 
 #define __pread64(fd, buf, count, offset) \
      static internal_function __emulate_pread64 (fd, buf, count, offset)
+#endif
 #include <sysdeps/posix/pread64.c>
diff --git a/sysdeps/unix/sysv/linux/pwrite.c b/sysdeps/unix/sysv/linux/pwrite.c
index 9ab3259fc6..72b3cfba66 100644
--- a/sysdeps/unix/sysv/linux/pwrite.c
+++ b/sysdeps/unix/sysv/linux/pwrite.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -19,6 +19,9 @@
 
 #include <errno.h>
 #include <unistd.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_pwrite
 
 extern ssize_t __syscall_pwrite64 (int fd, const void *buf, size_t count,
 				   off_t offset_hi, off_t offset_lo);
@@ -49,4 +52,5 @@ weak_alias (__pwrite, pwrite)
 
 #define __pwrite(fd, buf, count, offset) \
      static internal_function __emulate_pwrite (fd, buf, count, offset)
+#endif
 #include <sysdeps/posix/pwrite.c>
diff --git a/sysdeps/unix/sysv/linux/pwrite64.c b/sysdeps/unix/sysv/linux/pwrite64.c
index f2b4bcbe4e..70902b28b7 100644
--- a/sysdeps/unix/sysv/linux/pwrite64.c
+++ b/sysdeps/unix/sysv/linux/pwrite64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -19,6 +19,9 @@
 
 #include <errno.h>
 #include <unistd.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_pwrite
 
 extern ssize_t __syscall_pwrite64 (int fd, const void *buf, size_t count,
 				   off_t offset_hi, off_t offset_lo);
@@ -50,4 +53,5 @@ weak_alias (__pwrite64, pwrite64)
 
 #define __pwrite64(fd, buf, count, offset) \
      static internal_function __emulate_pwrite64 (fd, buf, count, offset)
+#endif
 #include <sysdeps/posix/pwrite64.c>