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] Re: glibc 2.1.3 CVS version broken


On Tue, Jan 04, 2000 at 10:19:39AM +0100, Andreas Jaeger wrote:
> 
> Hi Uli,
> 
> the conversion from glibc 2.2 to 2.1.3 was not correct:
> ../sysdeps/unix/sysv/linux/i386/mmap64.S:21: kernel-features.h: Datei oder Verzeichnis nicht gefunden

Not only that. Here is what I have in my 2.1 branch right now:
Some parts should be propagated to maintrunk probably as well (fcntl.h
changes and *truncate64 namespace cleanup).

2000-01-04  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/i386/mmap.S (mmap64): Remove weak alias.
	* sysdeps/unix/sysv/linux/i386/mmap64.S: Don't include
	kernel-features.h.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (s_ugetrlimit):
	Remove.
	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h (O_DIRECTORY,
	O_NOFOLLOW): Protect by ifdef __USE_GNU.
	(O_LARGEFILE): Define depending on architecture size.
	* sysdeps/unix/sysv/linux/ftruncate64.c (__have_no_truncate64):
	Renamed from have_no_truncate64.
	* sysdeps/unix/sysv/linux/truncate64.c (__have_no_truncate64):
	Likewise.

--- libc/sysdeps/unix/sysv/linux/i386/mmap.S.jj	Mon Nov 16 13:00:58 1998
+++ libc/sysdeps/unix/sysv/linux/i386/mmap.S	Tue Jan  4 09:22:48 2000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1998, 2000 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
@@ -46,4 +46,3 @@ L(pseudo_end):
 PSEUDO_END (__mmap)
 
 weak_alias (__mmap, mmap)
-weak_alias (__mmap, mmap64)
--- libc/sysdeps/unix/sysv/linux/i386/mmap64.S.jj	Tue Jan  4 09:00:25 2000
+++ libc/sysdeps/unix/sysv/linux/i386/mmap64.S	Tue Jan  4 10:38:24 2000
@@ -18,8 +18,6 @@
 
 #include <sysdep.h>
 
-#include "kernel-features.h"
-
 #define EINVAL	22
 #define ENOSYS	38
 
--- libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h.jj	Tue Aug 17 03:25:43 1999
+++ libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h	Tue Jan  4 10:38:53 2000
@@ -1,5 +1,5 @@
 /* O_*, F_*, FD_* bit values for Linux/SPARC.
-   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 1998, 2000 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
@@ -21,6 +21,7 @@
 #define _FCNTLBITS_H	1
 
 #include <sys/types.h>
+#include <bits/wordsize.h>
 
 /* open/fcntl - O_SYNC is only implemented on blocks devices and on files
    located on an ext2 file system */
@@ -37,11 +38,19 @@
 #define O_NONBLOCK	0x4000
 #define O_NDELAY	(0x0004 | O_NONBLOCK)
 #define O_NOCTTY	0x8000	/* not fcntl */
-#define O_DIRECTORY	0x10000 /* must be a directory */
-#define O_NOFOLLOW	0x20000 /* don't follow links */
 
-/* XXX missing */
-#define O_LARGEFILE	0
+#ifdef __USE_GNU
+# define O_DIRECTORY	0x10000 /* must be a directory */
+# define O_NOFOLLOW	0x20000 /* don't follow links */
+#endif
+
+#ifdef __USE_LARGEFILE64
+# if __WORDSIZE == 64
+#  define O_LARGEFILE	0
+# else
+#  define O_LARGEFILE	0x40000
+# endif
+#endif
 
 /* For now Linux has synchronisity options for data and read operations.
    We define the symbols here but let them do the same as O_SYNC since
--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list.jj	Tue Dec 28 11:29:03 1999
+++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list	Tue Jan  4 09:31:22 2000
@@ -45,7 +45,6 @@ s_sigsuspend	sigsuspend sigsuspend	3	__s
 s_stat64	xstat64 stat64		2	__syscall_stat64
 s_sysctl	sysctl	_sysctl		1	__syscall__sysctl
 s_truncate64	truncate64 truncate64	3	__syscall_truncate64
-s_ugetrlimit	getrlimit ugetrlimit	2	__syscall_ugetrlimit
 s_ustat		ustat	ustat		2	__syscall_ustat
 sys_fstat	fxstat	fstat		2	__syscall_fstat
 sys_lstat	lxstat	lstat		2	__syscall_lstat
--- libc/sysdeps/unix/sysv/linux/truncate64.c.jj	Mon Dec 27 07:48:50 1999
+++ libc/sysdeps/unix/sysv/linux/truncate64.c	Tue Jan  4 10:39:10 2000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000 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
@@ -25,7 +25,7 @@
 
 #ifdef __NR_truncate64
 /* The variable is shared between all wrappers around *truncate64 calls.  */
-int have_no_truncate64;
+int __have_no_truncate64;
 
 extern int __syscall_truncate64 (int fd, int high_length, int low_length);
 
@@ -36,7 +36,7 @@ truncate64 (path, length)
      const char *path;
      off64_t length;
 {
-  if (! have_no_truncate64)
+  if (! __have_no_truncate64)
     {
       unsigned int low = length & 0xffffffff;
       unsigned int high = length >> 32;
@@ -48,7 +48,7 @@ truncate64 (path, length)
 	return result;
 
       __set_errno (saved_errno);
-      have_no_truncate64 = 1;
+      __have_no_truncate64 = 1;
     }
 
   if ((off_t) length != length)
--- libc/sysdeps/unix/sysv/linux/ftruncate64.c.jj	Mon Dec 27 07:49:04 1999
+++ libc/sysdeps/unix/sysv/linux/ftruncate64.c	Tue Jan  4 10:39:26 2000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000 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
@@ -26,7 +26,7 @@
 #ifdef __NR_ftruncate64
 #ifndef __ASSUME_TRUNCATE64_SYSCALL
 /* The variable is shared between all wrappers around *truncate64 calls.  */
-extern int have_no_truncate64;
+extern int __have_no_truncate64;
 #endif
 
 extern int __syscall_ftruncate64 (int fd, int high_length, int low_length);
@@ -38,7 +38,7 @@ ftruncate64 (fd, length)
      int fd;
      off64_t length;
 {
-  if (! have_no_truncate64)
+  if (! __have_no_truncate64)
     {
       unsigned int low = length & 0xffffffff;
       unsigned int high = length >> 32;
@@ -50,7 +50,7 @@ ftruncate64 (fd, length)
 	return result;
 
       __set_errno (saved_errno);
-      have_no_truncate64 = 1;
+      __have_no_truncate64 = 1;
     }
 
   if ((off_t) length != length)

Cheers,
    Jakub
___________________________________________________________________
Jakub Jelinek | jakub@redhat.com | http://sunsite.mff.cuni.cz/~jj
Linux version 2.3.35 on a sparc64 machine (1343.49 BogoMips)
___________________________________________________________________

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