[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r858 - glibc-package/branches/glibc-2.3.4/debian/patches



Author: gotom
Date: 2005-03-21 05:27:02 +0100 (Mon, 21 Mar 2005)
New Revision: 858

Added:
   glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-alpha-xstat.dpatch
   glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-hppa-full-nptl-2004-12-20.dpatch
   glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-hppa-linesep.dpatch
   glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-hppa-remove-mallocdef.dpatch
   glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-m68k-linuxthreads-fPIC.dpatch
Log:
    * These dpatches are added in debian/patches/:
      - glibc234-alpha-xstat.dpatch: Fix alpha compilation failure when
        kernel headers < 2.6.4 is used.
      - glibc234-hppa-linesep.dpatch: Add to fix hppa compilation failure.
      - glibc234-hppa-remove-mallocdef.dpatch: Add to
        fix hppa compilation breakage until ldcw lock change is introduced.
        This patch will be removed when ldcw patch is revised to apply.
      - glibc234-m68k-linuxthreads-fPIC.dpatch: Add to fix m68k compilation
        warnings to remove linuxthreads o-iterator.
      - glibc234-hppa-full-nptl-2004-12-20.dpatch: Remove in-cvs parts,
        apply the remained stuff for hppa, except for ldcw lock change.
        This file is renamed from 50_glibc232-hppa-full-nptl-2003-10-22.dpatch.



Added: glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-alpha-xstat.dpatch
===================================================================
--- glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-alpha-xstat.dpatch	2005-03-21 04:25:51 UTC (rev 857)
+++ glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-alpha-xstat.dpatch	2005-03-21 04:27:02 UTC (rev 858)
@@ -0,0 +1,304 @@
+#! /bin/sh -e
+
+# All lines beginning with `# DP:' are a description of the patch.
+# DP: Description: Fix alpha compile failure when kernel header < 2.6.4 is used.
+# DP: Related bugs: 
+# DP: Dpatch author: GOTO Masanori <gotom@debian.org>
+# DP: Patch author: GOTO Masanori <gotom@debian.org>
+# DP: Upstream status: Submitting
+# DP: Status Details: Submitting
+# DP: Date: 2005-03-03
+
+PATCHLEVEL=0
+
+if [ $# -ne 2 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+case "$1" in
+    -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;;
+    -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;;
+    *)
+	echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+	exit 1
+esac
+exit 0
+
+# append the patch here and adjust the -p? flag in the patch calls.
+Subject: [PATCH] alpha compilation fix with the kernel header < 2.6.4.
+
+This patch fixes alpha compilation fix when kernel header (< 2.6.4) is
+used.  Note that I unfold the original "fail:" part because enclosing
+only "fail:" with #ifdef __ASSUME_STAT64_SYSCALL and __NR_*stat64 looks
+unseemly.
+
+Regards,
+-- gotom
+
+2005-02-18  GOTO Masanori  <gotom@debian.or.jp>
+
+	* sysdeps/unix/sysv/linux/kernel-features.h: Define
+	__ASSUME_STAT64_SYSCALL.
+	* sysdeps/unix/sysv/linux/alpha/fxstat.c: Check
+	__ASSUME_STAT64_SYSCALL.
+	* sysdeps/unix/sysv/linux/alpha/lxstat.c: Likewise.
+	* sysdeps/unix/sysv/linux/alpha/xstat.c: Likewise.
+	* sysdeps/unix/sysv/linux/alpha/xstatconv.c: Don't define
+	__libc_missing_axp_stat64 when it's not needed.
+	* sysdeps/unix/sysv/linux/alpha/xstatconv.h: Likewise.
+
+Index: sysdeps/unix/sysv/linux/kernel-features.h
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/kernel-features.h,v
+retrieving revision 1.83
+diff -u -p -r1.83 kernel-features.h
+--- sysdeps/unix/sysv/linux/kernel-features.h	26 Jan 2005 20:01:10 -0000	1.83
++++ sysdeps/unix/sysv/linux/kernel-features.h	18 Feb 2005 06:21:10 -0000
+@@ -413,6 +413,11 @@
+ # define __ASSUME_GETDENTS32_D_TYPE	1
+ #endif
+ 
++/* Starting with version 2.6.4, alpha stat64 syscalls are available.  */
++#if __LINUX_KERNEL_VERSION >= 0x020604 && defined __alpha__
++# define __ASSUME_STAT64_SYSCALL	1
++#endif
++
+ /* Starting with version 2.5.3, the initial location returned by `brk'
+    after exec is always rounded up to the next page.  */
+ #if __LINUX_KERNEL_VERSION >= 132355
+Index: sysdeps/unix/sysv/linux/alpha/fxstat.c
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/alpha/fxstat.c,v
+retrieving revision 1.1
+diff -u -p -r1.1 fxstat.c
+--- sysdeps/unix/sysv/linux/alpha/fxstat.c	11 Mar 2004 02:58:44 -0000	1.1
++++ sysdeps/unix/sysv/linux/alpha/fxstat.c	18 Feb 2005 06:21:10 -0000
+@@ -1,5 +1,5 @@
+ /* fxstat using old-style Unix stat system call.
+-   Copyright (C) 2004 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005 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
+@@ -35,27 +35,39 @@ int
+ __fxstat (int vers, int fd, struct stat *buf)
+ {
+   INTERNAL_SYSCALL_DECL (err);
+-  int result, errno_out;
++  int result;
+   struct kernel_stat kbuf;
+ 
++#if __ASSUME_STAT64_SYSCALL > 0
++  if (vers == _STAT_VER_KERNEL64)
++    {
++      result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf);
++      if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
++	return result;
++      __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
++      return -1;
++    }
++#elif defined __NR_fstat64
+   if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
+     {
++      int errno_out;
+       result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf);
+       if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ 	return result;
+       errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
+       if (errno_out != ENOSYS)
+-	goto fail;
++	{
++	  __set_errno (errno_out);
++	  return -1;
++	}
+       __libc_missing_axp_stat64 = 1;
+     }
++#endif
+ 
+   result = INTERNAL_SYSCALL (fstat, err, 2, fd, &kbuf);
+   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+     return __xstat_conv (vers, &kbuf, buf);
+-  errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
+-  
+- fail:
+-  __set_errno (errno_out);
++  __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
+   return -1;
+ }
+ hidden_def (__fxstat)
+Index: sysdeps/unix/sysv/linux/alpha/lxstat.c
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/alpha/lxstat.c,v
+retrieving revision 1.1
+diff -u -p -r1.1 lxstat.c
+--- sysdeps/unix/sysv/linux/alpha/lxstat.c	11 Mar 2004 02:58:44 -0000	1.1
++++ sysdeps/unix/sysv/linux/alpha/lxstat.c	18 Feb 2005 06:21:10 -0000
+@@ -1,5 +1,5 @@
+ /* lxstat using old-style Unix stat system call.
+-   Copyright (C) 2004 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005 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
+@@ -35,27 +35,39 @@ int
+ __lxstat (int vers, const char *name, struct stat *buf)
+ {
+   INTERNAL_SYSCALL_DECL (err);
+-  int result, errno_out;
++  int result;
+   struct kernel_stat kbuf;
+ 
++#if __ASSUME_STAT64_SYSCALL > 0
++  if (vers == _STAT_VER_KERNEL64)
++    {
++      result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf);
++      if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
++	return result;
++      __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
++      return -1;
++    }
++#elif defined __NR_lstat64
+   if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
+     {
++      int errno_out;
+       result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf);
+       if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ 	return result;
+       errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
+       if (errno_out != ENOSYS)
+-	goto fail;
++	{
++	  __set_errno (errno_out);
++	  return -1;
++	}
+       __libc_missing_axp_stat64 = 1;
+     }
++#endif
+ 
+   result = INTERNAL_SYSCALL (lstat, err, 2, name, &kbuf);
+   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+     return __xstat_conv (vers, &kbuf, buf);
+-  errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
+-  
+- fail:
+-  __set_errno (errno_out);
++  __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
+   return -1;
+ }
+ hidden_def (__lxstat)
+Index: sysdeps/unix/sysv/linux/alpha/xstat.c
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/alpha/xstat.c,v
+retrieving revision 1.1
+diff -u -p -r1.1 xstat.c
+--- sysdeps/unix/sysv/linux/alpha/xstat.c	11 Mar 2004 02:58:44 -0000	1.1
++++ sysdeps/unix/sysv/linux/alpha/xstat.c	18 Feb 2005 06:21:10 -0000
+@@ -1,5 +1,5 @@
+ /* xstat using old-style Unix stat system call.
+-   Copyright (C) 2004 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005 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
+@@ -35,27 +35,39 @@ int
+ __xstat (int vers, const char *name, struct stat *buf)
+ {
+   INTERNAL_SYSCALL_DECL (err);
+-  int result, errno_out;
++  int result;
+   struct kernel_stat kbuf;
+ 
++#if __ASSUME_STAT64_SYSCALL > 0
++  if (vers == _STAT_VER_KERNEL64)
++    {
++      result = INTERNAL_SYSCALL (stat64, err, 2, name, buf);
++      if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
++	return result;
++      __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
++      return -1;
++    }
++#elif defined __NR_stat64
+   if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
+     {
++      int errno_out;
+       result = INTERNAL_SYSCALL (stat64, err, 2, name, buf);
+       if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ 	return result;
+       errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
+       if (errno_out != ENOSYS)
+-	goto fail;
++	{
++	  __set_errno (errno_out);
++	  return -1;
++	}
+       __libc_missing_axp_stat64 = 1;
+     }
++#endif
+ 
+   result = INTERNAL_SYSCALL (stat, err, 2, name, &kbuf);
+   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+     return __xstat_conv (vers, &kbuf, buf);
+-  errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
+-  
+- fail:
+-  __set_errno (errno_out);
++  __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
+   return -1;
+ }
+ hidden_def (__xstat)
+Index: sysdeps/unix/sysv/linux/alpha/xstatconv.c
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/alpha/xstatconv.c,v
+retrieving revision 1.6
+diff -u -p -r1.6 xstatconv.c
+--- sysdeps/unix/sysv/linux/alpha/xstatconv.c	11 Mar 2004 02:58:44 -0000	1.6
++++ sysdeps/unix/sysv/linux/alpha/xstatconv.c	26 Feb 2005 13:58:07 -0000
+@@ -1,5 +1,5 @@
+ /* Convert between the kernel's `struct stat' format, and libc's.
+-   Copyright (C) 1997, 2003, 2004 Free Software Foundation, Inc.
++   Copyright (C) 1997, 2003, 2004, 2005 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
+@@ -22,9 +22,14 @@
+ #include <sys/stat.h>
+ #include <kernel_stat.h>
+ #include <xstatconv.h>
++#include <sys/syscall.h>
+ 
+ 
++#ifdef __NR_stat64
++# if __ASSUME_STAT64_SYSCALL == 0
+ int __libc_missing_axp_stat64;
++# endif
++#endif
+ 
+ int
+ __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
+Index: sysdeps/unix/sysv/linux/alpha/xstatconv.h
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/alpha/xstatconv.h,v
+retrieving revision 1.1
+diff -u -p -r1.1 xstatconv.h
+--- sysdeps/unix/sysv/linux/alpha/xstatconv.h	11 Mar 2004 02:58:44 -0000	1.1
++++ sysdeps/unix/sysv/linux/alpha/xstatconv.h	26 Feb 2005 13:58:07 -0000
+@@ -1,5 +1,5 @@
+ /* Convert between the kernel's `struct stat' format, and libc's.
+-   Copyright (C) 2004 Free Software Foundation, Inc.
++   Copyright (C) 2004, 2005 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
+@@ -18,7 +18,12 @@
+    02111-1307 USA.  */
+ 
+ #include "kernel-features.h"
++#include <sys/syscall.h>
+ 
++#ifdef __NR_stat64
++# if __ASSUME_STAT64_SYSCALL == 0
+ extern int __libc_missing_axp_stat64 attribute_hidden;
++# endif
++#endif
+ extern int __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
+   attribute_hidden;

Added: glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-hppa-full-nptl-2004-12-20.dpatch
===================================================================
--- glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-hppa-full-nptl-2004-12-20.dpatch	2005-03-21 04:25:51 UTC (rev 857)
+++ glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-hppa-full-nptl-2004-12-20.dpatch	2005-03-21 04:27:02 UTC (rev 858)
@@ -0,0 +1,1201 @@
+#! /bin/sh -e
+
+# All lines beginning with `# DP:' are a description of the patch.
+# DP: Description: parisc patches based on 50_glibc232-hppa-full-nptl-2003-10-22.
+#		   This dpatch excepts (1) patches applied already in cvs
+#		   (2) hppa ldcw spinlock fix.  (2) should be merged in future.
+# DP: Related bugs: 
+# DP: Dpatch author: GOTO Masanori <gotom@debian.org> 
+# DP: Patch author: Carlos O'Donell <carlos@baldric.uwo.ca>
+# DP: Upstream status: Pending
+# DP: Status Details: 
+# DP: Date: 2005-03-14
+
+PATCHLEVEL=0
+
+if [ $# -ne 2 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+case "$1" in
+    -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;;
+    -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;;
+    *)
+	echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+	exit 1
+esac
+exit 0
+
+# append the patch here and adjust the -p? flag in the patch calls.
+# Patched with:
+#
+# Linuxthread fixes:
+# patches-2003-10-14/glibc23-00.a-noarch-pthreads
+# patches-2003-10-14/glibc23-00.a1-noarch-sgu
+# patches-2003-10-14/glibc23-00.b-noarch-sysdeps-pthreads
+# patches-2003-10-14/glibc23-00.c2-hppa-pthreads
+# patches-2003-10-14/glibc23-01d-hppa-dl-machine
+# 
+# libgcc compat fixes:
+# patches-2003-10-14/glibc23-02-hppa-compat
+#
+# Introduce atomicity warnings:
+# patches-2003-10-14/glibc23-03-hppa-atomicity
+#
+# Don't align all mallocs at 16:
+# patches-2003-10-14/glibc23-04-hppa-malloc8
+#
+# Sysdep updates including cancellation:
+# patches-2003-10-14/glibc23-05n-hppa-sysdep
+# patches-2003-10-14/glibc23-06r-hppa-sysdep-cancel
+# patches-2003-10-14/glibc23-07b-hppa-sysdep2
+#	= Patched 2003-10-20 to remove load offset typo
+# Elf entry fix for ld, removes kernel hack:
+# patches-2003-10-14/glibc23-09-hppa-entry
+#
+# Patch to use new atomic structure:
+# patches-2003-10-14/glibc23-12-hppa-oldsemaphore
+#
+# We have sjlj exceptions but compat code was for dwarf:
+# patches-2003-10-14/glibc23-13-hppa-framestatefor
+#
+# Fix function pointer resolving (needs to move to new generic method):
+# patches-2003-10-14/glibc23-14-hppa-dlfptr
+#
+# Fixes getaddrinfo from upstream:
+# patches-2003-10-14/glibc23-15-generic-getaddrinfo
+#
+# Include new pthreadtypes for hppa:
+# patches-2003-10-14/glibc23-17b-hppa-pthreadtypes
+#
+# Fix warnings:
+# patches-2003-10-14/glibc23-18-generic-sysctlh
+#
+# Add semtimedop for hppa:
+# patches-2003-10-14/glibc23-19-hppa-semtimedop
+#
+# Fix symbol resolution issues:
+# patches-2003-10-14/glibc23-20c-hppa-ptmachine
+#
+# Make the kernelstat 64-bit uncompatible:
+# patches-2003-10-14/glibc23-21-hppa-kernelstat
+#
+# Fixup C version of syscalls:
+# patches-2003-10-14/glibc23-22c-hppa-sysdepc
+#
+# Fixes for sjlj versus dwarf compat code:
+# patches-2003-10-14/glibc23-23-hppa-unwind-dw2
+#
+# Allow hppa to get at the linkmap:
+# patches-2003-10-14/glibc23-25b-dynamic-link
+#
+# Fix all of the assembly for hppa fpu code:
+# patches-2003-10-14/glibc23-26e-fpu
+#	= Patched 2003-10-20 to fix FE_INEXACT failures
+#
+# Add small amount of debugging code to make locale 
+# generation easier to understand:
+# patches-2003-10-14/glibc23-27-debug-gen-locale
+#
+# Fixup clone to save/restore pic register:
+# patches-2003-10-14/glibc23-28c-hppa-clone
+#
+# Fixup prototype warnings:
+# patches-2003-10-14/glibc23-29-hppa-prototypes
+#
+# Fixup bad cats:
+# patches-2003-10-14/glibc23-30-hppa-casts
+#
+# Fixup warning:
+# patches-2003-10-14/glibc23-31-generic-unix-Makefile
+#
+# Implement proper non-linuxthread locking:
+# patches-2003-10-14/glibc23-32-hppa-thread-m
+# patches-2003-10-14/glibc23-32a-hppa-thread-m
+#
+# Fixup warnings:
+# patches-2003-10-14/glibc23-33-generic-internals
+#
+# These patches generate rejects, and those rejects were then dealt
+# with on a per patch basis. Some were discarded others merged.
+#
+# append the patch here and adjust the -p? flag in the patch calls.
+
+
+#
+# it seems we do not need it...
+#
+#diff -urN glibc-2.3.2-orig-debian/elf/dynamic-link.h glibc-2.3.2/elf/dynamic-link.h
+#--- glibc-2.3.2-orig-debian/elf/dynamic-link.h	2003-10-22 01:06:09.000000000 -0400
+#+++ glibc-2.3.2/elf/dynamic-link.h	2003-10-22 01:11:53.000000000 -0400
+#@@ -39,12 +39,21 @@
+# elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
+# 		  const ElfW(Sym) *sym, const struct r_found_version *version,
+# 		  void *const reloc_addr);
+#+# if ELF_MACHINE_REL_RELATIVE_NEEDSLINKMAP
+#+auto void __attribute__((always_inline))
+#+elf_machine_rel_relative (struct link_map *map, ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
+#+			  void *const reloc_addr);
+#+auto void __attribute__((always_inline))
+#+elf_machine_rela_relative (struct link_map *map, ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
+#+			  void *const reloc_addr);
+#+# else
+# auto void __attribute__((always_inline))
+# elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
+# 			  void *const reloc_addr);
+# auto void __attribute__((always_inline))
+# elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
+# 			   void *const reloc_addr);
+#+# endif
+# # if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
+# auto void __attribute__((always_inline))
+# elf_machine_lazy_rel (struct link_map *map,
+
+
+#
+# no, it's not applied yet.  it may be needed...  we need investigation.
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/attr.c glibc-2.3.2/linuxthreads/attr.c
+#--- glibc-2.3.2-orig-debian/linuxthreads/attr.c	2003-10-22 01:06:10.000000000 -0400
+#+++ glibc-2.3.2/linuxthreads/attr.c	2003-10-22 01:07:38.000000000 -0400
+#@@ -450,12 +450,19 @@
+# 		{
+# 		  /* Found the entry.  Now we have the info we need.  */
+# 		  attr->__stacksize = rl.rlim_cur;
+#+#ifdef _STACK_GROWS_DOWN
+# 		  attr->__stackaddr = (void *) to;
+#-
+#+#else
+#+                  attr->__stackaddr = (void *) from;
+#+#endif
+# 		  /* The limit might be too high.  This is a bogus
+# 		     situation but try to avoid making it worse.  */
+# 		  if ((size_t) attr->__stacksize > (size_t) attr->__stackaddr)
+#+#ifdef _STACK_GROWS_DOWN
+# 		    attr->__stacksize = (size_t) attr->__stackaddr;
+#+#else
+#+                    attr->__stacksize = (size_t)(to - from);
+#+#endif
+# 
+# 		  /* We succeed and no need to look further.  */
+# 		  ret = 0;
+
+
+#
+# no, not applied yet. (lock change)
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/descr.h glibc-2.3.2/linuxthreads/descr.h
+#--- glibc-2.3.2-orig-debian/linuxthreads/descr.h	2003-10-22 01:06:10.000000000 -0400
+#+++ glibc-2.3.2/linuxthreads/descr.h	2003-10-22 01:07:38.000000000 -0400
+#@@ -71,7 +71,7 @@
+# /* Atomic counter made possible by compare_and_swap */
+# struct pthread_atomic {
+#   long p_count;
+#-  int p_spinlock;
+#+  __atomic_lock_t p_spinlock;
+# };
+ 
+
+
+#
+# not applied yet. (lock change)
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/oldsemaphore.c glibc-2.3.2/linuxthreads/oldsemaphore.c
+#--- glibc-2.3.2-orig-debian/linuxthreads/oldsemaphore.c	2003-10-22 01:03:57.000000000 -0400
+#+++ glibc-2.3.2/linuxthreads/oldsemaphore.c	2003-10-22 01:07:38.000000000 -0400
+#@@ -31,7 +31,7 @@
+# 
+# typedef struct {
+#     long int sem_status;
+#-    int sem_spinlock;
+#+    __atomic_lock_t sem_spinlock;
+# } old_sem_t;
+# 
+# extern int __old_sem_init (old_sem_t *__sem, int __pshared, unsigned int __value);
+
+
+#
+# not applied yet.  (I don't know why it's needed, but lock change?)
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/pt-machine.c glibc-2.3.2/linuxthreads/pt-machine.c
+#--- glibc-2.3.2-orig-debian/linuxthreads/pt-machine.c	2003-10-22 01:03:57.000000000 -0400
+#+++ glibc-2.3.2/linuxthreads/pt-machine.c	2003-10-22 01:07:38.000000000 -0400
+#@@ -19,7 +19,9 @@
+# 
+# #define PT_EI
+# 
+#-extern long int testandset (int *spinlock);
+#+#include <pthread.h>
+#+
+#+extern long int testandset (__atomic_lock_t *spinlock);
+# extern int __compare_and_swap (long int *p, long int oldval, long int newval);
+# 
+# #include <pt-machine.h>
+
+
+#
+# partially applied: 893, 908.  but not for SPINLOCK (lock change).
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/pthread.c glibc-2.3.2/linuxthreads/pthread.c
+#--- glibc-2.3.2-orig-debian/linuxthreads/pthread.c	2003-10-22 01:06:16.000000000 -0400
+#+++ glibc-2.3.2/linuxthreads/pthread.c	2003-10-22 01:07:38.000000000 -0400
+#@@ -300,9 +300,9 @@
+#   pthread_descr self;
+# 
+#   /* First of all init __pthread_handles[0] and [1] if needed.  */
+#-# if __LT_SPINLOCK_INIT != 0
+#-  __pthread_handles[0].h_lock = __LOCK_INITIALIZER;
+#-  __pthread_handles[1].h_lock = __LOCK_INITIALIZER;
+#+# ifdef __LT_INITIALIZER_NOT_ZERO
+#+  __pthread_handles[0].h_lock = __LOCK_ALT_INITIALIZER;
+#+  __pthread_handles[1].h_lock = __LOCK_ALT_INITIALIZER;
+# # endif
+# # ifndef SHARED
+#   /* Unlike in the dynamically linked case the dynamic linker has not
+#@@ -370,7 +370,7 @@
+# # endif
+#   /* self->p_start_args need not be initialized, it's all zero.  */
+#   self->p_userstack = 1;
+#-# if __LT_SPINLOCK_INIT != 0
+#+# ifdef __LT_INITIALIZER_NOT_ZERO 
+#   self->p_resume_count = (struct pthread_atomic) __ATOMIC_INITIALIZER;
+# # endif
+#   self->p_alloca_cutoff = __MAX_ALLOCA_CUTOFF;
+#@@ -384,9 +384,9 @@
+# #else  /* USE_TLS */
+# 
+#   /* First of all init __pthread_handles[0] and [1].  */
+#-# if __LT_SPINLOCK_INIT != 0
+#-  __pthread_handles[0].h_lock = __LOCK_INITIALIZER;
+#-  __pthread_handles[1].h_lock = __LOCK_INITIALIZER;
+#+# ifdef __LT_INITIALIZER_NOT_ZERO
+#+  __pthread_handles[0].h_lock = __LOCK_ALT_INITIALIZER;
+#+  __pthread_handles[1].h_lock = __LOCK_ALT_INITIALIZER;
+# # endif
+#   __pthread_handles[0].h_descr = &__pthread_initial_thread;
+#   __pthread_handles[1].h_descr = &__pthread_manager_thread;
+#@@ -893,7 +893,11 @@
+#   /* __pthread_handles[0] is the initial thread, __pthread_handles[1] is
+#      the manager threads handled specially in thread_self(), so start at 2 */
+#   h = __pthread_handles + 2;
+#+# ifdef _STACK_GROWS_UP
+#+  while (! (sp >= (char *) h->h_descr && sp < h->h_descr->p_guardaddr)) h++;
+#+# else
+#   while (! (sp <= (char *) h->h_descr && sp >= h->h_bottom)) h++;
+#+# endif
+#   return h->h_descr;
+# }
+# 
+#@@ -908,11 +912,22 @@
+#     return manager_thread;
+#   h = __pthread_handles + 2;
+# # ifdef USE_TLS
+#+#  ifdef _STACK_GROWS_UP
+#+  while (h->h_descr == NULL
+#+	 || ! (sp >= h->h_descr->p_stackaddr && 
+#+	       sp < h->h_descr->p_guardaddr))
+#+#  else
+#   while (h->h_descr == NULL
+#-	 || ! (sp <= (char *) h->h_descr->p_stackaddr && sp >= h->h_bottom))
+#+	 || ! (sp <= h->h_descr->p_stackaddr && 
+#+	       sp >= h->h_bottom))
+#+#  endif
+#     h++;
+# # else
+#+#  ifdef _STACK_GROWS_UP
+#+  while (! (sp >= (char *) h->h_descr && sp < h->h_descr->p_guardaddr))
+#+#  else
+#   while (! (sp <= (char *) h->h_descr && sp >= h->h_bottom))
+#+#  endif
+#     h++;
+# # endif
+#   return h->h_descr;
+
+
+#
+# not (lock change)
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/spinlock.c glibc-2.3.2/linuxthreads/spinlock.c
+#--- glibc-2.3.2-orig-debian/linuxthreads/spinlock.c	2003-10-22 01:03:57.000000000 -0400
+#+++ glibc-2.3.2/linuxthreads/spinlock.c	2003-10-22 01:07:38.000000000 -0400
+#@@ -24,9 +24,9 @@
+# #include "spinlock.h"
+# #include "restart.h"
+# 
+#-static void __pthread_acquire(int * spinlock);
+#+static void __pthread_acquire(__atomic_lock_t * spinlock);
+# 
+#-static inline void __pthread_release(int * spinlock)
+#+static inline void __pthread_release(__atomic_lock_t * spinlock)
+# {
+#   WRITE_MEMORY_BARRIER();
+#   *spinlock = __LT_SPINLOCK_INIT;
+#@@ -269,11 +269,11 @@
+# struct wait_node {
+#   struct wait_node *next;	/* Next node in null terminated linked list */
+#   pthread_descr thr;		/* The thread waiting with this node */
+#-  int abandoned;		/* Atomic flag */
+#+  __atomic_lock_t abandoned;	/* Atomic flag */
+# };
+# 
+# static long wait_node_free_list;
+#-static int wait_node_free_list_spinlock;
+#+__pthread_lock_define_initialized(static, wait_node_free_list_spinlock);
+# 
+# /* Allocate a new node from the head of the free list using an atomic
+#    operation, or else using malloc if that list is empty.  A fundamental
+#@@ -376,7 +376,7 @@
+#       if (self == NULL)
+# 	self = thread_self();
+# 
+#-      wait_node.abandoned = 0;
+#+      wait_node.abandoned = __LT_SPINLOCK_INIT;
+#       wait_node.next = (struct wait_node *) lock->__status;
+#       wait_node.thr = self;
+#       lock->__status = (long) &wait_node;
+#@@ -402,7 +402,7 @@
+#       wait_node.thr = self;
+#       newstatus = (long) &wait_node;
+#     }
+#-    wait_node.abandoned = 0;
+#+    wait_node.abandoned = __LT_SPINLOCK_INIT;
+#     wait_node.next = (struct wait_node *) oldstatus;
+#     /* Make sure the store in wait_node.next completes before performing
+#        the compare-and-swap */
+#@@ -451,7 +451,7 @@
+#       if (self == NULL)
+# 	self = thread_self();
+# 
+#-      p_wait_node->abandoned = 0;
+#+      p_wait_node->abandoned = __LT_SPINLOCK_INIT;
+#       p_wait_node->next = (struct wait_node *) lock->__status;
+#       p_wait_node->thr = self;
+#       lock->__status = (long) p_wait_node;
+#@@ -474,7 +474,7 @@
+#       p_wait_node->thr = self;
+#       newstatus = (long) p_wait_node;
+#     }
+#-    p_wait_node->abandoned = 0;
+#+    p_wait_node->abandoned = __LT_SPINLOCK_INIT;
+#     p_wait_node->next = (struct wait_node *) oldstatus;
+#     /* Make sure the store in wait_node.next completes before performing
+#        the compare-and-swap */
+#@@ -574,7 +574,7 @@
+#     while (p_node != (struct wait_node *) 1) {
+#       int prio;
+# 
+#-      if (p_node->abandoned) {
+#+      if (lock_held(&p_node->abandoned)) {
+# 	/* Remove abandoned node. */
+# #if defined TEST_FOR_COMPARE_AND_SWAP
+# 	if (!__pthread_has_cas)
+#@@ -662,7 +662,7 @@
+# #if !defined HAS_COMPARE_AND_SWAP || defined TEST_FOR_COMPARE_AND_SWAP
+# 
+# int __pthread_compare_and_swap(long * ptr, long oldval, long newval,
+#-                               int * spinlock)
+#+                               __atomic_lock_t * spinlock)
+# {
+#   int res;
+# 
+#@@ -699,7 +699,7 @@
+#    - When nanosleep() returns, we try again, doing MAX_SPIN_COUNT
+#      sched_yield(), then sleeping again if needed. */
+# 
+#-static void __pthread_acquire(int * spinlock)
+#+static void __pthread_acquire(__atomic_lock_t * spinlock)	
+# {
+#   int cnt = 0;
+#   struct timespec tm;
+
+
+#
+# not (lock change)
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/spinlock.h glibc-2.3.2/linuxthreads/spinlock.h
+#--- glibc-2.3.2-orig-debian/linuxthreads/spinlock.h	2003-10-22 01:06:10.000000000 -0400
+#+++ glibc-2.3.2/linuxthreads/spinlock.h	2003-10-22 01:07:38.000000000 -0400
+#@@ -33,14 +33,28 @@
+# #endif
+# #endif
+# 
+#+/* Define lock_held for all arches that don't need a modified copy. */
+#+#ifndef __LT_INITIALIZER_NOT_ZERO
+#+# define lock_held(p) *(p)
+#+#endif
+#+
+#+/* Initliazers for possibly complex structures */
+#+#ifdef __LT_INITIALIZER_NOT_ZERO
+#+# define __pthread_lock_define_initialized(CLASS,NAME) \
+#+	CLASS __atomic_lock_t NAME = __LT_SPINLOCK_ALT_INIT
+#+#else
+#+# define __pthread_lock_define_initialized(CLASS,NAME) \
+#+	CLASS __atomic_lock_t NAME
+#+#endif
+#+
+# #if defined(TEST_FOR_COMPARE_AND_SWAP)
+# 
+# extern int __pthread_has_cas;
+# extern int __pthread_compare_and_swap(long * ptr, long oldval, long newval,
+#-                                      int * spinlock);
+#+                                      __atomic_lock_t * spinlock);
+# 
+# static inline int compare_and_swap(long * ptr, long oldval, long newval,
+#-                                   int * spinlock)
+#+                                   __atomic_lock_t * spinlock)
+# {
+#   if (__builtin_expect (__pthread_has_cas, 1))
+#     return __compare_and_swap(ptr, oldval, newval);
+#@@ -58,7 +72,7 @@
+# 
+# static inline int
+# compare_and_swap_with_release_semantics (long * ptr, long oldval,
+#-					 long newval, int * spinlock)
+#+					 long newval, __atomic_lock_t * spinlock)
+# {
+#   return __compare_and_swap_with_release_semantics (ptr, oldval,
+# 						    newval);
+#@@ -67,7 +81,7 @@
+# #endif
+# 
+# static inline int compare_and_swap(long * ptr, long oldval, long newval,
+#-                                   int * spinlock)
+#+                                   __atomic_lock_t * spinlock)
+# {
+#   return __compare_and_swap(ptr, oldval, newval);
+# }
+#@@ -75,10 +89,10 @@
+# #else
+# 
+# extern int __pthread_compare_and_swap(long * ptr, long oldval, long newval,
+#-                                      int * spinlock);
+#+                                      __atomic_lock_t * spinlock);
+# 
+# static inline int compare_and_swap(long * ptr, long oldval, long newval,
+#-                                   int * spinlock)
+#+                                   __atomic_lock_t * spinlock)
+# {
+#   return __pthread_compare_and_swap(ptr, oldval, newval, spinlock);
+# }
+
+
+#
+# not applied (lock change)
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/sysdeps/hppa/pspinlock.c glibc-2.3.2/linuxthreads/sysdeps/hppa/pspinlock.c
+#--- glibc-2.3.2-orig-debian/linuxthreads/sysdeps/hppa/pspinlock.c	2003-10-22 01:03:57.000000000 -0400
+#+++ glibc-2.3.2/linuxthreads/sysdeps/hppa/pspinlock.c	2003-10-22 01:07:38.000000000 -0400
+#@@ -24,13 +24,10 @@
+# int
+# __pthread_spin_lock (pthread_spinlock_t *lock)
+# {
+#-  unsigned int val;
+#+  volatile unsigned int *addr = __ldcw_align (lock);
+# 
+#-  do
+#-    asm volatile ("ldcw %1,%0"
+#-		  : "=r" (val), "=m" (*lock)
+#-		  : "m" (*lock));
+#-  while (!val);
+#+  while (__ldcw (addr) == 0)
+#+    while (*addr == 0) ;
+# 
+#   return 0;
+# }
+#@@ -40,13 +37,9 @@
+# int
+# __pthread_spin_trylock (pthread_spinlock_t *lock)
+# {
+#-  unsigned int val;
+#+  volatile unsigned int *a = __ldcw_align (lock);
+# 
+#-  asm volatile ("ldcw %1,%0"
+#-		: "=r" (val), "=m" (*lock)
+#-		: "m" (*lock));
+#-
+#-  return val ? 0 : EBUSY;
+#+  return __ldcw (a) ? 0 : EBUSY;
+# }
+# weak_alias (__pthread_spin_trylock, pthread_spin_trylock)
+# 
+#@@ -54,7 +47,9 @@
+# int
+# __pthread_spin_unlock (pthread_spinlock_t *lock)
+# {
+#-  *lock = 1;
+#+  volatile unsigned int *a = __ldcw_align (lock);
+#+
+#+  *a = 1;
+#   return 0;
+# }
+# weak_alias (__pthread_spin_unlock, pthread_spin_unlock)
+#@@ -66,7 +61,9 @@
+#   /* We can ignore the `pshared' parameter.  Since we are busy-waiting
+#      all processes which can access the memory location `lock' points
+#      to can use the spinlock.  */
+#-  *lock = 1;
+#+  volatile unsigned int *a = __ldcw_align (lock);
+#+
+#+  *a = 1;
+#   return 0;
+# }
+# weak_alias (__pthread_spin_init, pthread_spin_init)
+
+
+#
+# not applied (lock change)
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/sysdeps/hppa/pt-machine.h glibc-2.3.2/linuxthreads/sysdeps/hppa/pt-machine.h
+#--- glibc-2.3.2-orig-debian/linuxthreads/sysdeps/hppa/pt-machine.h	2003-10-22 01:06:10.000000000 -0400
+#+++ glibc-2.3.2/linuxthreads/sysdeps/hppa/pt-machine.h	2003-10-22 01:12:51.000000000 -0400
+#@@ -22,41 +22,97 @@
+# #ifndef _PT_MACHINE_H
+# #define _PT_MACHINE_H   1
+# 
+#+#include <sys/types.h>
+# #include <bits/initspin.h>
+# 
+# #ifndef PT_EI
+# # define PT_EI extern inline __attribute__ ((always_inline))
+# #endif
+# 
+#-extern long int testandset (int *spinlock);
+#-extern int __compare_and_swap (long int *p, long int oldval, long int newval);
+#+extern inline long int testandset (__atomic_lock_t *spinlock);
+#+extern inline int __compare_and_swap (long int *p, long int oldval, long int newval);
+#+extern inline int lock_held (__atomic_lock_t *spinlock); 
+#+extern inline int __load_and_clear (__atomic_lock_t *spinlock);
+# 
+# /* Get some notion of the current stack.  Need not be exactly the top
+#    of the stack, just something somewhere in the current frame.  */
+# #define CURRENT_STACK_FRAME  stack_pointer
+# register char * stack_pointer __asm__ ("%r30");
+# 
+#+/* Get/Set thread-specific pointer.  We have to call into the kernel to
+#+ * modify it, but we can read it in user mode.  */
+#+
+#+#define THREAD_SELF __get_cr27()
+#+
+#+static inline struct _pthread_descr_struct * __get_cr27(void)
+#+{
+#+	long cr27;
+#+	asm("mfctl %%cr27, %0" : "=r" (cr27) : );
+#+	return (struct _pthread_descr_struct *) cr27;
+#+}
+#+
+#+#define INIT_THREAD_SELF(descr, nr) __set_cr27(descr)
+#+
+#+static inline void __set_cr27(struct _pthread_descr_struct * cr27)
+#+{
+#+	asm(
+#+		"ble	0xe0(%%sr2, %%r0)\n\t"
+#+		"copy	%0, %%r26"
+#+	 : : "r" (cr27) : "r26" );
+#+}
+#+
+#+/* We want the OS to assign stack addresses.  */
+#+#define FLOATING_STACKS	1
+#+#define ARCH_STACK_MAX_SIZE	8*1024*1024
+# 
+# /* The hppa only has one atomic read and modify memory operation,
+#    load and clear, so hppa spinlocks must use zero to signify that
+#-   someone is holding the lock.  */
+#+   someone is holding the lock.  The address used for the ldcw
+#+   semaphore must be 16-byte aligned.  */
+#+#define __ldcw(a) ({ \
+#+  unsigned int __ret;							\
+#+  __asm__ __volatile__("ldcw 0(%2),%0"					\
+#+                      : "=r" (__ret), "=m" (*(a)) : "r" (a));		\
+#+  __ret;								\
+#+})
+#+
+#+/* Because malloc only guarantees 8-byte alignment for malloc'd data,
+#+   and GCC only guarantees 8-byte alignment for stack locals, we can't
+#+   be assured of 16-byte alignment for atomic lock data even if we
+#+   specify "__attribute ((aligned(16)))" in the type declaration.  So,
+#+   we use a struct containing an array of four ints for the atomic lock
+#+   type and dynamically select the 16-byte aligned int from the array
+#+   for the semaphore.  */
+#+#define __PA_LDCW_ALIGNMENT 16
+#+#define __ldcw_align(a) ({ \
+#+  volatile unsigned int __ret = (unsigned int) a;			\
+#+  if ((__ret & ~(__PA_LDCW_ALIGNMENT - 1)) < (unsigned int) a)		\
+#+    __ret = (__ret & ~(__PA_LDCW_ALIGNMENT - 1)) + __PA_LDCW_ALIGNMENT; \
+#+  (unsigned int *) __ret;						\
+#+})
+# 
+#-#define xstr(s) str(s)
+#-#define str(s) #s
+# /* Spinlock implementation; required.  */
+#-PT_EI long int
+#-testandset (int *spinlock)
+#+PT_EI int
+#+__load_and_clear (__atomic_lock_t *spinlock)
+# {
+#-  int ret;
+#+  volatile unsigned int *a = __ldcw_align (spinlock);
+# 
+#-  __asm__ __volatile__(
+#-       "ldcw 0(%2),%0"
+#-       : "=r"(ret), "=m"(*spinlock)
+#-       : "r"(spinlock));
+#+  return __ldcw (a);
+#+}
+# 
+#-  return ret == 0;
+#+/* Emulate testandset */
+#+PT_EI long int
+#+testandset (__atomic_lock_t *spinlock)
+#+{
+#+  return (__load_and_clear(spinlock) == 0);
+# }
+#-#undef str
+#-#undef xstr
+# 
+#+PT_EI int
+#+lock_held (__atomic_lock_t *spinlock)
+#+{
+#+  volatile unsigned int *a = __ldcw_align (spinlock);
+#+
+#+  return *a == 0;
+#+}
+#+		
+# #endif /* pt-machine.h */
+
+
+
+#
+# not (lock change).
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/sysdeps/pthread/bits/libc-lock.h glibc-2.3.2/linuxthreads/sysdeps/pthread/bits/libc-lock.h
+#--- glibc-2.3.2-orig-debian/linuxthreads/sysdeps/pthread/bits/libc-lock.h	2003-10-22 01:06:16.000000000 -0400
+#+++ glibc-2.3.2/linuxthreads/sysdeps/pthread/bits/libc-lock.h	2003-10-22 01:07:38.000000000 -0400
+#@@ -71,12 +71,12 @@
+#    initialized locks must be set to one due to the lack of normal
+#    atomic operations.) */
+# 
+#-#if __LT_SPINLOCK_INIT == 0
+#+#ifdef __LT_INITIALIZER_NOT_ZERO
+# #  define __libc_lock_define_initialized(CLASS,NAME) \
+#-  CLASS __libc_lock_t NAME;
+#+  CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER;
+# #else
+# #  define __libc_lock_define_initialized(CLASS,NAME) \
+#-  CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER;
+#+  CLASS __libc_lock_t NAME;
+# #endif
+# 
+# #define __libc_rwlock_define_initialized(CLASS,NAME) \
+
+
+#
+# not. (lock change)
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h glibc-2.3.2/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
+#--- glibc-2.3.2-orig-debian/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h	2003-10-22 01:03:57.000000000 -0400
+#+++ glibc-2.3.2/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h	2003-10-22 01:07:38.000000000 -0400
+#@@ -22,12 +22,14 @@
+# #define __need_schedparam
+# #include <bits/sched.h>
+# 
+#+typedef int __atomic_lock_t;
+#+
+# /* Fast locks (not abstract because mutexes and conditions aren't abstract). */
+# struct _pthread_fastlock
+# {
+#-  long int __status;   /* "Free" or "taken" or head of waiting list */
+#-  int __spinlock;      /* Used by compare_and_swap emulation. Also,
+#-			  adaptive SMP lock stores spin count here. */
+#+  long int __status;		/* "Free" or "taken" or head of waiting list */
+#+  __atomic_lock_t __spinlock;	/* Used by compare_and_swap emulation. Also,
+#+				   adaptive SMP lock stores spin count here. */
+# };
+# 
+# #ifndef _PTHREAD_DESCR_DEFINED
+
+
+
+#
+# not (lock change)
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h
+#--- glibc-2.3.2-orig-debian/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h	2003-10-22 01:03:57.000000000 -0400
+#+++ glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h	2003-10-22 01:07:38.000000000 -0400
+#@@ -19,9 +19,23 @@
+# 
+# /* Initial value of a spinlock.  PA-RISC only implements atomic load
+#    and clear so this must be non-zero. */
+#-#define __LT_SPINLOCK_INIT 1
+#+#define __LT_SPINLOCK_INIT ((__atomic_lock_t) { { 1, 1, 1, 1 } })
+#+
+#+/* Initialize global spinlocks without cast, generally macro wrapped */
+#+#define __LT_SPINLOCK_ALT_INIT { { 1, 1, 1, 1 } }
+#+
+#+/* Macros for lock initializers, not using the above definition.
+#+   The above definition is not used in the case that static initializers
+#+   use this value. */
+#+#define __LOCK_INITIALIZER { __LT_SPINLOCK_ALT_INIT, 0 }
+#+
+#+/* Used to initialize _pthread_fastlock's in non-static case */
+#+#define __LOCK_ALT_INITIALIZER ((struct _pthread_fastlock){ __LT_SPINLOCK_INIT, 0 })
+#+
+#+/* Used in pthread_atomic initialization */
+#+#define __ATOMIC_INITIALIZER { 0, __LT_SPINLOCK_ALT_INIT }
+#+
+#+/* Tell the rest of the code that the initializer is non-zero without
+#+   explaining it's internal structure */
+#+#define __LT_INITIALIZER_NOT_ZERO
+# 
+#-/* Macros for lock initializers, using the above definition. */
+#-#define __LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT }
+#-#define __ALT_LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT }
+#-#define __ATOMIC_INITIALIZER { 0, __LT_SPINLOCK_INIT }
+
+
+
+#
+# not (lock change)
+#
+#diff -urN glibc-2.3.2-orig-debian/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/pthreadtypes.h glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/pthreadtypes.h
+#--- glibc-2.3.2-orig-debian/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/pthreadtypes.h	1969-12-31 19:00:00.000000000 -0500
+#+++ glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/pthreadtypes.h	2003-10-22 01:07:38.000000000 -0400
+#@@ -0,0 +1,160 @@
+#+/* Linuxthreads - a simple clone()-based implementation of Posix        */
+#+/* threads for Linux.                                                   */
+#+/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr)              */
+#+/*                                                                      */
+#+/* This program is free software; you can redistribute it and/or        */
+#+/* modify it under the terms of the GNU Library General Public License  */
+#+/* as published by the Free Software Foundation; either version 2       */
+#+/* of the License, or (at your option) any later version.               */
+#+/*                                                                      */
+#+/* This program 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 Library General Public License for more details.                 */
+#+
+#+#if !defined _BITS_TYPES_H && !defined _PTHREAD_H
+#+# error "Never include <bits/pthreadtypes.h> directly; use <sys/types.h> instead."
+#+#endif
+#+
+#+#ifndef _BITS_PTHREADTYPES_H
+#+#define _BITS_PTHREADTYPES_H	1
+#+
+#+#define __need_schedparam
+#+#include <bits/sched.h>
+#+
+#+/* We need 128-bit alignment for the ldcw semaphore.  At most, we are
+#+   assured of 64-bit alignment for stack locals and malloc'd data.  Thus,
+#+   we use a struct with four ints for the atomic lock type.  The locking
+#+   code will figure out which of the four to use for the ldcw semaphore.  */
+#+typedef volatile struct {
+#+  int lock[4];
+#+} __attribute__ ((aligned(16))) __atomic_lock_t;
+#+
+#+/* Fast locks (not abstract because mutexes and conditions aren't abstract). */
+#+struct _pthread_fastlock
+#+{
+#+  __atomic_lock_t __spinlock;	/* Used by compare_and_swap emulation.  Also,
+#+				   adaptive SMP lock stores spin count here. */
+#+  long int __status;		/* "Free" or "taken" or head of waiting list */
+#+};
+#+
+#+#ifndef _PTHREAD_DESCR_DEFINED
+#+/* Thread descriptors */
+#+typedef struct _pthread_descr_struct *_pthread_descr;
+#+# define _PTHREAD_DESCR_DEFINED
+#+#endif
+#+
+#+
+#+/* Attributes for threads.  */
+#+typedef struct __pthread_attr_s
+#+{
+#+  int __detachstate;
+#+  int __schedpolicy;
+#+  struct __sched_param __schedparam;
+#+  int __inheritsched;
+#+  int __scope;
+#+  size_t __guardsize;
+#+  int __stackaddr_set;
+#+  void *__stackaddr;
+#+  size_t __stacksize;
+#+} pthread_attr_t;
+#+
+#+
+#+/* Conditions (not abstract because of PTHREAD_COND_INITIALIZER */
+#+
+#+#ifdef __GLIBC_HAVE_LONG_LONG
+#+__extension__ typedef long long __pthread_cond_align_t;
+#+#else
+#+typedef long __pthread_cond_align_t;
+#+#endif
+#+
+#+typedef struct
+#+{
+#+  struct _pthread_fastlock __c_lock; /* Protect against concurrent access */
+#+  _pthread_descr __c_waiting;        /* Threads waiting on this condition */
+#+  char __padding[48 - sizeof (struct _pthread_fastlock)
+#+		 - sizeof (_pthread_descr) - sizeof (__pthread_cond_align_t)];
+#+  __pthread_cond_align_t __align;
+#+} pthread_cond_t;
+#+
+#+
+#+/* Attribute for conditionally variables.  */
+#+typedef struct
+#+{
+#+  int __dummy;
+#+} pthread_condattr_t;
+#+
+#+/* Keys for thread-specific data */
+#+typedef unsigned int pthread_key_t;
+#+
+#+
+#+/* Mutexes (not abstract because of PTHREAD_MUTEX_INITIALIZER).  */
+#+/* (The layout is unnatural to maintain binary compatibility
+#+    with earlier releases of LinuxThreads.) */
+#+typedef struct
+#+{
+#+  int __m_reserved;               /* Reserved for future use */
+#+  int __m_count;                  /* Depth of recursive locking */
+#+  _pthread_descr __m_owner;       /* Owner thread (if recursive or errcheck) */
+#+  int __m_kind;                   /* Mutex kind: fast, recursive or errcheck */
+#+  struct _pthread_fastlock __m_lock; /* Underlying fast lock */
+#+} pthread_mutex_t;
+#+
+#+
+#+/* Attribute for mutex.  */
+#+typedef struct
+#+{
+#+  int __mutexkind;
+#+} pthread_mutexattr_t;
+#+
+#+
+#+/* Once-only execution */
+#+typedef int pthread_once_t;
+#+
+#+
+#+#ifdef __USE_UNIX98
+#+/* Read-write locks.  */
+#+typedef struct _pthread_rwlock_t
+#+{
+#+  struct _pthread_fastlock __rw_lock; /* Lock to guarantee mutual exclusion */
+#+  int __rw_readers;                   /* Number of readers */
+#+  _pthread_descr __rw_writer;         /* Identity of writer, or NULL if none */
+#+  _pthread_descr __rw_read_waiting;   /* Threads waiting for reading */
+#+  _pthread_descr __rw_write_waiting;  /* Threads waiting for writing */
+#+  int __rw_kind;                      /* Reader/Writer preference selection */
+#+  int __rw_pshared;                   /* Shared between processes or not */
+#+} pthread_rwlock_t;
+#+
+#+
+#+/* Attribute for read-write locks.  */
+#+typedef struct
+#+{
+#+  int __lockkind;
+#+  int __pshared;
+#+} pthread_rwlockattr_t;
+#+#endif
+#+
+#+#ifdef __USE_XOPEN2K
+#+/* POSIX spinlock data type.  */
+#+typedef __atomic_lock_t pthread_spinlock_t;
+#+
+#+/* POSIX barrier. */
+#+typedef struct {
+#+  struct _pthread_fastlock __ba_lock; /* Lock to guarantee mutual exclusion */
+#+  int __ba_required;                  /* Threads needed for completion */
+#+  int __ba_present;                   /* Threads waiting */
+#+  _pthread_descr __ba_waiting;        /* Queue of waiting threads */
+#+} pthread_barrier_t;
+#+
+#+/* barrier attribute */
+#+typedef struct {
+#+  int __pshared;
+#+} pthread_barrierattr_t;
+#+
+#+#endif
+#+
+#+
+#+/* Thread identifiers */
+#+typedef unsigned long int pthread_t;
+#+
+#+#endif	/* bits/pthreadtypes.h */
+
+
+
+#
+# I don't know why it's needed...  I think we can drop it.
+#
+#diff -urN glibc-2.3.2-orig-debian/localedata/gen-locale.sh glibc-2.3.2/localedata/gen-locale.sh
+#--- glibc-2.3.2-orig-debian/localedata/gen-locale.sh	2003-10-22 01:03:54.000000000 -0400
+#+++ glibc-2.3.2/localedata/gen-locale.sh	2003-10-22 01:07:38.000000000 -0400
+#@@ -47,6 +47,7 @@
+# locale=`echo $locfile|sed 's|\([^.]*\)[.].*/LC_CTYPE|\1|'`
+# charmap=`echo $locfile|sed 's|[^.]*[.]\(.*\)/LC_CTYPE|\1|'`
+# 
+#+echo "Running \"$0 $common_objpfx $localedef $locfile\""
+# echo "Generating locale $locale.$charmap: this might take a while..."
+# generate_locale `echo $charmap | sed -e s/SJIS/SHIFT_JIS/` $locale \
+# 		$locale.$charmap
+
+
+#
+# the file is already removed.  (lock change)
+#
+#diff -urN glibc-2.3.2-orig-debian/malloc/thread-m.h glibc-2.3.2/malloc/thread-m.h
+#--- glibc-2.3.2-orig-debian/malloc/thread-m.h	2003-10-22 01:06:10.000000000 -0400
+#+++ glibc-2.3.2/malloc/thread-m.h	2003-10-22 01:07:38.000000000 -0400
+#@@ -59,6 +59,28 @@
+# #define mutex_unlock(m)		\
+#   __libc_maybe_call2 (pthread_mutex_unlock, (m), (*(int *)(m) = 0))
+# 
+#+# if(defined __hppa__)
+#+/* Since our lock structure does not tolerate being initialized to zero, we must
+#+   modify the standard function calls made by malloc */
+#+#  undef mutex_init
+#+#  undef mutex_lock
+#+#  undef mutex_trylock
+#+#  undef mutex_unlock
+#+#  define mutex_init(m)		\
+#+	__libc_maybe_call (__pthread_mutex_init, (m, NULL), \
+#+			(((m)->__m_lock.__spinlock = __LT_SPINLOCK_INIT),(*(int *)(m))) )
+#+#  define mutex_lock(m)		\
+#+	__libc_maybe_call (__pthread_mutex_lock, (m), \
+#+			(__load_and_clear(&((m)->__m_lock.__spinlock)), 0))
+#+#  define mutex_trylock(m)	\
+#+	__libc_maybe_call (__pthread_mutex_trylock, (m), \
+#+			(*(int *)(m) ? 1 : (__load_and_clear(&((m)->__m_lock.__spinlock)), 0)))
+#+#  define mutex_unlock(m)	\
+#+	__libc_maybe_call (__pthread_mutex_unlock, (m), \
+#+			(((m)->__m_lock.__spinlock = __LT_SPINLOCK_INIT), (*(int *)(m))) )
+#+# endif 
+#+/* if(defined __hppa__) */
+#+	
+# #else
+# 
+# #define mutex_init(m)		\
+
+
+#
+# not in cvs.
+#
+#diff -urN glibc-2.3.2-orig-debian/sysdeps/hppa/atomicity.h glibc-2.3.2/sysdeps/hppa/atomicity.h
+#--- glibc-2.3.2-orig-debian/sysdeps/hppa/atomicity.h	1969-12-31 19:00:00.000000000 -0500
+#+++ glibc-2.3.2/sysdeps/hppa/atomicity.h	2003-10-22 01:07:38.000000000 -0400
+#@@ -0,0 +1,55 @@
+#+/* Low-level functions for atomic operations.  HP-PARISC version.
+#+   Copyright (C) 1997,2001 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.  */
+#+
+#+#ifndef _ATOMICITY_H
+#+#define _ATOMICITY_H	1
+#+
+#+#include <inttypes.h>
+#+
+#+#warning stub atomicity functions are not atomic
+#+#warning CAO This will get implemented soon
+#+
+#+static inline int
+#+__attribute__ ((unused))
+#+exchange_and_add (volatile uint32_t *mem, int val)
+#+{
+#+  int result = *mem;
+#+  *mem += val;
+#+  return result;
+#+}
+#+
+#+static inline void
+#+__attribute__ ((unused))
+#+atomic_add (volatile uint32_t *mem, int val)
+#+{
+#+  *mem += val;
+#+}
+#+
+#+static inline int
+#+__attribute__ ((unused))
+#+compare_and_swap (volatile long int *p, long int oldval, long int newval)
+#+{
+#+  if (*p != oldval)
+#+    return 0;
+#+
+#+  *p = newval;
+#+  return 1;
+#+}
+#+
+#+#endif /* atomicity.h */
+
+
+#
+# this file is removed.  but it may not be needed.
+#
+#diff -urN glibc-2.3.2-orig-debian/sysdeps/hppa/dl-fptr.c glibc-2.3.2/sysdeps/hppa/dl-fptr.c
+#--- glibc-2.3.2-orig-debian/sysdeps/hppa/dl-fptr.c	2003-10-22 01:03:47.000000000 -0400
+#+++ glibc-2.3.2/sysdeps/hppa/dl-fptr.c	2003-10-22 01:07:38.000000000 -0400
+#@@ -30,7 +30,7 @@
+# # include <pt-machine.h>
+# 
+# /* Remember, we use 0 to mean that a lock is taken on PA-RISC. */
+#-static int __hppa_fptr_lock = 1;
+#+static __atomic_lock_t __hppa_fptr_lock = __LT_SPINLOCK_ALT_INIT;
+# #endif
+# 
+# /* Because ld.so is now versioned, these functions can be in their own
+#@@ -127,7 +127,7 @@
+# #ifdef _LIBC_REENTRANT
+#   /* Release the lock.  Again, remember, zero means the lock is taken!  */
+#   if (mem == NULL)
+#-    __hppa_fptr_lock = 1;
+#+    __hppa_fptr_lock = __LT_SPINLOCK_INIT;
+# #endif
+# 
+#   /* Set bit 30 to indicate to $$dyncall that this is a PLABEL. */
+#@@ -180,7 +180,7 @@
+# 
+# #ifdef _LIBC_REENTRANT
+#   /* Release the lock. */
+#-  __hppa_fptr_lock = 1;
+#+  __hppa_fptr_lock = __LT_SPINLOCK_INIT;
+# #endif
+# }
+# 
+#@@ -190,6 +190,8 @@
+#   Elf32_Addr addr = (Elf32_Addr) address;
+#   struct hppa_fptr *f;
+# 
+#+  address = (void *)((unsigned long)address &~ 3); /* Clear the bottom two bits.  See make_fptr. */
+#+  
+# #ifdef _LIBC_REENTRANT
+#   /* Make sure we are alone.  */
+#   while (testandset (&__hppa_fptr_lock));
+#@@ -204,7 +206,7 @@
+# 
+# #ifdef _LIBC_REENTRANT
+#   /* Release the lock.   */
+#-  __hppa_fptr_lock = 1;
+#+  __hppa_fptr_lock = __LT_SPINLOCK_INIT;
+# #endif
+# 
+#   return addr;
+
+
+#
+# not in cvs - I don't know it's needed.
+#
+#diff -urN glibc-2.3.2-orig-debian/sysdeps/unix/Makefile glibc-2.3.2/sysdeps/unix/Makefile
+#--- glibc-2.3.2-orig-debian/sysdeps/unix/Makefile	2003-10-22 01:06:12.000000000 -0400
+#+++ glibc-2.3.2/sysdeps/unix/Makefile	2003-10-22 01:07:38.000000000 -0400
+#@@ -295,6 +295,7 @@
+# 			  $(..)sysdeps/unix/Makefile
+# 	$(make-target-directory)
+# 	(echo '#include <errno.h>'; \
+#+	 echo 'extern long int _no_syscall(void);'; \
+# 	 echo 'long int _no_syscall (void)'; \
+# 	 echo '{ __set_errno (ENOSYS); return -1L; }'; \
+# 	 for call in $(unix-stub-syscalls); do \
+
+
+
+#
+# It should be put in.
+#
+diff -urN glibc-2.3.2-orig-debian/sysdeps/unix/sysv/linux/hppa/kernel_stat.h glibc-2.3.2/sysdeps/unix/sysv/linux/hppa/kernel_stat.h
+--- glibc-2.3.2-orig-debian/sysdeps/unix/sysv/linux/hppa/kernel_stat.h	2003-10-22 01:03:48.000000000 -0400
++++ glibc-2.3.2/sysdeps/unix/sysv/linux/hppa/kernel_stat.h	2003-10-22 01:07:38.000000000 -0400
+@@ -1,30 +1,30 @@
+-/* definition of "struct stat" from the kernel */
++/* Definition of 'struct stat' taken from kernel, please keep up to date */
+ struct kernel_stat {
+-	unsigned long	st_dev;		/* dev_t is 32 bits on parisc */
+-	unsigned long	st_ino;		/* 32 bits */
++	unsigned int	st_dev;		/* dev_t is 32 bits on parisc */
++	unsigned int	st_ino;		/* 32 bits */
+ 	unsigned short	st_mode;	/* 16 bits */
+ 	unsigned short	st_nlink;	/* 16 bits */
+ 	unsigned short	st_reserved1;	/* old st_uid */
+ 	unsigned short	st_reserved2;	/* old st_gid */
+-	unsigned long	st_rdev;
+-	unsigned long   st_size;
++	unsigned int	st_rdev;
++	unsigned int	st_size;
+ 	struct timespec st_atim;
+-	struct timespec st_mtim;
+-	struct timespec st_ctim;
+-	long		st_blksize;
+-	long		st_blocks;
+-	unsigned long	__unused1;	/* ACL stuff */
+-	unsigned long	__unused2;	/* network */
+-	unsigned long	__unused3;	/* network */
+-	unsigned long	__unused4;	/* cnodes */
++	struct timespec	st_mtim;
++	struct timespec	st_ctim;
++	int		st_blksize;
++	int		st_blocks;
++	unsigned int	__unused1;	/* ACL stuff */
++	unsigned int	__unused2;	/* network */
++	unsigned int	__unused3;	/* network */
++	unsigned int	__unused4;	/* cnodes */
+ 	unsigned short	__unused5;	/* netsite */
+ 	short		st_fstype;
+-	unsigned long	st_realdev;
++	unsigned int	st_realdev;
+ 	unsigned short	st_basemode;
+ 	unsigned short	st_spareshort;
+-	unsigned long	st_uid;
+-	unsigned long   st_gid;
+-	unsigned long	st_spare4[3];
++	unsigned int	st_uid;
++	unsigned int	st_gid;
++	unsigned int	st_spare4[3];
+ };
+ 
+ #define _HAVE_STAT_NSEC
+
+
+
+#
+# It's OK to put.
+#
+diff -urN glibc-2.3.2-orig-debian/sysdeps/unix/sysv/linux/hppa/mmap.c glibc-2.3.2/sysdeps/unix/sysv/linux/hppa/mmap.c
+--- glibc-2.3.2-orig-debian/sysdeps/unix/sysv/linux/hppa/mmap.c	2003-10-22 01:03:48.000000000 -0400
++++ glibc-2.3.2/sysdeps/unix/sysv/linux/hppa/mmap.c	2003-10-22 01:07:38.000000000 -0400
+@@ -37,7 +37,7 @@
+ 	
+ 	__ptr_t ret;
+ 
+-	ret = INLINE_SYSCALL(mmap, 6, addr, len, prot, flags, fd, offset);
++	ret = (__ptr_t)INLINE_SYSCALL(mmap, 6, addr, len, prot, flags, fd, offset);
+ 
+ 	/* check if it's really a negative number */
+ 	if(((unsigned long)ret & 0xfffff000) == 0xfffff000)
+
+
+
+#
+# I don't know it's needed or not
+#
+#diff -urN glibc-2.3.2-orig-debian/sysdeps/unix/sysv/linux/hppa/umount.c glibc-2.3.2/sysdeps/unix/sysv/linux/hppa/umount.c
+#--- glibc-2.3.2-orig-debian/sysdeps/unix/sysv/linux/hppa/umount.c	2003-10-22 01:03:48.000000000 -0400
+#+++ glibc-2.3.2/sysdeps/unix/sysv/linux/hppa/umount.c	2003-10-22 01:07:38.000000000 -0400
+#@@ -21,6 +21,7 @@
+#    does down here.  */
+# 
+# extern long int __umount2 (const char *name, int flags);
+#+extern long int __umount (const char * name);
+# 
+# long int
+# __umount (const char *name)

Added: glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-hppa-linesep.dpatch
===================================================================
--- glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-hppa-linesep.dpatch	2005-03-21 04:25:51 UTC (rev 857)
+++ glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-hppa-linesep.dpatch	2005-03-21 04:27:02 UTC (rev 858)
@@ -0,0 +1,61 @@
+#! /bin/sh -e
+
+# All lines beginning with `# DP:' are a description of the patch.
+# DP: Description: Fix ASM_LINE_SEP on hppa
+# DP: Related bugs: 
+# DP: Dpatch author: GOTO Masanori <gotom@debian.org>
+# DP: Patch author: GOTO Masanori <gotom@debian.org>
+# DP: Upstream status: In CVS
+# DP: Status Details:
+# DP: Date: 2005-03-08
+
+PATCHLEVEL=0
+
+if [ $# -ne 2 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+case "$1" in
+    -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;;
+    -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;;
+    *)
+	echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+	exit 1
+esac
+exit 0
+
+# append the patch here and adjust the -p? flag in the patch calls.
+2005-03-08  GOTO Masanori  <gotom@debian.or.jp>
+
+	* sysdeps/hppa/configure.in: Remove old Makefile leavings.
+	* sysdeps/hppa/configure: Regenerated.
+
+Index: sysdeps/hppa/configure.in
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/hppa/configure.in,v
+retrieving revision 1.1
+diff -u -p -r1.1 configure.in
+--- sysdeps/hppa/configure.in	26 Oct 2004 01:35:53 -0000	1.1
++++ sysdeps/hppa/configure.in	8 Mar 2005 04:29:14 -0000
+@@ -2,7 +2,6 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the
+ 
+ dnl The standard hppa assembler uses `;' to start comments and `!'
+ dnl as a line separator.
+-hppa*linux*)
+ AC_CACHE_CHECK(for assembler line separator,
+ 	       libc_cv_asm_line_sep, [dnl
+ cat > conftest.s <<EOF
+Index: sysdeps/hppa/configure
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/hppa/configure,v
+retrieving revision 1.1
+diff -u -p -r1.1 configure
+--- sysdeps/hppa/configure	26 Oct 2004 01:35:53 -0000	1.1
++++ sysdeps/hppa/configure	8 Mar 2005 04:29:14 -0000
+@@ -1,6 +1,5 @@
+ # This file is generated from configure.in by Autoconf.  DO NOT EDIT!
+ 
+-hppa*linux*)
+ echo "$as_me:$LINENO: checking for assembler line separator" >&5
+ echo $ECHO_N "checking for assembler line separator... $ECHO_C" >&6
+ if test "${libc_cv_asm_line_sep+set}" = set; then

Added: glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-hppa-remove-mallocdef.dpatch
===================================================================
--- glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-hppa-remove-mallocdef.dpatch	2005-03-21 04:25:51 UTC (rev 857)
+++ glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-hppa-remove-mallocdef.dpatch	2005-03-21 04:27:02 UTC (rev 858)
@@ -0,0 +1,104 @@
+#! /bin/sh -e
+
+# All lines beginning with `# DP:' are a description of the patch.
+# DP: Description: malloc-machine.h should be removed until spinlock ldcw
+#		   fix is applied.  workaround for compilation.
+# DP: Related bugs: 
+# DP: Dpatch author: GOTO Masanori <gotom@debian.org>
+# DP: Patch author: GOTO Masanori <gotom@debian.org>
+# DP: Upstream status: Debian-Specific
+# DP: Status Details: 
+# DP: Date: 2005-03-09
+
+PATCHLEVEL=0
+
+if [ $# -ne 2 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+case "$1" in
+    -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;;
+    -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;;
+    *)
+	echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+	exit 1
+esac
+exit 0
+
+# append the patch here and adjust the -p? flag in the patch calls.
+--- linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h	15 Oct 2003 04:40:10 -0000	1.1
++++ /dev/null	9 Mar 2005 06:45:46 -0000
+@@ -1,73 +0,0 @@
+-/* HP-PARISC macro definitions for mutexes, thread-specific data 
+-   and parameters for malloc.
+-   Copyright (C) 2003 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Carlos O'Donell <carlos@baldric.uwo.ca>, 2003.
+-   
+-   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.  */
+-
+-#ifndef _MALLOC_MACHINE_H
+-#define _MALLOC_MACHINE_H
+-
+-#undef thread_atfork_static
+-
+-#include <atomic.h>
+-#include <bits/libc-lock.h>
+-
+-__libc_lock_define (typedef, mutex_t)
+-
+-/* Since our lock structure does not tolerate being initialized to zero, we must
+-   modify the standard function calls made by malloc */
+-#  define mutex_init(m)		\
+-	__libc_maybe_call (__pthread_mutex_init, (m, NULL), \
+-		(((m)->__m_lock.__spinlock = __LT_SPINLOCK_INIT),(*(int *)(m))) )
+-#  define mutex_lock(m)		\
+-	__libc_maybe_call (__pthread_mutex_lock, (m), \
+-			(__load_and_clear(&((m)->__m_lock.__spinlock)), 0))
+-#  define mutex_trylock(m)	\
+-	__libc_maybe_call (__pthread_mutex_trylock, (m), \
+-			(*(int *)(m) ? 1 : (__load_and_clear(&((m)->__m_lock.__spinlock)), 0)))
+-#  define mutex_unlock(m)	\
+-	__libc_maybe_call (__pthread_mutex_unlock, (m), \
+-			(((m)->__m_lock.__spinlock = __LT_SPINLOCK_INIT), (*(int *)(m))) )
+-	
+-/* This is defined by newer gcc version unique for each module.  */
+-extern void *__dso_handle __attribute__ ((__weak__));
+-
+-#include <fork.h>
+-
+-#ifdef SHARED
+-# define thread_atfork(prepare, parent, child) \
+-   __register_atfork (prepare, parent, child, __dso_handle)
+-#else
+-# define thread_atfork(prepare, parent, child) \
+-   __register_atfork (prepare, parent, child,				      \
+-		      &__dso_handle == NULL ? NULL : __dso_handle)
+-#endif
+-
+-/* thread specific data for glibc */
+-
+-#include <bits/libc-tsd.h>
+-
+-typedef int tsd_key_t[1];	/* no key data structure, libc magic does it */
+-__libc_tsd_define (static, MALLOC)	/* declaration/common definition */
+-#define tsd_key_create(key, destr)	((void) (key))
+-#define tsd_setspecific(key, data)	__libc_tsd_set (MALLOC, (data))
+-#define tsd_getspecific(key, vptr)	((vptr) = __libc_tsd_get (MALLOC))
+-
+-#include <sysdeps/generic/malloc-machine.h>
+-
+-#endif /* !defined(_MALLOC_MACHINE_H) */

Added: glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-m68k-linuxthreads-fPIC.dpatch
===================================================================
--- glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-m68k-linuxthreads-fPIC.dpatch	2005-03-21 04:25:51 UTC (rev 857)
+++ glibc-package/branches/glibc-2.3.4/debian/patches/glibc234-m68k-linuxthreads-fPIC.dpatch	2005-03-21 04:27:02 UTC (rev 858)
@@ -0,0 +1,47 @@
+#! /bin/sh -e
+
+# All lines beginning with `# DP:' are a description of the patch.
+# DP: Description: Fix m68k compilation to remove linuxthreads o-iterator.
+# DP: Related bugs: 
+# DP: Dpatch author: GOTO Masanori <gotom@debian.org>
+# DP: Patch author: GOTO Masanori <gotom@debian.org>
+# DP: Upstream status: Not submitted
+# DP: Status Details: Will be submitted.
+# DP: Date: 2005-03-16
+
+PATCHLEVEL=0
+
+if [ $# -ne 2 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+case "$1" in
+    -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;;
+    -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;;
+    *)
+	echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+	exit 1
+esac
+exit 0
+
+# append the patch here and adjust the -p? flag in the patch calls.
+2004-12-17  GOTO Masanori  <gotom@debian.or.jp>
+
+	* linuxthreads/sysdeps/m68k/Makefile: Removed to delete unneeded
+	o-iterator which adds for -fPIC.
+
+Index: linuxthreads/sysdeps/m68k/Makefile
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/m68k/Makefile,v
+retrieving revision 1.1
+diff -u -r1.1 Makefile
+--- linuxthreads/sysdeps/m68k/Makefile	5 Jan 2003 17:15:43 -0000	1.1
++++ /dev/null	16 Dec 2004 16:53:06 -0000
+@@ -1,7 +0,0 @@
+-ifeq ($(subdir), linuxthreads)
+-object-suffixes-left := $(libpthread-nonshared)
+-define o-iterator-doit
+-$(objpfx)$o.os: pic-ccflag = -fPIC
+-endef
+-include $(o-iterator)
+-endif



Reply to: