about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog44
-rw-r--r--locale/loadarchive.c1
-rw-r--r--misc/Makefile7
-rw-r--r--misc/Versions17
-rw-r--r--misc/sys/xattr.h106
-rw-r--r--sysdeps/generic/fgetxattr.c31
-rw-r--r--sysdeps/generic/flistxattr.c30
-rw-r--r--sysdeps/generic/fremovexattr.c30
-rw-r--r--sysdeps/generic/fsetxattr.c31
-rw-r--r--sysdeps/generic/getxattr.c31
-rw-r--r--sysdeps/generic/lgetxattr.c31
-rw-r--r--sysdeps/generic/listxattr.c30
-rw-r--r--sysdeps/generic/llistxattr.c30
-rw-r--r--sysdeps/generic/lremovexattr.c30
-rw-r--r--sysdeps/generic/lsetxattr.c31
-rw-r--r--sysdeps/generic/removexattr.c30
-rw-r--r--sysdeps/generic/setxattr.c31
-rw-r--r--sysdeps/ieee754/flt-32/e_jnf.c19
-rw-r--r--sysdeps/ieee754/ldbl-96/e_j0l.c18
-rw-r--r--sysdeps/unix/sysv/linux/alpha/Versions17
-rw-r--r--sysdeps/unix/sysv/linux/arm/Versions17
-rw-r--r--sysdeps/unix/sysv/linux/ia64/Versions17
-rw-r--r--sysdeps/unix/sysv/linux/m68k/Versions17
-rw-r--r--sysdeps/unix/sysv/linux/mips/Versions17
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/Versions17
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/Versions17
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/Versions17
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/Versions17
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/Versions17
29 files changed, 554 insertions, 194 deletions
diff --git a/ChangeLog b/ChangeLog
index 8a76757e87..9897d871cf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,52 @@
+2002-08-23  Andreas Jaeger  <aj@suse.de>
+
+	* locale/loadarchive.c: Include <stdlib.h> for prototypes of
+	alloca, free, qsort.
+
+	* dlfcn/bug-dlsym1-lib1.c (foo): Add prototype to avoid warning.
+
+	* sysdeps/ieee754/flt-32/e_jnf.c: Remove unused variable.
+	* sysdeps/ieee754/ldbl-96/e_j0l.c: Likewise.
+
+	* sysdeps/generic/fgetxattr.c: New file.
+	* sysdeps/generic/flistxattr.c: New file.
+	* sysdeps/generic/fremovexattr.c: New file.
+	* sysdeps/generic/fsetxattr.c: New file.
+	* sysdeps/generic/getxattr.c: New file.
+	* sysdeps/generic/listxattr.c: New file.
+	* sysdeps/generic/lgetxattr.c: New file.
+	* sysdeps/generic/llistxattr.c: New file.
+	* sysdeps/generic/lremovexattr.c: New file.
+	* sysdeps/generic/lsetxattr.c: New file.
+	* sysdeps/generic/removexattr.c: New file.
+	* sysdeps/generic/setxattr.c: New file.
+
+	* misc/sys/xattr.h: New file, contributed by Christoph Hellwig
+	<hch@lst.de>.
+
+	* misc/Makefile (headers): Add sys/xattr.h.
+	(routines): Add *xattr calls.
+
+	* misc/Versions: Add *xattr calls with version 2.3.
+
+	* sysdeps/unix/sysv/linux/m68k/Versions: Remove *xattr syscalls.
+	* sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/Versions: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/Versions: Likewise.
+	* sysdeps/unix/sysv/linux/alpha/Versions: Likewise.
+	* sysdeps/unix/sysv/linux/arm/Versions: Likewise.
+
 2002-08-22  Steven Munroe  <sjmunroe@us.ibm.com>
 
-	* sysdeps/powerpc/elf/libc-start.c 
+	* sysdeps/powerpc/elf/libc-start.c
 	(__cache_line_size): Declare.
 	(__aux_init_cache): New.
 	(__libc_start_main): Change type of `auxvec' parameter to
 	`ElfW(auxv_t) *'.  Correct walking of aux vector.  Call
 	__aux_init_cache.
-	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c 
+	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
 	(__cache_line_size): Declare.
 	(__aux_init_cache): New.
 	(DL_PLATFORM_INIT): Define.
diff --git a/locale/loadarchive.c b/locale/loadarchive.c
index d25334a7fd..cad34b63e6 100644
--- a/locale/loadarchive.c
+++ b/locale/loadarchive.c
@@ -19,6 +19,7 @@
 
 #include <locale.h>
 #include <stddef.h>
+#include <stdlib.h>
 #include <stdbool.h>
 #include <errno.h>
 #include <assert.h>
diff --git a/misc/Makefile b/misc/Makefile
index a5cee879bc..a647c06d2f 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -29,7 +29,7 @@ headers	:= sys/uio.h bits/uio.h sys/ioctl.h bits/ioctls.h bits/ioctl-types.h \
 	   sys/mman.h sys/param.h fstab.h mntent.h search.h err.h error.h \
 	   sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \
 	   sys/select.h ustat.h sys/ustat.h bits/ustat.h sys/sysinfo.h \
-	   regexp.h bits/select.h bits/mman.h
+	   regexp.h bits/select.h bits/mman.h sys/xattr.h
 
 routines := brk sbrk sstk ioctl \
 	    readv writev \
@@ -58,7 +58,10 @@ routines := brk sbrk sstk ioctl \
 	    hsearch hsearch_r tsearch lsearch \
 	    err error ustat \
 	    getsysstats dirname regexp \
-	    getloadavg getclktck
+	    getloadavg getclktck \
+	    fgetxattr flistxattr fremovexattr fsetxattr getxattr \
+	    listxattr lgetxattr llistxattr lremovexattr lsetxattr \
+	    removexattr setxattr
 
 distribute := device-nrs.h
 
diff --git a/misc/Versions b/misc/Versions
index 4a37d601ba..477b1b076c 100644
--- a/misc/Versions
+++ b/misc/Versions
@@ -108,6 +108,23 @@ libc {
     # p*
     posix_madvise;
   }
+  GLIBC_2.3 {
+    # f*
+    fgetxattr; flistxattr; fremovexattr; fsetxattr;
+
+    # g*
+    getxattr;
+
+    # l*
+    listxattr;
+    lgetxattr; llistxattr; lremovexattr; lsetxattr;
+
+    # r*
+    removexattr;
+
+    # s*
+    setxattr;
+  }
   GLIBC_PRIVATE {
     # functions which have an additional interface since they are
     # cancelable.
diff --git a/misc/sys/xattr.h b/misc/sys/xattr.h
new file mode 100644
index 0000000000..0e98185940
--- /dev/null
+++ b/misc/sys/xattr.h
@@ -0,0 +1,106 @@
+/* Copyright (C) 2002 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 _SYS_XATTR_H
+#define _SYS_XATTR_H	1
+
+#include <features.h>
+
+
+#define __need_size_t
+#include <stddef.h>
+
+__BEGIN_DECLS
+
+/* The following constants should be used for the fifth parameter of
+   `*setxattr'.  */
+enum
+{
+  XATTR_CREATE = 1,	/* set value, fail if attr already exists.  */
+#define XATTR_CREATE	XATTR_CREATE
+  XATTR_REPLACE = 2	/* set value, fail if attr does not exist.  */
+#define XATTR_REPLACE	XATTR_REPLACE
+};
+
+/* Set the attribute NAME of the file pointed to by PATH to VALUE (which
+   is SIZE bytes long).  Return 0 on success, -1 for errors.  */
+extern int setxattr (const char *__path, const char *__name,
+		     const void *__value, size_t __size, int __flags)
+	__THROW;
+
+/* Set the attribute NAME of the file pointed to by PATH to VALUE (which is
+   SIZE bytes long), not following symlinks for the last pathname component.
+   Return 0 on success, -1 for errors.  */
+extern int lsetxattr (const char *__path, const char *__name,
+		      const void *__value, size_t __size, int __flags)
+	__THROW;
+
+/* Set the attribute NAME of the file descriptor FD to VALUE (which is SIZE
+   bytes long).  Return 0 on success, -1 for errors.  */
+extern int fsetxattr (int __fd, const char *__name, const void *__value,
+		      size_t __size, int __flags) __THROW;
+
+/* Get the attribute NAME of the file pointed to by PATH to VALUE (which is
+   SIZE bytes long).  Return 0 on success, -1 for errors.  */
+extern ssize_t getxattr (const char *__path, const char *__name,
+			 void *__value, size_t __size) __THROW;
+
+/* Get the attribute NAME of the file pointed to by PATH to VALUE (which is
+   SIZE bytes long), not following symlinks for the last pathname component.
+   Return 0 on success, -1 for errors.  */
+extern ssize_t lgetxattr (const char *__path, const char *__name,
+			  void *__value, size_t __size) __THROW;
+
+/* Get the attribute NAME of the file descriptor FD to VALUE (which is SIZE
+   bytes long).  Return 0 on success, -1 for errors.  */
+extern ssize_t fgetxattr (int __fd, const char *__name, void *__value,
+			  size_t __size) __THROW;
+
+/* List attributes of the file pointed to by PATH into the user-supplied
+   buffer LIST (which is SIZE bytes big).  Return 0 on success, -1 for
+   errors.  */
+extern ssize_t listxattr (const char *__path, char *__list, size_t __size)
+	__THROW;
+
+/* List attributes of the file pointed to by PATH into the user-supplied
+   buffer LIST (which is SIZE bytes big), not following symlinks for the
+   last pathname component.  Return 0 on success, -1 for errors.  */
+extern ssize_t llistxattr (const char *__path, char *__list, size_t __size)
+	__THROW;
+
+/* List attributes of the file descriptor FD into the user-supplied buffer
+   LIST (which is SIZE bytes big).  Return 0 on success, -1 for errors.  */
+extern ssize_t flistxattr (int __fd, char *__list, size_t __size)
+	__THROW;
+
+/* Remove the attribute NAME from the file pointed to by PATH.  Return 0
+   on success, -1 for errors.  */
+extern int removexattr (const char *__path, const char *__name) __THROW;
+
+/* Remove the attribute NAME from the file pointed to by PATH, not
+   following symlinks for the last pathname component.  Return 0 on
+   success, -1 for errors.  */
+extern int lremovexattr (const char *__path, const char *__name) __THROW;
+
+/* Remove the attribute NAME from the file descriptor FD.  Return 0 on
+   success, -1 for errors.  */
+extern int fremovexattr (int __fd, const char *__name) __THROW;
+
+__END_DECLS
+
+#endif	/* sys/xattr.h  */
diff --git a/sysdeps/generic/fgetxattr.c b/sysdeps/generic/fgetxattr.c
new file mode 100644
index 0000000000..610ed32d1f
--- /dev/null
+++ b/sysdeps/generic/fgetxattr.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2002 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.  */
+
+#include <errno.h>
+#include <sys/xattr.h>
+
+ssize_t
+fgetxattr (int __fd, const char *__name,
+	   void *__value, size_t __size)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (fgetxattr)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/flistxattr.c b/sysdeps/generic/flistxattr.c
new file mode 100644
index 0000000000..fc2863d31c
--- /dev/null
+++ b/sysdeps/generic/flistxattr.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2002 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.  */
+
+#include <errno.h>
+#include <sys/xattr.h>
+
+ssize_t
+flistxattr (int __fd, char *__list, size_t __size)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (flistxattr)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/fremovexattr.c b/sysdeps/generic/fremovexattr.c
new file mode 100644
index 0000000000..9719d42d40
--- /dev/null
+++ b/sysdeps/generic/fremovexattr.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2002 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.  */
+
+#include <errno.h>
+#include <sys/xattr.h>
+
+int
+fremovexattr (int __fd, const char *__name)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (fremovexattr)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/fsetxattr.c b/sysdeps/generic/fsetxattr.c
new file mode 100644
index 0000000000..8a52e72529
--- /dev/null
+++ b/sysdeps/generic/fsetxattr.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2002 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.  */
+
+#include <errno.h>
+#include <sys/xattr.h>
+
+int
+fsetxattr (int __fd, const char *__name, const void *__value,
+	   size_t __size, int __flags)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (fsetxattr)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/getxattr.c b/sysdeps/generic/getxattr.c
new file mode 100644
index 0000000000..ebf7bf2b4d
--- /dev/null
+++ b/sysdeps/generic/getxattr.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2002 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.  */
+
+#include <errno.h>
+#include <sys/xattr.h>
+
+ssize_t
+getxattr (const char *__path, const char *__name,
+	  void *__value, size_t __size)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (getxattr)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/lgetxattr.c b/sysdeps/generic/lgetxattr.c
new file mode 100644
index 0000000000..6adf1fdf04
--- /dev/null
+++ b/sysdeps/generic/lgetxattr.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2002 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.  */
+
+#include <errno.h>
+#include <sys/xattr.h>
+
+ssize_t
+lgetxattr (const char *__path, const char *__name,
+	   void *__value, size_t __size)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (lgetxattr)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/listxattr.c b/sysdeps/generic/listxattr.c
new file mode 100644
index 0000000000..490a092b75
--- /dev/null
+++ b/sysdeps/generic/listxattr.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2002 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.  */
+
+#include <errno.h>
+#include <sys/xattr.h>
+
+ssize_t
+listxattr (const char *__path, char *__list, size_t __size)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (listxattr)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/llistxattr.c b/sysdeps/generic/llistxattr.c
new file mode 100644
index 0000000000..1a7e1e4cfd
--- /dev/null
+++ b/sysdeps/generic/llistxattr.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2002 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.  */
+
+#include <errno.h>
+#include <sys/xattr.h>
+
+ssize_t
+llistxattr (const char *__path, char *__list, size_t __size)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (llistxattr)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/lremovexattr.c b/sysdeps/generic/lremovexattr.c
new file mode 100644
index 0000000000..fad64e5150
--- /dev/null
+++ b/sysdeps/generic/lremovexattr.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2002 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.  */
+
+#include <errno.h>
+#include <sys/xattr.h>
+
+int
+lremovexattr (const char *__path, const char *__name)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (lremovexattr)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/lsetxattr.c b/sysdeps/generic/lsetxattr.c
new file mode 100644
index 0000000000..6f8cdde1da
--- /dev/null
+++ b/sysdeps/generic/lsetxattr.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2002 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.  */
+
+#include <errno.h>
+#include <sys/xattr.h>
+
+int
+lsetxattr (const char *__path, const char *__name,
+	   const void *__value, size_t __size, int __flags)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (lsetxattr)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/removexattr.c b/sysdeps/generic/removexattr.c
new file mode 100644
index 0000000000..8379ed10c8
--- /dev/null
+++ b/sysdeps/generic/removexattr.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2002 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.  */
+
+#include <errno.h>
+#include <sys/xattr.h>
+
+int
+removexattr (const char *__path, const char *__name)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (removexattr)
+#include <stub-tag.h>
diff --git a/sysdeps/generic/setxattr.c b/sysdeps/generic/setxattr.c
new file mode 100644
index 0000000000..5b8743a7ce
--- /dev/null
+++ b/sysdeps/generic/setxattr.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2002 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.  */
+
+#include <errno.h>
+#include <sys/xattr.h>
+
+int
+setxattr (const char *__path, const char *__name,
+	  const void *__value, size_t __size, int __flags)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (setxattr)
+#include <stub-tag.h>
diff --git a/sysdeps/ieee754/flt-32/e_jnf.c b/sysdeps/ieee754/flt-32/e_jnf.c
index 9e5279c30a..34c4d95a32 100644
--- a/sysdeps/ieee754/flt-32/e_jnf.c
+++ b/sysdeps/ieee754/flt-32/e_jnf.c
@@ -25,7 +25,6 @@ static const float
 #else
 static float
 #endif
-invsqrtpi=  5.6418961287e-01, /* 0x3f106ebb */
 two   =  2.0000000000e+00, /* 0x40000000 */
 one   =  1.0000000000e+00; /* 0x3F800000 */
 
@@ -62,7 +61,7 @@ static float zero  =  0.0000000000e+00;
 	if(n==1) return(__ieee754_j1f(x));
 	sgn = (n&1)&(hx>>31);	/* even n -- 0, odd n -- sign(x) */
 	x = fabsf(x);
-	if(ix==0||ix>=0x7f800000) 	/* if x is 0 or inf */
+	if(ix==0||ix>=0x7f800000)	/* if x is 0 or inf */
 	    b = zero;
 	else if((float)n<=x) {
 		/* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
@@ -90,11 +89,11 @@ static float zero  =  0.0000000000e+00;
 		}
 	    } else {
 		/* use backward recurrence */
-		/* 			x      x^2      x^2
+		/*			x      x^2      x^2
 		 *  J(n,x)/J(n-1,x) =  ----   ------   ------   .....
 		 *			2n  - 2(n+1) - 2(n+2)
 		 *
-		 * 			1      1        1
+		 *			1      1        1
 		 *  (for large x)   =  ----  ------   ------   .....
 		 *			2n   2(n+1)   2(n+2)
 		 *			-- - ------ - ------ -
@@ -107,7 +106,7 @@ static float zero  =  0.0000000000e+00;
 		 *		       1
 		 *	   w - -----------------
 		 *			  1
-		 * 	        w+h - ---------
+		 *	        w+h - ---------
 		 *		       w+2h - ...
 		 *
 		 * To determine how many terms needed, let
@@ -144,15 +143,15 @@ static float zero  =  0.0000000000e+00;
 		v = two/x;
 		tmp = tmp*__ieee754_logf(fabsf(v*tmp));
 		if(tmp<(float)8.8721679688e+01) {
-	    	    for(i=n-1,di=(float)(i+i);i>0;i--){
+		    for(i=n-1,di=(float)(i+i);i>0;i--){
 		        temp = b;
 			b *= di;
 			b  = b/x - a;
 		        a = temp;
 			di -= two;
-	     	    }
+		    }
 		} else {
-	    	    for(i=n-1,di=(float)(i+i);i>0;i--){
+		    for(i=n-1,di=(float)(i+i);i>0;i--){
 		        temp = b;
 			b *= di;
 			b  = b/x - a;
@@ -164,9 +163,9 @@ static float zero  =  0.0000000000e+00;
 			    t /= b;
 			    b  = one;
 			}
-	     	    }
+		    }
 		}
-	    	b = (t*__ieee754_j0f(x)/b);
+		b = (t*__ieee754_j0f(x)/b);
 	    }
 	}
 	if(sgn==1) return -b; else return b;
diff --git a/sysdeps/ieee754/ldbl-96/e_j0l.c b/sysdeps/ieee754/ldbl-96/e_j0l.c
index 79e13be662..e8966f6120 100644
--- a/sysdeps/ieee754/ldbl-96/e_j0l.c
+++ b/sysdeps/ieee754/ldbl-96/e_j0l.c
@@ -20,16 +20,16 @@
  *	   for x in (0,2)
  *		j0(x) = 1 - z/4 + z^2*R0/S0,  where z = x*x;
  *	   for x in (2,inf)
- * 		j0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)-q0(x)*sin(x0))
- * 	   where x0 = x-pi/4. It is better to compute sin(x0),cos(x0)
+ *		j0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)-q0(x)*sin(x0))
+ *	   where x0 = x-pi/4. It is better to compute sin(x0),cos(x0)
  *	   as follow:
  *		cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4)
  *			= 1/sqrt(2) * (cos(x) + sin(x))
  *		sin(x0) = sin(x)cos(pi/4)-cos(x)sin(pi/4)
  *			= 1/sqrt(2) * (sin(x) - cos(x))
- * 	   (To avoid cancellation, use
+ *	   (To avoid cancellation, use
  *		sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
- * 	    to compute the worse one.)
+ *	    to compute the worse one.)
  *
  *	3 Special cases
  *		j0(nan)= nan
@@ -47,8 +47,8 @@
  *	   Note: For tiny x, U/V = u0 and j0(x)~1, hence
  *		y0(tiny) = u0 + (2/pi)*ln(tiny), (choose tiny<2**-27)
  *	2. For x>=2.
- * 		y0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)+q0(x)*sin(x0))
- * 	   where x0 = x-pi/4. It is better to compute sin(x0),cos(x0)
+ *		y0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)+q0(x)*sin(x0))
+ *	   where x0 = x-pi/4. It is better to compute sin(x0),cos(x0)
  *	   by the method mentioned above.
  *	3. Special cases: y0(0)=-inf, y0(x<0)=NaN, y0(inf)=0.
  */
@@ -71,8 +71,6 @@ static long double
   one = 1.0L,
   invsqrtpi = 5.6418958354775628694807945156077258584405e-1L,
   tpi = 6.3661977236758134307553505349005744813784e-1L,
-  j0z1 = 2.40482555769577276862163187932650662155139L,
-  j0z2 = 5.520078110286310649596604112813027425221865L,
 
   /* J0(x) = 1 - x^2 / 4 + x^4 R0(x^2) / S0(x^2)
      0 <= x <= 2
@@ -275,7 +273,7 @@ __ieee754_y0l (x)
 /* The asymptotic expansions of pzero is
  *	1 - 9/128 s^2 + 11025/98304 s^4 - ...,	where s = 1/x.
  * For x >= 2, We approximate pzero by
- * 	pzero(x) = 1 + s^2 R(s^2) / S(s^2)
+ *	pzero(x) = 1 + s^2 R(s^2) / S(s^2)
  */
 #ifdef __STDC__
 static const long double pR8[7] = {
@@ -450,7 +448,7 @@ pzero (x)
 /* For x >= 8, the asymptotic expansions of qzero is
  *	-1/8 s + 75/1024 s^3 - ..., where s = 1/x.
  * We approximate qzero by
- * 	qzero(x) = s*(-.125 + R(s^2) / S(s^2))
+ *	qzero(x) = s*(-.125 + R(s^2) / S(s^2))
  */
 #ifdef __STDC__
 static const long double qR8[7] = {
diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
index 688253212f..c18816ca6f 100644
--- a/sysdeps/unix/sysv/linux/alpha/Versions
+++ b/sysdeps/unix/sysv/linux/alpha/Versions
@@ -57,21 +57,4 @@ libc {
     # w*
     wordexp;
   }
-  GLIBC_2.3 {
-    # f*
-    fgetxattr; flistxattr; fremovexattr; fsetxattr;
-
-    # g*
-    getxattr;
-
-    # l*
-    listxattr;
-    lgetxattr; llistxattr; lremovexattr; lsetxattr;
-
-    # r*
-    removexattr;
-
-    # s*
-    setxattr;
-  }
 }
diff --git a/sysdeps/unix/sysv/linux/arm/Versions b/sysdeps/unix/sysv/linux/arm/Versions
index df5c9ec26a..32cb185505 100644
--- a/sysdeps/unix/sysv/linux/arm/Versions
+++ b/sysdeps/unix/sysv/linux/arm/Versions
@@ -31,21 +31,4 @@ libc {
     # v*
     versionsort64;
   }
-  GLIBC_2.3 {
-    # f*
-    fgetxattr; flistxattr; fremovexattr; fsetxattr;
-
-    # g*
-    getxattr;
-
-    # l*
-    listxattr;
-    lgetxattr; llistxattr; lremovexattr; lsetxattr;
-
-    # r*
-    removexattr;
-
-    # s*
-    setxattr;
-  }
 }
diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
index 9b5e08890e..13d710a078 100644
--- a/sysdeps/unix/sysv/linux/ia64/Versions
+++ b/sysdeps/unix/sysv/linux/ia64/Versions
@@ -22,21 +22,4 @@ libc {
   GLIBC_2.2.6 {
     getunwind;
   }
-  GLIBC_2.3 {
-    # f*
-    fgetxattr; flistxattr; fremovexattr; fsetxattr;
-
-    # g*
-    getxattr;
-
-    # l*
-    listxattr;
-    lgetxattr; llistxattr; lremovexattr; lsetxattr;
-
-    # r*
-    removexattr;
-
-    # s*
-    setxattr;
-  }
 }
diff --git a/sysdeps/unix/sysv/linux/m68k/Versions b/sysdeps/unix/sysv/linux/m68k/Versions
index 62154b9508..0799bf310e 100644
--- a/sysdeps/unix/sysv/linux/m68k/Versions
+++ b/sysdeps/unix/sysv/linux/m68k/Versions
@@ -29,21 +29,4 @@ libc {
     # v*
     versionsort64;
   }
-  GLIBC_2.3 {
-    # f*
-    fgetxattr; flistxattr; fremovexattr; fsetxattr;
-
-    # g*
-    getxattr;
-
-    # l*
-    listxattr;
-    lgetxattr; llistxattr; lremovexattr; lsetxattr;
-
-    # r*
-    removexattr;
-
-    # s*
-    setxattr;
-  }
 }
diff --git a/sysdeps/unix/sysv/linux/mips/Versions b/sysdeps/unix/sysv/linux/mips/Versions
index 0c5d798b0b..f71d9b5d88 100644
--- a/sysdeps/unix/sysv/linux/mips/Versions
+++ b/sysdeps/unix/sysv/linux/mips/Versions
@@ -17,21 +17,4 @@ libc {
     # _*
     _test_and_set;
   }
-  #GLIBC_2.3 {
-  #  # f*
-  #  fgetxattr; flistxattr; fremovexattr; fsetxattr;
-  #
-  #  # g*
-  #  getxattr;
-  #
-  #  # l*
-  #  listxattr;
-  #  lgetxattr; llistxattr; lremovexattr; lsetxattr;
-  #
-  #  # r*
-  #  removexattr;
-  #
-  #  # s*
-  #  setxattr;
-  #}
 }
diff --git a/sysdeps/unix/sysv/linux/powerpc/Versions b/sysdeps/unix/sysv/linux/powerpc/Versions
index 18d05121d8..d0bf4a89c0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/Versions
@@ -20,21 +20,4 @@ libc {
     # s*
     scandir64;
   }
-  GLIBC_2.3 {
-    # f*
-    fgetxattr; flistxattr; fremovexattr; fsetxattr;
-
-    # g*
-    getxattr;
-
-    # l*
-    listxattr;
-    lgetxattr; llistxattr; lremovexattr; lsetxattr;
-
-    # r*
-    removexattr;
-
-    # s*
-    setxattr;
-  }
 }
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/Versions b/sysdeps/unix/sysv/linux/s390/s390-32/Versions
index 445923db23..3c45a30778 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/Versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/Versions
@@ -23,22 +23,5 @@ libc {
     # v*
     versionsort64;
   }
-  GLIBC_2.3 {
-    # f*
-    fgetxattr; flistxattr; fremovexattr; fsetxattr;
-
-    # g*
-    getxattr;
-
-    # l*
-    listxattr;
-    lgetxattr; llistxattr; lremovexattr; lsetxattr;
-
-    # r*
-    removexattr;
-
-    # s*
-    setxattr;
-  }
 }
 
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/Versions b/sysdeps/unix/sysv/linux/sparc/sparc32/Versions
index bdb32e9786..4529e7fe6f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/Versions
@@ -17,21 +17,4 @@ libc {
     # s*
     scandir64;
   }
-  GLIBC_2.3 {
-    # f*
-    fgetxattr; flistxattr; fremovexattr; fsetxattr;
-
-    # g*
-    getxattr;
-
-    # l*
-    listxattr;
-    lgetxattr; llistxattr; lremovexattr; lsetxattr;
-
-    # r*
-    removexattr;
-
-    # s*
-    setxattr;
-  }
 }
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
index 13120a795c..cfcc15b119 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
@@ -8,21 +8,4 @@ libc {
     # w*
     wordexp;
   }
-  GLIBC_2.3 {
-    # f*
-    fgetxattr; flistxattr; fremovexattr; fsetxattr;
-
-    # g*
-    getxattr;
-
-    # l*
-    listxattr;
-    lgetxattr; llistxattr; lremovexattr; lsetxattr;
-
-    # r*
-    removexattr;
-
-    # s*
-    setxattr;
-  }
 }
diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions
index dfda8a5a01..3735871a24 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Versions
+++ b/sysdeps/unix/sysv/linux/x86_64/Versions
@@ -9,21 +9,4 @@ libc {
   GLIBC_PRIVATE {
     __modify_ldt;
   }
-  GLIBC_2.3 {
-    # f*
-    fgetxattr; flistxattr; fremovexattr; fsetxattr;
-
-    # g*
-    getxattr;
-
-    # l*
-    listxattr;
-    lgetxattr; llistxattr; lremovexattr; lsetxattr;
-
-    # r*
-    removexattr;
-
-    # s*
-    setxattr;
-  }
 }