diff options
29 files changed, 554 insertions, 194 deletions
@@ -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 < |
