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.

	* sysdeps/powerpc/elf/libc-start.c
	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
This commit is contained in:
Andreas Jaeger 2002-08-23 09:29:27 +00:00
parent a7f5255ad2
commit c0ad824e40
29 changed files with 554 additions and 194 deletions

View file

@ -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.

View file

@ -19,6 +19,7 @@
#include <locale.h>
#include <stddef.h>
#include <stdlib.h>
#include <stdbool.h>
#include <errno.h>
#include <assert.h>

View file

@ -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

View file

@ -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.

106
misc/sys/xattr.h Normal file
View file

@ -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 */

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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;

View file

@ -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] = {

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
#}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}