[Glibc-bsd-commits] r1688 - in trunk: glibc-2.3-head glibc-ports

Petr Salinger ps-guest at costa.debian.org
Mon Oct 16 11:38:15 UTC 2006


Author: ps-guest
Date: 2006-10-16 11:38:14 +0000 (Mon, 16 Oct 2006)
New Revision: 1688

Added:
   trunk/glibc-ports/NOTES
Removed:
   trunk/glibc-2.3-head/NOTES-2.4
   trunk/glibc-2.3-head/glibc24-cfi-sysdeps.diff
   trunk/glibc-2.3-head/glibc24-extra-sysdeps.diff
   trunk/glibc-2.3-head/glibc24-ftw.diff
   trunk/glibc-2.3-head/glibc24-memusage_no_mremap.diff
   trunk/glibc-2.3-head/glibc25-gai_misc.h
   trunk/glibc-2.3-head/glibc25-nocancel-sysdeps.diff
   trunk/glibc-2.3-head/glibc25-queue.h
Modified:
   trunk/glibc-2.3-head/README
Log:
* build of glibc 2.5 finished



Deleted: trunk/glibc-2.3-head/NOTES-2.4
===================================================================
--- trunk/glibc-2.3-head/NOTES-2.4	2006-10-16 09:26:27 UTC (rev 1687)
+++ trunk/glibc-2.3-head/NOTES-2.4	2006-10-16 11:38:14 UTC (rev 1688)
@@ -1,136 +0,0 @@
-glibc 2.4/2.5 status
-====================
-
-linuxthreads are moved from trunk into ports
-	http://sourceware.org/ml/libc-alpha/2005-07/msg00001.html
-
-for short term Daniel Jacobowitz <dan at debian.org> will maintain them 
-	http://sourceware.org/ml/libc-alpha/2005-07/msg00002.html
-
-
-used directories and files:
----------------------------
-
-	sysdeps/kfreebsd/
-	linuxthreads/kfreebsd/
-	patches/
-	glibc24-cfi-sysdeps.diff
-	glibc24-extra-sysdeps.diff
-	glibc24-memusage_no_mremap.diff
-	glibc24-ftw.diff
-	glibc25-nocancel-sysdeps.diff
-	glibc25-queue.h
-	glibc25-gai_misc.h
-
-	
-test build:
------------
-
-* get main glibc module and linuxthreads module from snapshot or directly from CVS
-	(ftp://sources.redhat.com/pub/glibc/snapshots/)
-
-* move linuxthreads & linuxthreads_db from module linuxthreads into top dir
-
-* try to apply patches
-	of course, patches in subdir upstream are already in CVS
-	failures in configure/configure.in ignore
-	failure in nscd/mem.c fix manually
-	failures in misc/sys/queue.h [only in 2.4.9x; queue.h is updated to another *BSD]
-		overwrite misc/sys/queue.h by glibc25-queue.h from this directory
-
-* fix malloc/memusage.c - by glibc24-memusage_no_mremap.diff
-	unconditionally assumes mremap and uses MREMAP_FIXED
-	it also unconditionally uses __thread :-(
-
-* io/ftw.c uses unconditionally O_DIRECTORY :-((((((
-	it have to be rewritten correctly 
-	add "enum { O_DIRECTORY = 0 };" into bits/fcntl.h
-	this way it will have value, but will not be #define'd
-	it is used unconditionally also in testsuite :-((
-	(workaround currently in glibc24-extra-sysdeps.diff)
-
-* io/ftw.c uses unconditionally (unimplemented) *at functions
-	revert to previous behaviour - by glibc24-ftw.diff
-	
-* enable mandatory cfi marking - by glibc24-cfi-sysdeps.diff 
-
-* update sysdeps - by glibc24-extra-sysdeps.diff
-
-  details of glibc24-extra-sysdeps.diff:
-
-* add "enum { O_DIRECTORY = 0 };" into bits/fcntl.h
-
-* define MSG_NOSIGNAL
-	enable definition in kfreebsd/bits/socket.h
-
-* many files are moved from sysdeps/generic,
-	we #include<> some of them, use new location
-	
-* new sysdeps files (based on linux)
-	kernel-posix-cpu-timers.h (empty)
-	check_fds.c ("void __libc_check_standard_fds (void) {;}")
-
-* new sysdeps files (use generic version)
-	sbrk.c	(#include <misc/sbrk.c>)
-	check_pf.c (#include <inet/check_pf.c>)
-
-* changes to sysdeps
-	i386/sysdep.h - drop definition of SETUP_PIC_REG(reg)
-	dl-osinfo.h - add function _dl_setup_stack_chk_guard()
-
-* add another _not_cancel() functions - by glibc25-nocancel-sysdeps.diff
-
-* for pre-2.5 snapshots add/fix file linuxthreads/sysdeps/pthread/gai_misc.h - by glibc25-gai_misc.h
-   (in upstream CVS as of 2006-10-02 and also in glibc-linuxthreads-2.5)
-
-../src/configure --enable-add-ons=linuxthreads --with-tls --with-__thread i486-kfreebsd --prefix=...
-
-"make check" results:
----------------------
-(as of 2006-09-18)
-
-  requires (and tests) Linux specific O_NOATIME
-make[2]: *** [/build/g24/build/dirent/tst-fdopendir.o] Error 1
-
-  kernel doesn't fill enough in siginfo_t for signal handlers
-make[2]: *** [/build/g24/build/posix/tst-waitid.out] Error 1
-
-  no similar syscall, unimplemented
-make[2]: *** [/build/g24/build/io/tst-readlinkat.out] Error 1
-
-  no similar syscall, emulation hitted by (unavoidable) race condition
-make[2]: *** [/build/g24/build/misc/tst-pselect.out] Error 1
-
-  requires SIGRTMIN
-make[2]: *** [/build/g24/build/rt/tst-timer2.o] Error 1
-make[2]: *** [/build/g24/build/rt/tst-mqueue5.o] Error 1
-make[2]: *** [/build/g24/build/rt/tst-timer4.o] Error 1
-make[2]: *** [/build/g24/build/rt/tst-timer5.o] Error 1
-make[2]: *** [/build/g24/build/rt/tst-cputimer1.o] Error 1
-make[2]: *** [/build/g24/build/rt/tst-cputimer2.o] Error 1
-make[2]: *** [/build/g24/build/rt/tst-cputimer3.o] Error 1
-
-  examine why, maybe due to non-rt behaviour of signals
-make[2]: *** [/build/g24/build/rt/tst-aio.out] Error 1
-make[2]: *** [/build/g24/build/rt/tst-aio64.out] Error 1
-make[2]: *** [/build/g24/build/rt/tst-aio9.out] Error 1
-make[2]: *** [/build/g24/build/rt/tst-aio10.out] Error 1
-
-  due to unimplemented readlinkat()
-make[2]: *** [/build/g24/build/debug/tst-chk1.out] Error 1
-make[2]: *** [/build/g24/build/debug/tst-chk2.out] Error 1
-make[2]: *** [/build/g24/build/debug/tst-chk3.out] Error 1
-make[2]: *** [/build/g24/build/debug/tst-lfschk1.out] Error 1
-make[2]: *** [/build/g24/build/debug/tst-lfschk2.out] Error 1
-make[2]: *** [/build/g24/build/debug/tst-lfschk3.out] Error 1
-
-  kernel problem - dynamic loader is loaded at base addr 0
-  all elf tests passed
-	- when executed "normally"
-	- when tested under kFreeBSD 6.1 with SVN r1622
-make[2]: *** [/build/g24/build/elf/neededtest.out] Error 14
-make[2]: *** [/build/g24/build/elf/neededtest2.out] Error 14
-make[2]: *** [/build/g24/build/elf/neededtest3.out] Error 17
-make[2]: *** [/build/g24/build/elf/neededtest4.out] Error 2
-make[2]: *** [/build/g24/build/elf/circleload1.out] Error 9
-

Modified: trunk/glibc-2.3-head/README
===================================================================
--- trunk/glibc-2.3-head/README	2006-10-16 09:26:27 UTC (rev 1687)
+++ trunk/glibc-2.3-head/README	2006-10-16 11:38:14 UTC (rev 1688)
@@ -40,12 +40,4 @@
 -------------------------------------------------------------------------------
 
 
-Status of 2.3.6:
-================
-
-i386	- looks fine, uploaded in unreleased
-
-amd64	- looks fine, uploaded in unstable
-
-alpha	- not even tried to build
-
+For glibc 2.5 and above, see glibc-ports in this SVN.

Deleted: trunk/glibc-2.3-head/glibc24-cfi-sysdeps.diff
===================================================================
--- trunk/glibc-2.3-head/glibc24-cfi-sysdeps.diff	2006-10-16 09:26:27 UTC (rev 1687)
+++ trunk/glibc-2.3-head/glibc24-cfi-sysdeps.diff	2006-10-16 11:38:14 UTC (rev 1688)
@@ -1,144 +0,0 @@
- patch to kfreebsd sysdeps to enable cfi for glibc 2.4 snapshot
- see also NOTES-2.4
-
-
-Index: linuxthreads/kfreebsd/i386/sysdep-cancel.h
-===================================================================
---- linuxthreads/kfreebsd/i386/sysdep-cancel.h	(revision 1568)
-+++ linuxthreads/kfreebsd/i386/sysdep-cancel.h	(revision 1570)
-@@ -61,12 +61,13 @@
- 	fork()
- 	vfork()
- 	rfork()
-+	pipe()
-    
-    none of them is cancelable, therefore
- */
- 
--# define PUSHRESULT	pushl %eax; pushfl
--# define POPRESULT	popfl; popl %eax
-+# define PUSHRESULT	pushl %eax; cfi_adjust_cfa_offset (4);  pushfl;    cfi_adjust_cfa_offset (4)
-+# define POPRESULT	popfl;      cfi_adjust_cfa_offset (-4); popl %eax; cfi_adjust_cfa_offset (-4)
- 
- # ifdef IS_IN_libpthread
- #  define CENABLE	call __pthread_enable_asynccancel;
-@@ -74,15 +75,23 @@
- # elif defined IS_IN_librt
- #  ifdef PIC
- #   define CENABLE	pushl %ebx; \
-+			cfi_adjust_cfa_offset (4); \
-+			cfi_rel_offset (ebx, 0); \
- 			call __i686.get_pc_thunk.bx; \
- 			addl     $_GLOBAL_OFFSET_TABLE_, %ebx; \
- 			call __librt_enable_asynccancel at PLT; \
--			popl %ebx;
-+			popl %ebx; \
-+			cfi_adjust_cfa_offset (-4); \
-+			cfi_restore (ebx);
- #   define CDISABLE	pushl %ebx; \
-+			cfi_adjust_cfa_offset (4); \
-+			cfi_rel_offset (ebx, 0); \
- 			call __i686.get_pc_thunk.bx; \
- 			addl     $_GLOBAL_OFFSET_TABLE_, %ebx; \
- 			call __librt_disable_asynccancel at PLT; \
--			popl %ebx;
-+			popl %ebx; \
-+			cfi_adjust_cfa_offset (-4); \
-+			cfi_restore (ebx);
- #  else
- #   define CENABLE	call __librt_enable_asynccancel;
- #   define CDISABLE	call __librt_disable_asynccancel
-Index: sysdeps/kfreebsd/i386/rfork.S
-===================================================================
---- sysdeps/kfreebsd/i386/rfork.S	(revision 1568)
-+++ sysdeps/kfreebsd/i386/rfork.S	(revision 1570)
-@@ -33,6 +33,7 @@
- 	andl %edx, %eax
- 
- 	popl %edx
-+	cfi_adjust_cfa_offset(-4)
- 	jmp  *%ecx
- 
- L(pseudo_end):
-Index: sysdeps/kfreebsd/i386/start_thread.S
-===================================================================
---- sysdeps/kfreebsd/i386/start_thread.S	(revision 1568)
-+++ sysdeps/kfreebsd/i386/start_thread.S	(revision 1570)
-@@ -28,6 +28,10 @@
- 
- 	.text
- ENTRY (__start_thread)
-+	/* End FDE now, because in the child the unwind info will be
-+	   wrong.  */
-+	cfi_endproc
-+
- 	/* There is a window of a few instructions, right after the rfork
- 	   system call, where the handling of a signal would write garbage
- 	   into the stack shared by the parent and the child (assuming
-@@ -199,4 +203,5 @@
- 	popl	%ebx
- 	popl	%ebp
- 	jmp	SYSCALL_ERROR_LABEL
-+	cfi_startproc
- PSEUDO_END (__start_thread)
-Index: sysdeps/kfreebsd/i386/vfork.S
-===================================================================
---- sysdeps/kfreebsd/i386/vfork.S	(revision 1568)
-+++ sysdeps/kfreebsd/i386/vfork.S	(revision 1570)
-@@ -27,6 +27,7 @@
- 
- 	/* Pop the return PC value into ECX.  */
- 	popl	%ecx
-+	cfi_adjust_cfa_offset(-4)
- 
- 	/* Perform the system call.  */
- 	DO_CALL (vfork, 0)
-@@ -45,6 +46,7 @@
- L(error):
- 	/* Push back the return PC.  */
- 	pushl	%ecx
-+	cfi_adjust_cfa_offset(4)
- 
- 	/* Branch to the error handler, hidden in PSEUDO_END.  */
- 	jmp	SYSCALL_ERROR_LABEL
-Index: sysdeps/kfreebsd/i386/sysdep.h
-===================================================================
---- sysdeps/kfreebsd/i386/sysdep.h	(revision 1568)
-+++ sysdeps/kfreebsd/i386/sysdep.h	(revision 1570)
-@@ -136,14 +136,20 @@
- #  else
- #   define SYSCALL_ERROR_HANDLER					      \
- 0:pushl %ebx;								      \
-+  cfi_adjust_cfa_offset (4);                                                  \
-+  cfi_rel_offset (ebx, 0);                                                    \
-   SETUP_PIC_REG (bx);							      \
-   addl $_GLOBAL_OFFSET_TABLE_, %ebx;					      \
-   pushl %eax;								      \
-+  cfi_adjust_cfa_offset (4);                                                  \
-   PUSH_ERRNO_LOCATION_RETURN;						      \
-   call BP_SYM (__errno_location)@PLT;					      \
-   POP_ERRNO_LOCATION_RETURN;						      \
-   popl %ecx;								      \
-+  cfi_adjust_cfa_offset (-4);                                                 \
-   popl %ebx;								      \
-+  cfi_adjust_cfa_offset (-4);                                                 \
-+  cfi_restore (ebx);                                                          \
-   movl %ecx, (%eax);							      \
-   orl $-1, %eax;							      \
-   jmp L(pseudo_end);
-Index: sysdeps/kfreebsd/i386/syscall.S
-===================================================================
---- sysdeps/kfreebsd/i386/syscall.S	(revision 1568)
-+++ sysdeps/kfreebsd/i386/syscall.S	(revision 1570)
-@@ -21,9 +21,11 @@
- 	  .text;
- ENTRY (syscall)
- 	popl %ecx		/* Pop return address into %ecx.  */
-+	cfi_adjust_cfa_offset (-4)
- 	movl 0(%esp), %eax	/* Load syscall number into %eax. */
- 	int $0x80		/* Do the system call.  */
- 	pushl %ecx		/* Push back return address.  */
-+	cfi_adjust_cfa_offset (4)
- 	jb SYSCALL_ERROR_LABEL;	/* Jump to error handler if error.  */
- 
- L(pseudo_end):

Deleted: trunk/glibc-2.3-head/glibc24-extra-sysdeps.diff
===================================================================
--- trunk/glibc-2.3-head/glibc24-extra-sysdeps.diff	2006-10-16 09:26:27 UTC (rev 1687)
+++ trunk/glibc-2.3-head/glibc24-extra-sysdeps.diff	2006-10-16 11:38:14 UTC (rev 1688)
@@ -1,126 +0,0 @@
-
- patch to kfreebsd sysdeps for building glibc 2.4 snapshot
- see also NOTES-2.4
-
-diff -urN linuxthreads/kfreebsd/allocrtsig.c linuxthreads/kfreebsd/allocrtsig.c
---- linuxthreads/kfreebsd/allocrtsig.c	2005-12-19 08:43:29.000000000 +0100
-+++ linuxthreads/kfreebsd/allocrtsig.c	2006-03-02 10:34:13.000000000 +0100
-@@ -1,4 +1,4 @@
--#include <sysdeps/generic/allocrtsig.c>
-+#include <signal/allocrtsig.c>
- strong_alias (__libc_current_sigrtmin, __libc_current_sigrtmin_private);
- strong_alias (__libc_current_sigrtmax, __libc_current_sigrtmax_private);
- strong_alias (__libc_allocate_rtsig, __libc_allocate_rtsig_private);
-diff -urN -x .svn sysdeps/kfreebsd/kernel-posix-cpu-timers.h sysdeps/kfreebsd/kernel-posix-cpu-timers.h
---- sysdeps/kfreebsd/kernel-posix-cpu-timers.h	1970-01-01 01:00:00.000000000 +0100
-+++ sysdeps/kfreebsd/kernel-posix-cpu-timers.h	2006-03-02 14:04:19.000000000 +0100
-@@ -0,0 +1 @@
-+/* placeholder */
-diff -urN -x .svn sysdeps/kfreebsd/bits/fcntl.h sysdeps/kfreebsd/bits/fcntl.h
---- sysdeps/kfreebsd/bits/fcntl.h	2005-12-16 16:29:14.000000000 +0100
-+++ sysdeps/kfreebsd/bits/fcntl.h	2006-03-02 11:24:01.000000000 +0100
-@@ -43,6 +43,8 @@
- #define O_NOFOLLOW	0x0100	/* Don't follow symlinks.  */
- #endif
- 
-+enum { O_DIRECTORY = 0 };
-+
- /* File status flags for `open' and `fcntl'.  */
- #define	O_APPEND	0x0008	/* Writes append to the file.  */
- #define	O_NONBLOCK	0x0004	/* Non-blocking I/O.  */
-diff -urN -x .svn sysdeps/kfreebsd/check_fds.c sysdeps/kfreebsd/check_fds.c
---- sysdeps/kfreebsd/check_fds.c	1970-01-01 01:00:00.000000000 +0100
-+++ sysdeps/kfreebsd/check_fds.c	2006-03-02 10:30:14.000000000 +0100
-@@ -0,0 +1 @@
-+void __libc_check_standard_fds (void) {;}
-diff -urN -x .svn sysdeps/kfreebsd/check_pf.c sysdeps/kfreebsd/check_pf.c
---- sysdeps/kfreebsd/check_pf.c	1970-01-01 01:00:00.000000000 +0100
-+++ sysdeps/kfreebsd/check_pf.c	2006-03-02 10:39:53.000000000 +0100
-@@ -0,0 +1 @@
-+#include <inet/check_pf.c>
-diff -urN -x .svn sysdeps/kfreebsd/dl-osinfo.h sysdeps/kfreebsd/dl-osinfo.h
---- sysdeps/kfreebsd/dl-osinfo.h	2006-02-14 18:12:55.000000000 +0100
-+++ sysdeps/kfreebsd/dl-osinfo.h	2006-03-02 11:24:32.000000000 +0100
-@@ -97,3 +97,24 @@
-           }								      \
-       }									      \
-   } while (0)
-+
-+static inline uintptr_t __attribute__ ((always_inline))
-+_dl_setup_stack_chk_guard (void)
-+{
-+  uintptr_t ret;
-+#ifdef ENABLE_STACKGUARD_RANDOMIZE 
-+  int fd = __open ("/dev/urandom", O_RDONLY);
-+  if (fd >= 0)
-+    {
-+      ssize_t reslen = __read (fd, &ret, sizeof (ret));
-+      __close (fd);
-+      if (reslen == (ssize_t) sizeof (ret))
-+        return ret;
-+    }
-+#endif
-+  ret = 0;
-+  unsigned char *p = (unsigned char *) &ret;
-+  p[sizeof (ret) - 1] = 255;
-+  p[sizeof (ret) - 2] = '\n';
-+  return ret;
-+}
-diff -urN -x .svn sysdeps/kfreebsd/glob.c sysdeps/kfreebsd/glob.c
---- sysdeps/kfreebsd/glob.c	2006-01-23 11:02:39.000000000 +0100
-+++ sysdeps/kfreebsd/glob.c	2006-03-02 10:37:07.000000000 +0100
-@@ -1,3 +1,3 @@
- /* 'glob64' is different from 'glob', because
-    'struct stat64' != 'struct stat'.  */
--#include <sysdeps/generic/glob.c>
-+#include <posix/glob.c>
-diff -urN -x .svn sysdeps/kfreebsd/i386/sysdep.h sysdeps/kfreebsd/i386/sysdep.h
---- sysdeps/kfreebsd/i386/sysdep.h	2006-01-19 14:02:55.000000000 +0100
-+++ sysdeps/kfreebsd/i386/sysdep.h	2006-03-02 10:31:06.000000000 +0100
-@@ -81,27 +81,6 @@
- # define SYSCALL_ERROR_HANDLER	/* Nothing here; code in sysdep.S is used.  */
- #else
- 
--# ifndef HAVE_HIDDEN
--#  define SETUP_PIC_REG(reg) \
--  call 1f;								      \
--  .subsection 1;							      \
--1:movl (%esp), %e##reg;							      \
--  ret;									      \
--  .previous
--# else
--#  define SETUP_PIC_REG(reg) \
--  .section .gnu.linkonce.t.__i686.get_pc_thunk.reg,"ax", at progbits;	      \
--  .globl __i686.get_pc_thunk.reg;					      \
--  .hidden __i686.get_pc_thunk.reg;					      \
--  .type __i686.get_pc_thunk.reg, at function;				      \
--__i686.get_pc_thunk.reg:						      \
--  movl (%esp), %e##reg;							      \
--  ret;									      \
--  .size __i686.get_pc_thunk.reg, . - __i686.get_pc_thunk.reg;		      \
--  .previous;								      \
--  call __i686.get_pc_thunk.reg
--# endif
--
- # if RTLD_PRIVATE_ERRNO
- #  define SYSCALL_ERROR_HANDLER						      \
- 0:SETUP_PIC_REG(cx);							      \
-diff -urN -x .svn sysdeps/kfreebsd/sbrk.c sysdeps/kfreebsd/sbrk.c
---- sysdeps/kfreebsd/sbrk.c	1970-01-01 01:00:00.000000000 +0100
-+++ sysdeps/kfreebsd/sbrk.c	2006-03-02 10:39:38.000000000 +0100
-@@ -0,0 +1 @@
-+#include <misc/sbrk.c>
-diff -urN -x .svn sysdeps/kfreebsd/sigreturn.c sysdeps/kfreebsd/sigreturn.c
---- sysdeps/kfreebsd/sigreturn.c	2005-12-16 13:27:58.000000000 +0100
-+++ sysdeps/kfreebsd/sigreturn.c	2006-03-02 10:38:02.000000000 +0100
-@@ -1,3 +1,3 @@
- /* The sigreturn syscall cannot be explicitly called on FreeBSD, only
-    implicitly by returning from a signal handler.  */
--#include <sysdeps/generic/sigreturn.c>
-+#include <signal/sigreturn.c>
-diff -urN -x .svn sysdeps/kfreebsd/utmp-compat/utmp_file.c sysdeps/kfreebsd/utmp-compat/utmp_file.c
---- sysdeps/kfreebsd/utmp-compat/utmp_file.c	2005-12-16 13:27:58.000000000 +0100
-+++ sysdeps/kfreebsd/utmp-compat/utmp_file.c	2006-03-02 10:36:08.000000000 +0100
-@@ -1 +1 @@
--#include <sysdeps/generic/utmp_file.c>
-+#include <login/utmp_file.c>

Deleted: trunk/glibc-2.3-head/glibc24-ftw.diff
===================================================================
--- trunk/glibc-2.3-head/glibc24-ftw.diff	2006-10-16 09:26:27 UTC (rev 1687)
+++ trunk/glibc-2.3-head/glibc24-ftw.diff	2006-10-16 11:38:14 UTC (rev 1688)
@@ -1,51 +0,0 @@
-
-disable usage of unimplemented *at functions
-revert to previous behaviour, inspired by 
-	http://sourceware.org/ml/glibc-cvs/2006-q1/msg00636.html
-	http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/io/ftw.c.diff?cvsroot=glibc&r1=1.50&r2=1.51
-
-
---- io/ftw.c~	2006-06-26 19:35:23.000000000 +0200
-+++ io/ftw.c	2006-06-26 19:35:23.000000000 +0200
-@@ -338,6 +338,7 @@
-     {
-       assert (data->dirstreams[data->actdir] == NULL);
- 
-+#if 0
-       if (dfdp != NULL && *dfdp != -1)
- 	{
- 	  int fd = openat64_not_cancel_3 (*dfdp, data->dirbuf + data->ftw.base,
-@@ -347,6 +348,7 @@
- 	    close_not_cancel_no_status (fd);
- 	}
-       else
-+#endif      
- 	{
- 	  const char *name = ((data->flags & FTW_CHDIR)
- 			      ? data->dirbuf + data->ftw.base: data->dirbuf);
-@@ -401,10 +403,12 @@
-   *((char *) __mempcpy (data->dirbuf + data->ftw.base, name, namlen)) = '\0';
- 
-   int statres;
-+#if 0  
-   if (dir->streamfd != -1)
-     statres = FXSTATAT (_STAT_VER, dir->streamfd, name, &st,
- 			(data->flags & FTW_PHYS) ? AT_SYMLINK_NOFOLLOW : 0);
-   else
-+#endif  
-     {
-       if ((data->flags & FTW_CHDIR) == 0)
- 	name = data->dirbuf;
-@@ -424,10 +428,12 @@
- 	flag = FTW_SLN;
-       else
- 	{
-+#if 0	
- 	  if (dir->streamfd != -1)
- 	    statres = FXSTATAT (_STAT_VER, dir->streamfd, name, &st,
- 				AT_SYMLINK_NOFOLLOW);
- 	  else
-+#endif	  
- 	    statres = LXSTAT (_STAT_VER, name, &st);
- 	  if (statres == 0 && S_ISLNK (st.st_mode))
- 	    flag = FTW_SLN;

Deleted: trunk/glibc-2.3-head/glibc24-memusage_no_mremap.diff
===================================================================
--- trunk/glibc-2.3-head/glibc24-memusage_no_mremap.diff	2006-10-16 09:26:27 UTC (rev 1687)
+++ trunk/glibc-2.3-head/glibc24-memusage_no_mremap.diff	2006-10-16 11:38:14 UTC (rev 1688)
@@ -1,19 +0,0 @@
---- malloc/memusage.c~	2006-06-12 15:45:13.000000000 +0200
-+++ malloc/memusage.c	2006-06-12 15:45:13.000000000 +0200
-@@ -650,6 +650,8 @@
-   return result;
- }
- 
-+#include <_G_config.h>
-+#ifdef _G_HAVE_MREMAP
- 
- /* `mmap' replacement.  We do not have to keep track of the sizesince
-    `munmap' will get it as a parameter.  */
-@@ -715,6 +717,7 @@
-   /* Return the pointer to the user buffer.  */
-   return result;
- }
-+#endif
- 
- 
- /* `munmap' replacement.  */

Deleted: trunk/glibc-2.3-head/glibc25-gai_misc.h
===================================================================
--- trunk/glibc-2.3-head/glibc25-gai_misc.h	2006-10-16 09:26:27 UTC (rev 1687)
+++ trunk/glibc-2.3-head/glibc25-gai_misc.h	2006-10-16 11:38:14 UTC (rev 1688)
@@ -1,69 +0,0 @@
-/* Copyright (C) 2006 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/* We define a special synchronization primitive for AIO.  POSIX
-   conditional variables would be ideal but the pthread_cond_*wait
-   operations do not return on EINTR.  This is a requirement for
-   correct aio_suspend and lio_listio implementations.  */
-
-#include <assert.h>
-#include <signal.h>
-
-#undef DONT_NEED_GAI_MISC_COND
-
-#define gai_start_notify_thread __gai_start_notify_thread
-#define gai_create_helper_thread __gai_create_helper_thread
-
-extern inline void
-__gai_start_notify_thread (void)
-{
-  sigset_t ss;
-  sigemptyset (&ss);
-  sigprocmask (SIG_SETMASK, &ss, NULL);
-}
-
-extern inline int
-__gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
-			    void *arg)
-{
-  pthread_attr_t attr;
-
-  /* Make sure the thread is created detached.  */
-  pthread_attr_init (&attr);
-  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
-
-  /* The helper thread needs only very little resources.  */
-  (void) pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN);
-
-  /* Block all signals in the helper thread.  To do this thoroughly we
-     temporarily have to block all signals here.  */
-  sigset_t ss;
-  sigset_t oss;
-  sigfillset (&ss);
-  sigprocmask (SIG_SETMASK, &ss, &oss);
-
-  int ret = pthread_create (threadp, &attr, tf, arg);
-
-  /* Restore the signal mask.  */
-  sigprocmask (SIG_SETMASK, &oss, NULL);
-
-  (void) pthread_attr_destroy (&attr);
-  return ret;
-}
-
-#include_next <gai_misc.h>

Deleted: trunk/glibc-2.3-head/glibc25-nocancel-sysdeps.diff
===================================================================
--- trunk/glibc-2.3-head/glibc25-nocancel-sysdeps.diff	2006-10-16 09:26:27 UTC (rev 1687)
+++ trunk/glibc-2.3-head/glibc25-nocancel-sysdeps.diff	2006-10-16 11:38:14 UTC (rev 1688)
@@ -1,70 +0,0 @@
-Index: linuxthreads/kfreebsd/pt-sigsuspend.S
-===================================================================
---- linuxthreads/kfreebsd/pt-sigsuspend.S	(revision 1659)
-+++ linuxthreads/kfreebsd/pt-sigsuspend.S	(working copy)
-@@ -23,3 +23,7 @@
- PSEUDO_NOERRNO(__pthread_sigsuspend, sigsuspend, 1)
- 	ret_NOERRNO
- PSEUDO_END_NOERRNO(__pthread_sigsuspend)
-+
-+PSEUDO(__syscall_sigsuspend, sigsuspend, 1)
-+	ret
-+PSEUDO_END(__syscall_sigsuspend)
-Index: sysdeps/kfreebsd/not-cancel.h
-===================================================================
---- sysdeps/kfreebsd/not-cancel.h	(revision 1659)
-+++ sysdeps/kfreebsd/not-cancel.h	(working copy)
-@@ -74,3 +74,15 @@
- /* Uncancelable waitpid.  */
- # define waitpid_not_cancel(pid, stat_loc, options) \
-   INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL)
-+
-+/* Uncancelable pause.  */
-+# define pause_not_cancel() \
-+  __pause_nocancel ()
-+
-+/* Uncancelable nanosleep.  */
-+# define nanosleep_not_cancel(requested_time, remaining) \
-+  INLINE_SYSCALL (nanosleep, 2, requested_time, remaining)
-+
-+/* Uncancelable sigsuspend.  */
-+#define sigsuspend_not_cancel(set) \
-+  INLINE_SYSCALL (sigsuspend, 1, set)
-Index: sysdeps/kfreebsd/syscalls-inline.h
-===================================================================
---- sysdeps/kfreebsd/syscalls-inline.h	(revision 1659)
-+++ sysdeps/kfreebsd/syscalls-inline.h	(working copy)
-@@ -21,9 +21,12 @@
- #define KFREEBSD_INLINE_SYSCALLS_H
- 
- #include <sys/types.h>
-+#define __need_sigset_t
-+#include <signal.h>
- 
- struct iovec;
- struct rusage;
-+struct timespec;
- 
- int __syscall_open(const char *path, int flags, ...);
- int __syscall_close(int fd);
-@@ -35,5 +38,7 @@
- int __syscall_fcntl(int fd, int cmd, ...);
- int __syscall_fork(void);
- int __syscall_wait4(int pid, int *status, int options, struct rusage *rusage);
-+int __syscall_sigsuspend (const sigset_t *set);
-+int __syscall_nanosleep (const struct timespec *requested_time, struct timespec *remaining);
- 
- #endif
-Index: sysdeps/kfreebsd/syscalls.list
-===================================================================
---- sysdeps/kfreebsd/syscalls.list	(revision 1659)
-+++ sysdeps/kfreebsd/syscalls.list	(working copy)
-@@ -144,6 +144,8 @@
- sys_connect	-       connect	                i:ipi	__syscall_connect
- sys_bind        -       bind                    i:ipi   __syscall_bind
- sys_sendto      -       sendto          	i:ibnibn __syscall_sendto
-+sys_nanosleep	EXTRA	nanosleep		i:pp	__syscall_nanosleep
-+sys_sigsuspend	EXTRA	sigsuspend		i:p	__syscall_sigsuspend
- swapcontext	-	swapcontext		i:pp	__swapcontext	swapcontext
- swapon		-	swapon			i:s	swapon
- swapoff		-	swapoff			i:s	swapoff

Deleted: trunk/glibc-2.3-head/glibc25-queue.h
===================================================================
--- trunk/glibc-2.3-head/glibc25-queue.h	2006-10-16 09:26:27 UTC (rev 1687)
+++ trunk/glibc-2.3-head/glibc25-queue.h	2006-10-16 11:38:14 UTC (rev 1688)
@@ -1,553 +0,0 @@
-/*
- * Copyright (c) 1991, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)queue.h	8.5 (Berkeley) 8/20/94
- * $FreeBSD: src/sys/sys/queue.h,v 1.58 2004/04/07 04:19:49 imp Exp $
- */
-
-#ifndef _SYS_QUEUE_H_
-#define	_SYS_QUEUE_H_
-
-#include <sys/cdefs.h>
-
-/*
- * This file defines four types of data structures: singly-linked lists,
- * singly-linked tail queues, lists and tail queues.
- *
- * A singly-linked list is headed by a single forward pointer. The elements
- * are singly linked for minimum space and pointer manipulation overhead at
- * the expense of O(n) removal for arbitrary elements. New elements can be
- * added to the list after an existing element or at the head of the list.
- * Elements being removed from the head of the list should use the explicit
- * macro for this purpose for optimum efficiency. A singly-linked list may
- * only be traversed in the forward direction.  Singly-linked lists are ideal
- * for applications with large datasets and few or no removals or for
- * implementing a LIFO queue.
- *
- * A singly-linked tail queue is headed by a pair of pointers, one to the
- * head of the list and the other to the tail of the list. The elements are
- * singly linked for minimum space and pointer manipulation overhead at the
- * expense of O(n) removal for arbitrary elements. New elements can be added
- * to the list after an existing element, at the head of the list, or at the
- * end of the list. Elements being removed from the head of the tail queue
- * should use the explicit macro for this purpose for optimum efficiency.
- * A singly-linked tail queue may only be traversed in the forward direction.
- * Singly-linked tail queues are ideal for applications with large datasets
- * and few or no removals or for implementing a FIFO queue.
- *
- * A list is headed by a single forward pointer (or an array of forward
- * pointers for a hash table header). The elements are doubly linked
- * so that an arbitrary element can be removed without a need to
- * traverse the list. New elements can be added to the list before
- * or after an existing element or at the head of the list. A list
- * may only be traversed in the forward direction.
- *
- * A tail queue is headed by a pair of pointers, one to the head of the
- * list and the other to the tail of the list. The elements are doubly
- * linked so that an arbitrary element can be removed without a need to
- * traverse the list. New elements can be added to the list before or
- * after an existing element, at the head of the list, or at the end of
- * the list. A tail queue may be traversed in either direction.
- *
- * For details on the use of these macros, see the queue(3) manual page.
- *
- *
- *				SLIST	LIST	STAILQ	TAILQ
- * _HEAD			+	+	+	+
- * _HEAD_INITIALIZER		+	+	+	+
- * _ENTRY			+	+	+	+
- * _INIT			+	+	+	+
- * _EMPTY			+	+	+	+
- * _FIRST			+	+	+	+
- * _NEXT			+	+	+	+
- * _PREV			-	-	-	+
- * _LAST			-	-	+	+
- * _FOREACH			+	+	+	+
- * _FOREACH_SAFE		+	+	+	+
- * _FOREACH_REVERSE		-	-	-	+
- * _FOREACH_REVERSE_SAFE	-	-	-	+
- * _INSERT_HEAD			+	+	+	+
- * _INSERT_BEFORE		-	+	-	+
- * _INSERT_AFTER		+	+	+	+
- * _INSERT_TAIL			-	-	+	+
- * _CONCAT			-	-	+	+
- * _REMOVE_HEAD			+	-	+	-
- * _REMOVE			+	+	+	+
- *
- */
-#define	QUEUE_MACRO_DEBUG 0
-#if QUEUE_MACRO_DEBUG
-/* Store the last 2 places the queue element or head was altered */
-struct qm_trace {
-	char * lastfile;
-	int lastline;
-	char * prevfile;
-	int prevline;
-};
-
-#define	TRACEBUF	struct qm_trace trace;
-#define	TRASHIT(x)	do {(x) = (void *)-1;} while (0)
-
-#define	QMD_TRACE_HEAD(head) do {					\
-	(head)->trace.prevline = (head)->trace.lastline;		\
-	(head)->trace.prevfile = (head)->trace.lastfile;		\
-	(head)->trace.lastline = __LINE__;				\
-	(head)->trace.lastfile = __FILE__;				\
-} while (0)
-
-#define	QMD_TRACE_ELEM(elem) do {					\
-	(elem)->trace.prevline = (elem)->trace.lastline;		\
-	(elem)->trace.prevfile = (elem)->trace.lastfile;		\
-	(elem)->trace.lastline = __LINE__;				\
-	(elem)->trace.lastfile = __FILE__;				\
-} while (0)
-
-#else
-#define	QMD_TRACE_ELEM(elem)
-#define	QMD_TRACE_HEAD(head)
-#define	TRACEBUF
-#define	TRASHIT(x)
-#endif	/* QUEUE_MACRO_DEBUG */
-
-/*
- * Singly-linked List declarations.
- */
-#define	SLIST_HEAD(name, type)						\
-struct name {								\
-	struct type *slh_first;	/* first element */			\
-}
-
-#define	SLIST_HEAD_INITIALIZER(head)					\
-	{ NULL }
-
-#define	SLIST_ENTRY(type)						\
-struct {								\
-	struct type *sle_next;	/* next element */			\
-}
-
-/*
- * Singly-linked List functions.
- */
-#define	SLIST_EMPTY(head)	((head)->slh_first == NULL)
-
-#define	SLIST_FIRST(head)	((head)->slh_first)
-
-#define	SLIST_FOREACH(var, head, field)					\
-	for ((var) = SLIST_FIRST((head));				\
-	    (var);							\
-	    (var) = SLIST_NEXT((var), field))
-
-#define	SLIST_FOREACH_SAFE(var, head, field, tvar)			\
-	for ((var) = SLIST_FIRST((head));				\
-	    (var) && ((tvar) = SLIST_NEXT((var), field), 1);		\
-	    (var) = (tvar))
-
-#define	SLIST_FOREACH_PREVPTR(var, varp, head, field)			\
-	for ((varp) = &SLIST_FIRST((head));				\
-	    ((var) = *(varp)) != NULL;					\
-	    (varp) = &SLIST_NEXT((var), field))
-
-#define	SLIST_INIT(head) do {						\
-	SLIST_FIRST((head)) = NULL;					\
-} while (0)
-
-#define	SLIST_INSERT_AFTER(slistelm, elm, field) do {			\
-	SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field);	\
-	SLIST_NEXT((slistelm), field) = (elm);				\
-} while (0)
-
-#define	SLIST_INSERT_HEAD(head, elm, field) do {			\
-	SLIST_NEXT((elm), field) = SLIST_FIRST((head));			\
-	SLIST_FIRST((head)) = (elm);					\
-} while (0)
-
-#define	SLIST_NEXT(elm, field)	((elm)->field.sle_next)
-
-#define	SLIST_REMOVE(head, elm, type, field) do {			\
-	if (SLIST_FIRST((head)) == (elm)) {				\
-		SLIST_REMOVE_HEAD((head), field);			\
-	}								\
-	else {								\
-		struct type *curelm = SLIST_FIRST((head));		\
-		while (SLIST_NEXT(curelm, field) != (elm))		\
-			curelm = SLIST_NEXT(curelm, field);		\
-		SLIST_NEXT(curelm, field) =				\
-		    SLIST_NEXT(SLIST_NEXT(curelm, field), field);	\
-	}								\
-} while (0)
-
-#define	SLIST_REMOVE_HEAD(head, field) do {				\
-	SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field);	\
-} while (0)
-
-/*
- * Singly-linked Tail queue declarations.
- */
-#define	STAILQ_HEAD(name, type)						\
-struct name {								\
-	struct type *stqh_first;/* first element */			\
-	struct type **stqh_last;/* addr of last next element */		\
-}
-
-#define	STAILQ_HEAD_INITIALIZER(head)					\
-	{ NULL, &(head).stqh_first }
-
-#define	STAILQ_ENTRY(type)						\
-struct {								\
-	struct type *stqe_next;	/* next element */			\
-}
-
-/*
- * Singly-linked Tail queue functions.
- */
-#define	STAILQ_CONCAT(head1, head2) do {				\
-	if (!STAILQ_EMPTY((head2))) {					\
-		*(head1)->stqh_last = (head2)->stqh_first;		\
-		(head1)->stqh_last = (head2)->stqh_last;		\
-		STAILQ_INIT((head2));					\
-	}								\
-} while (0)
-
-#define	STAILQ_EMPTY(head)	((head)->stqh_first == NULL)
-
-#define	STAILQ_FIRST(head)	((head)->stqh_first)
-
-#define	STAILQ_FOREACH(var, head, field)				\
-	for((var) = STAILQ_FIRST((head));				\
-	   (var);							\
-	   (var) = STAILQ_NEXT((var), field))
-
-
-#define	STAILQ_FOREACH_SAFE(var, head, field, tvar)			\
-	for ((var) = STAILQ_FIRST((head));				\
-	    (var) && ((tvar) = STAILQ_NEXT((var), field), 1);		\
-	    (var) = (tvar))
-
-#define	STAILQ_INIT(head) do {						\
-	STAILQ_FIRST((head)) = NULL;					\
-	(head)->stqh_last = &STAILQ_FIRST((head));			\
-} while (0)
-
-#define	STAILQ_INSERT_AFTER(head, tqelm, elm, field) do {		\
-	if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\
-		(head)->stqh_last = &STAILQ_NEXT((elm), field);		\
-	STAILQ_NEXT((tqelm), field) = (elm);				\
-} while (0)
-
-#define	STAILQ_INSERT_HEAD(head, elm, field) do {			\
-	if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL)	\
-		(head)->stqh_last = &STAILQ_NEXT((elm), field);		\
-	STAILQ_FIRST((head)) = (elm);					\
-} while (0)
-
-#define	STAILQ_INSERT_TAIL(head, elm, field) do {			\
-	STAILQ_NEXT((elm), field) = NULL;				\
-	*(head)->stqh_last = (elm);					\
-	(head)->stqh_last = &STAILQ_NEXT((elm), field);			\
-} while (0)
-
-#define	STAILQ_LAST(head, type, field)					\
-	(STAILQ_EMPTY((head)) ?						\
-		NULL :							\
-	        ((struct type *)(void *)				\
-		((char *)((head)->stqh_last) - __offsetof(struct type, field))))
-
-#define	STAILQ_NEXT(elm, field)	((elm)->field.stqe_next)
-
-#define	STAILQ_REMOVE(head, elm, type, field) do {			\
-	if (STAILQ_FIRST((head)) == (elm)) {				\
-		STAILQ_REMOVE_HEAD((head), field);			\
-	}								\
-	else {								\
-		struct type *curelm = STAILQ_FIRST((head));		\
-		while (STAILQ_NEXT(curelm, field) != (elm))		\
-			curelm = STAILQ_NEXT(curelm, field);		\
-		if ((STAILQ_NEXT(curelm, field) =			\
-		     STAILQ_NEXT(STAILQ_NEXT(curelm, field), field)) == NULL)\
-			(head)->stqh_last = &STAILQ_NEXT((curelm), field);\
-	}								\
-} while (0)
-
-#define	STAILQ_REMOVE_HEAD(head, field) do {				\
-	if ((STAILQ_FIRST((head)) =					\
-	     STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL)		\
-		(head)->stqh_last = &STAILQ_FIRST((head));		\
-} while (0)
-
-#define	STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do {			\
-	if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL)	\
-		(head)->stqh_last = &STAILQ_FIRST((head));		\
-} while (0)
-
-/*
- * List declarations.
- */
-#define	LIST_HEAD(name, type)						\
-struct name {								\
-	struct type *lh_first;	/* first element */			\
-}
-
-#define	LIST_HEAD_INITIALIZER(head)					\
-	{ NULL }
-
-#define	LIST_ENTRY(type)						\
-struct {								\
-	struct type *le_next;	/* next element */			\
-	struct type **le_prev;	/* address of previous next element */	\
-}
-
-/*
- * List functions.
- */
-
-#define	LIST_EMPTY(head)	((head)->lh_first == NULL)
-
-#define	LIST_FIRST(head)	((head)->lh_first)
-
-#define	LIST_FOREACH(var, head, field)					\
-	for ((var) = LIST_FIRST((head));				\
-	    (var);							\
-	    (var) = LIST_NEXT((var), field))
-
-#define	LIST_FOREACH_SAFE(var, head, field, tvar)			\
-	for ((var) = LIST_FIRST((head));				\
-	    (var) && ((tvar) = LIST_NEXT((var), field), 1);		\
-	    (var) = (tvar))
-
-#define	LIST_INIT(head) do {						\
-	LIST_FIRST((head)) = NULL;					\
-} while (0)
-
-#define	LIST_INSERT_AFTER(listelm, elm, field) do {			\
-	if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\
-		LIST_NEXT((listelm), field)->field.le_prev =		\
-		    &LIST_NEXT((elm), field);				\
-	LIST_NEXT((listelm), field) = (elm);				\
-	(elm)->field.le_prev = &LIST_NEXT((listelm), field);		\
-} while (0)
-
-#define	LIST_INSERT_BEFORE(listelm, elm, field) do {			\
-	(elm)->field.le_prev = (listelm)->field.le_prev;		\
-	LIST_NEXT((elm), field) = (listelm);				\
-	*(listelm)->field.le_prev = (elm);				\
-	(listelm)->field.le_prev = &LIST_NEXT((elm), field);		\
-} while (0)
-
-#define	LIST_INSERT_HEAD(head, elm, field) do {				\
-	if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL)	\
-		LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
-	LIST_FIRST((head)) = (elm);					\
-	(elm)->field.le_prev = &LIST_FIRST((head));			\
-} while (0)
-
-#define	LIST_NEXT(elm, field)	((elm)->field.le_next)
-
-#define	LIST_REMOVE(elm, field) do {					\
-	if (LIST_NEXT((elm), field) != NULL)				\
-		LIST_NEXT((elm), field)->field.le_prev = 		\
-		    (elm)->field.le_prev;				\
-	*(elm)->field.le_prev = LIST_NEXT((elm), field);		\
-} while (0)
-
-/*
- * Tail queue declarations.
- */
-#define	TAILQ_HEAD(name, type)						\
-struct name {								\
-	struct type *tqh_first;	/* first element */			\
-	struct type **tqh_last;	/* addr of last next element */		\
-	TRACEBUF							\
-}
-
-#define	TAILQ_HEAD_INITIALIZER(head)					\
-	{ NULL, &(head).tqh_first }
-
-#define	TAILQ_ENTRY(type)						\
-struct {								\
-	struct type *tqe_next;	/* next element */			\
-	struct type **tqe_prev;	/* address of previous next element */	\
-	TRACEBUF							\
-}
-
-/*
- * Tail queue functions.
- */
-#define	TAILQ_CONCAT(head1, head2, field) do {				\
-	if (!TAILQ_EMPTY(head2)) {					\
-		*(head1)->tqh_last = (head2)->tqh_first;		\
-		(head2)->tqh_first->field.tqe_prev = (head1)->tqh_last;	\
-		(head1)->tqh_last = (head2)->tqh_last;			\
-		TAILQ_INIT((head2));					\
-		QMD_TRACE_HEAD(head1);					\
-		QMD_TRACE_HEAD(head2);					\
-	}								\
-} while (0)
-
-#define	TAILQ_EMPTY(head)	((head)->tqh_first == NULL)
-
-#define	TAILQ_FIRST(head)	((head)->tqh_first)
-
-#define	TAILQ_FOREACH(var, head, field)					\
-	for ((var) = TAILQ_FIRST((head));				\
-	    (var);							\
-	    (var) = TAILQ_NEXT((var), field))
-
-#define	TAILQ_FOREACH_SAFE(var, head, field, tvar)			\
-	for ((var) = TAILQ_FIRST((head));				\
-	    (var) && ((tvar) = TAILQ_NEXT((var), field), 1);		\
-	    (var) = (tvar))
-
-#define	TAILQ_FOREACH_REVERSE(var, head, headname, field)		\
-	for ((var) = TAILQ_LAST((head), headname);			\
-	    (var);							\
-	    (var) = TAILQ_PREV((var), headname, field))
-
-#define	TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar)	\
-	for ((var) = TAILQ_LAST((head), headname);			\
-	    (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1);	\
-	    (var) = (tvar))
-
-#define	TAILQ_INIT(head) do {						\
-	TAILQ_FIRST((head)) = NULL;					\
-	(head)->tqh_last = &TAILQ_FIRST((head));			\
-	QMD_TRACE_HEAD(head);						\
-} while (0)
-
-#define	TAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\
-	if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\
-		TAILQ_NEXT((elm), field)->field.tqe_prev = 		\
-		    &TAILQ_NEXT((elm), field);				\
-	else {								\
-		(head)->tqh_last = &TAILQ_NEXT((elm), field);		\
-		QMD_TRACE_HEAD(head);					\
-	}								\
-	TAILQ_NEXT((listelm), field) = (elm);				\
-	(elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field);		\
-	QMD_TRACE_ELEM(&(elm)->field);					\
-	QMD_TRACE_ELEM(&listelm->field);				\
-} while (0)
-
-#define	TAILQ_INSERT_BEFORE(listelm, elm, field) do {			\
-	(elm)->field.tqe_prev = (listelm)->field.tqe_prev;		\
-	TAILQ_NEXT((elm), field) = (listelm);				\
-	*(listelm)->field.tqe_prev = (elm);				\
-	(listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field);		\
-	QMD_TRACE_ELEM(&(elm)->field);					\
-	QMD_TRACE_ELEM(&listelm->field);				\
-} while (0)
-
-#define	TAILQ_INSERT_HEAD(head, elm, field) do {			\
-	if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL)	\
-		TAILQ_FIRST((head))->field.tqe_prev =			\
-		    &TAILQ_NEXT((elm), field);				\
-	else								\
-		(head)->tqh_last = &TAILQ_NEXT((elm), field);		\
-	TAILQ_FIRST((head)) = (elm);					\
-	(elm)->field.tqe_prev = &TAILQ_FIRST((head));			\
-	QMD_TRACE_HEAD(head);						\
-	QMD_TRACE_ELEM(&(elm)->field);					\
-} while (0)
-
-#define	TAILQ_INSERT_TAIL(head, elm, field) do {			\
-	TAILQ_NEXT((elm), field) = NULL;				\
-	(elm)->field.tqe_prev = (head)->tqh_last;			\
-	*(head)->tqh_last = (elm);					\
-	(head)->tqh_last = &TAILQ_NEXT((elm), field);			\
-	QMD_TRACE_HEAD(head);						\
-	QMD_TRACE_ELEM(&(elm)->field);					\
-} while (0)
-
-#define	TAILQ_LAST(head, headname)					\
-	(*(((struct headname *)((head)->tqh_last))->tqh_last))
-
-#define	TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
-
-#define	TAILQ_PREV(elm, headname, field)				\
-	(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
-
-#define	TAILQ_REMOVE(head, elm, field) do {				\
-	if ((TAILQ_NEXT((elm), field)) != NULL)				\
-		TAILQ_NEXT((elm), field)->field.tqe_prev = 		\
-		    (elm)->field.tqe_prev;				\
-	else {								\
-		(head)->tqh_last = (elm)->field.tqe_prev;		\
-		QMD_TRACE_HEAD(head);					\
-	}								\
-	*(elm)->field.tqe_prev = TAILQ_NEXT((elm), field);		\
-	TRASHIT((elm)->field.tqe_next);					\
-	TRASHIT((elm)->field.tqe_prev);					\
-	QMD_TRACE_ELEM(&(elm)->field);					\
-} while (0)
-
-
-#ifdef _KERNEL
-
-/*
- * XXX insque() and remque() are an old way of handling certain queues.
- * They bogusly assumes that all queue heads look alike.
- */
-
-struct quehead {
-	struct quehead *qh_link;
-	struct quehead *qh_rlink;
-};
-
-#if defined(__GNUC__) || defined(__INTEL_COMPILER)
-
-static __inline void
-insque(void *a, void *b)
-{
-	struct quehead *element = (struct quehead *)a,
-		 *head = (struct quehead *)b;
-
-	element->qh_link = head->qh_link;
-	element->qh_rlink = head;
-	head->qh_link = element;
-	element->qh_link->qh_rlink = element;
-}
-
-static __inline void
-remque(void *a)
-{
-	struct quehead *element = (struct quehead *)a;
-
-	element->qh_link->qh_rlink = element->qh_rlink;
-	element->qh_rlink->qh_link = element->qh_link;
-	element->qh_rlink = 0;
-}
-
-#else /* !(__GNUC__ || __INTEL_COMPILER) */
-
-void	insque(void *a, void *b);
-void	remque(void *a);
-
-#endif /* __GNUC__ || __INTEL_COMPILER */
-
-#endif /* _KERNEL */
-
-#endif /* !_SYS_QUEUE_H_ */

Added: trunk/glibc-ports/NOTES
===================================================================
--- trunk/glibc-ports/NOTES	                        (rev 0)
+++ trunk/glibc-ports/NOTES	2006-10-16 11:38:14 UTC (rev 1688)
@@ -0,0 +1,92 @@
+glibc 2.5 status
+================
+
+linuxthreads are moved from trunk into ports
+	http://sourceware.org/ml/libc-alpha/2005-07/msg00001.html
+
+for short term Daniel Jacobowitz <dan at debian.org> will maintain them 
+	http://sourceware.org/ml/libc-alpha/2005-07/msg00002.html
+
+
+As glibc source can be used a post-2.5 snapshot, available from
+ftp://sources.redhat.com/pub/glibc/snapshots/
+
+The main part are new arch specific files, linked into glibc tree:
+
+kfreebsd
+	-> $SRC/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd
+
+Remaining part are miscellaneous kfreebsd changes and hacks,
+stored in dir patches. 
+
+test build:
+-----------
+
+* get main glibc module and linuxthreads module from snapshot or directly from CVS
+	(ftp://sources.redhat.com/pub/glibc/snapshots/)
+
+* move linuxthreads & linuxthreads_db from module linuxthreads into top dir
+
+* install our sysdeps
+  mkdir -p src/ports/sysdeps/unix/bsd/bsd4.4/
+  cp -a kfreebsd src/ports/sysdeps/unix/bsd/bsd4.4/
+
+* apply patches
+
+  cd src 
+  for i in ../patches/*.patch 
+  do
+        patch -p0 < $i
+  done
+  cd ..
+
+* build
+
+  mkdir build ; cd build
+
+  ../src/configure --enable-add-ons=ports,linuxthreads --with-tls --with-__thread i486-kfreebsd --prefix=...
+
+
+
+"make check" results:
+---------------------
+(as of glibc 2.5)
+
+  examime why, needs c++
+make[2]: *** [build/dlfcn/bug-atexit3.out] Error 1
+
+  requires (and tests) Linux specific O_NOATIME
+make[2]: *** [build/dirent/tst-fdopendir.o] Error 1
+
+  kernel doesn't fill enough in siginfo_t for signal handlers
+make[2]: *** [build/posix/tst-waitid.out] Error 1
+
+  no similar syscall, unimplemented
+make[2]: *** [build/io/tst-readlinkat.out] Error 1
+
+  no similar syscall, emulation hitted by (unavoidable) race condition
+make[2]: *** [build/misc/tst-pselect.out] Error 1
+
+  requires SIGRTMIN
+make[2]: *** [build/rt/tst-timer2.o] Error 1
+make[2]: *** [build/rt/tst-mqueue5.o] Error 1
+make[2]: *** [build/rt/tst-timer4.o] Error 1
+make[2]: *** [build/rt/tst-timer5.o] Error 1
+make[2]: *** [build/rt/tst-cputimer1.o] Error 1
+make[2]: *** [build/rt/tst-cputimer2.o] Error 1
+make[2]: *** [build/rt/tst-cputimer3.o] Error 1
+
+  examine why, maybe due to non-rt behaviour of signals
+make[2]: *** [build/rt/tst-aio.out] Error 1
+make[2]: *** [build/rt/tst-aio64.out] Error 1
+make[2]: *** [build/rt/tst-aio9.out] Error 1
+make[2]: *** [build/rt/tst-aio10.out] Error 1
+
+  due to unimplemented readlinkat()
+make[2]: *** [build/debug/tst-chk1.out] Error 1
+make[2]: *** [build/debug/tst-chk2.out] Error 1
+make[2]: *** [build/debug/tst-chk3.out] Error 1
+make[2]: *** [build/debug/tst-lfschk1.out] Error 1
+make[2]: *** [build/debug/tst-lfschk2.out] Error 1
+make[2]: *** [build/debug/tst-lfschk3.out] Error 1
+




More information about the Glibc-bsd-commits mailing list