| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As discussed in
https://sourceware.org/ml/libc-alpha/2015-10/msg00403.html
the setting of _STRING_ARCH_unaligned currently controls the external
GLIBC ABI as well as selecting the use of unaligned accesses withing
GLIBC.
Since _STRING_ARCH_unaligned was recently changed for AArch64, this
would potentially break the ABI in GLIBC 2.23, so split the uses and add
_STRING_INLINE_unaligned to select the string ABI. This setting must be
fixed for each target, while _STRING_ARCH_unaligned may be changed from
release to release. _STRING_ARCH_unaligned is used unconditionally in
glibc. But <bits/string.h>, which defines _STRING_ARCH_unaligned, isn't
included with -Os. Since _STRING_ARCH_unaligned is internal to glibc and
may change between glibc releases, it should be made private to glibc.
_STRING_ARCH_unaligned should defined in the new string_private.h heade
file which is included unconditionally from internal <string.h> for glibc
build.
[BZ #19462]
* bits/string.h (_STRING_ARCH_unaligned): Renamed to ...
(_STRING_INLINE_unaligned): This.
* include/string.h: Include <string_private.h>.
* string/bits/string2.h: Replace _STRING_ARCH_unaligned with
_STRING_INLINE_unaligned.
* sysdeps/aarch64/bits/string.h (_STRING_ARCH_unaligned): Removed.
(_STRING_INLINE_unaligned): New.
* sysdeps/aarch64/string_private.h: New file.
* sysdeps/generic/string_private.h: Likewise.
* sysdeps/m68k/m680x0/m68020/string_private.h: Likewise.
* sysdeps/s390/string_private.h: Likewise.
* sysdeps/x86/string_private.h: Likewise.
* sysdeps/m68k/m680x0/m68020/bits/string.h
(_STRING_ARCH_unaligned): Renamed to ...
(_STRING_INLINE_unaligned): This.
* sysdeps/s390/bits/string.h (_STRING_ARCH_unaligned): Renamed
to ...
(_STRING_INLINE_unaligned): This.
* sysdeps/sparc/bits/string.h (_STRING_ARCH_unaligned): Renamed
to ...
(_STRING_INLINE_unaligned): This.
* sysdeps/x86/bits/string.h (_STRING_ARCH_unaligned): Renamed
to ...
(_STRING_INLINE_unaligned): This.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Building string/tst-endian.c with gcc 6 produces an build warning/error on s390 (big endian machine):
gcc tst-endian.c -c -std=gnu11 -fgnu89-inline -O2 or -O3 ...
tst-endian.c: In function ‘do_test’:
tst-endian.c:16:30: error: self-comparison always evaluates to false [-Werror=tautological-compare]
if (htobe16 (be16toh (i)) != i)
^~
...
See definitions of htobexx, bexxtoh in string/endian.h:
...
This patch silences these warnings with DIAG_* macros if build with gcc 6
and newer.
The same warnings occur on little endian machines with the
"htoleXX (leXXtoh (i)) != i" if-statements.
ChangeLog:
* string/tst-endian.c: Include <libc-internal.h>.
(do_test): Ignore tautological-compare warnings around
"htobeXX (beXXtoh (i)) != i" and
"htoleXX (leXXtoh (i)) != i" if-statements.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch converts various miscellaneous functions definitions in
glibc, found with grep and not covered by my previous scripted
conversions, from old-style K&R to prototype-style. These changes
were made manually. This is not necessarily exhaustive as formatting
variants may have prevented my grep from finding some such
definitions.
Regarding the changes to files from GMP, they may originally have been
omitted when removing __STDC__ conditionals because of the files
coming from another package, but (a) GMP no longer has __STDC__
conditionals there anyway and (b) we don't try to keep these files
verbatim in sync with GMP (and there are licensing differences), so
making the change to them in glibc seems reasonable.
Tested for x86_64 and x86 (testsuite - this patch affects files
containing assertions).
* debug/fortify_fail.c (__fortify_fail): Convert to
prototype-style function definition. Use internal_function.
* libio/genops.c (save_for_backup): Convert to prototype-style
function definition.
* libio/wgenops.c (save_for_wbackup): Likewise.
* login/grantpt.c (grantpt): Likewise.
* login/ptsname.c (ptsname): Likewise.
(__ptsname_r): Likewise.
* login/unlockpt.c (unlockpt): Likewise.
* mach/msgserver.c (__mach_msg_server): Likewise.
* misc/efgcvt.c (__APPEND (FUNC_PREFIX, fcvt)): Likewise.
(__APPEND (FUNC_PREFIX, ecvt)): Likewise.
(__APPEND (FUNC_PREFIX, gcvt)): Likewise.
* misc/efgcvt_r.c (__APPEND (FUNC_PREFIX, fcvt_r)): Likewise.
(__APPEND (FUNC_PREFIX, ecvt_r)): Likewise.
* nptl/cleanup_compat.c (_pthread_cleanup_push): Likewise.
* nptl/cleanup_defer_compat.c (_pthread_cleanup_push_defer):
Likewise.
* nptl/libc_pthread_init.c (__libc_pthread_init): Likewise. Use
internal_function.
* nptl/pthread_atfork.c (__pthread_atfork): Convert to
prototype-style function definition.
* nptl/pthread_create.c (__pthread_create_2_1): Likewise.
[SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)]
(__pthread_create_2_0): Likewise.
* nptl/pthread_key_create.c (__pthread_key_create): Likewise.
* nptl/register-atfork.c (__register_atfork): Likewise.
* posix/glob.c (glob): Likewise.
* posix/regcomp.c (re_comp): Likewise.
* posix/regexec.c (re_exec): Likewise.
* stdlib/add_n.c [__STDC__]: Make code unconditional.
[!__STDC__]: Remove conditional code.
* stdlib/cmp.c [__STDC__]: Make code unconditional.
[!__STDC__]: Remove conditional code.
* stdlib/divmod_1.c [__STDC__]: Make code unconditional.
[!__STDC__]: Remove conditional code.
* stdlib/divrem.c [__STDC__]: Make code unconditional.
[!__STDC__]: Remove conditional code.
* stdlib/lshift.c [__STDC__]: Make code unconditional.
[!__STDC__]: Remove conditional code.
* stdlib/mod_1.c [__STDC__]: Make code unconditional.
[!__STDC__]: Remove conditional code.
* stdlib/mul.c [__STDC__]: Make code unconditional.
[!__STDC__]: Remove conditional code.
* stdlib/mul_n.c [__STDC__]: Make code unconditional.
[!__STDC__]: Remove conditional code.
* stdlib/rshift.c [__STDC__]: Make code unconditional.
[!__STDC__]: Remove conditional code.
* stdlib/strtod.c (INTERNAL (STRTOF)): Convert to prototype-style
function definition.
(STRTOF): Likewise.
* stdlib/strtod_l.c (__STRTOF): Likewise.
* stdlib/strtol.c (INTERNAL (strtol)): Likewise.
* stdlib/strtol_l.c (INTERNAL (__strtol_l)): Likewise.
(__strtol_l): Likewise.
* stdlib/sub_n.c [__STDC__]: Make code unconditional.
[!__STDC__]: Remove conditional code.
* string/memrchr.c (MEMRCHR): Convert to prototype-style function
definition.
* string/strcasecmp.c (LOCALE_PARAM_DECL): Remove macro.
[USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument
type.
(__strcasecmp): Convert to prototype-style function definition.
* string/strncase.c (LOCALE_PARAM_DECL): Remove macro.
[USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument
type.
(__strncasecmp): Convert to prototype-style function definition.
* sunrpc/pm_getport.c (__libc_rpc_getport): Likewise.
* sunrpc/xdr.c (xdr_union): Likewise.
* sunrpc/xdr_array.c (xdr_array): Likewise.
* sunrpc/xdr_ref.c (xdr_reference): Likewise.
* sysdeps/m68k/m680x0/fpu/s_atan.c (__CONCATX(__,FUNC)): Likewise.
* sysdeps/m68k/m680x0/fpu/s_isinf.c (__CONCATX(__,FUNC)):
Likewise.
* sysdeps/m68k/m680x0/fpu/s_scalbn.c (__CONCATX(__scalbn,suffix):
Likewise.
* sysdeps/m68k/m680x0/fpu/s_sincos.c (CONCATX(__,FUNC)): Likewise.
* sysdeps/unix/sysv/linux/i386/scandir64.c (__old_scandir64):
Likewise.
* time/strftime_l.c (LOCALE_PARAM_DECL): Remove macro.
(LOCALE_PARAM_PROTO): Likewise.
[_LIBC && USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include
argument type.
(ut_argument_spec): Remove macro.
(ut_argument_spec_iso): Rename to ut_argument_spec.
(memcpy_lowcase): Use LOCALE_PARAM in declaration. Convert to
prototype-style function definition.
(memcpy_uppcase): Likewise.
(__strftime_internal): Likewise.
(my_strftime): Likewise.
* time/strptime_l.c (LOCALE_PARAM_PROTO): Remove macro.
(LOCALE_PARAM_DECL): Likewise.
[_LIBC] (LOCALE_PARAM): Include argument type.
(__strptime_internal): Convert to prototype-style function
definition.
(strptime): Likewise.
* wcsmbs/wcscasecmp.c (LOCALE_PARAM_DECL): Remove macro.
[USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument
type.
(__wcscasecmp): Convert to prototype-style function definition.
* wcsmbs/wcsncase.c (LOCALE_PARAM_DECL): Remove macro.
[USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument
type.
(__wcsncasecmp): Convert to prototype-style function definition.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in one K&R parameter declaration).
This automatically-generated patch converts 29 function definitions in
glibc (including one in an example in the manual) from old-style K&R
to prototype-style. Following my other recent such patches, this one
deals with the case of function definitions where one K&R parameter
declaration declares multiple parameters, as in:
void
foo (a, b)
int a, *b;
{
}
Tested for x86_64 and x86 (testsuite, and that installed stripped
shared libraries are unchanged by the patch).
* crypt/crypt.c (_ufc_doit_r): Convert to prototype-style function
definition.
(_ufc_doit_r): Likewise.
* crypt/crypt_util.c (_ufc_copymem): Likewise.
(_ufc_output_conversion_r): Likewise.
* inet/inet_mkadr.c (__inet_makeaddr): Likewise.
* inet/rcmd.c (rcmd_af): Likewise.
(rcmd): Likewise.
(ruserok_af): Likewise.
(ruserok): Likewise.
(ruserok2_sa): Likewise.
(ruserok_sa): Likewise.
(iruserok_af): Likewise.
(iruserok): Likewise.
(__ivaliduser): Likewise.
(__validuser2_sa): Likewise.
* inet/rexec.c (rexec_af): Likewise.
(rexec): Likewise.
* inet/ruserpass.c (ruserpass): Likewise.
* locale/programs/xmalloc.c (xcalloc): Likewise.
* manual/examples/timeval_subtract.c (timeval_subtract): Likewise.
* math/w_drem.c (__drem): Likewise.
* math/w_dremf.c (__dremf): Likewise.
* math/w_dreml.c (__dreml): Likewise.
* misc/daemon.c (daemon): Likewise.
* resolv/res_debug.c (p_fqnname): Likewise.
* stdlib/div.c (div): Likewise.
* string/memcmp.c (memcmp_bytes): Likewise.
* sunrpc/pmap_rmt.c (pmap_rmtcall): Likewise.
* sunrpc/svc_udp.c (svcudp_bufcreate): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This automatically-generated patch converts 703 function definitions
in glibc from old-style K&R to prototype-style.
This conversion is deliberately simplistic, excluding any tricky cases
as even a patch covering only simple cases is still very large.
Currently excluded are: sysdeps files (to improve test coverage for
the initial patch); files containing assertions (to avoid line number
changes so that generated libraries can be compared); any cases where
the generated function declaration would involve lines over 79
characters and so need to be wrapped; any cases with array parameters
or other cases where parameter declarators don't end with the
parameter name; any other cases that my script didn't parse.
I didn't try to make the ChangeLog generation indicate when function
definitions are conditional; it just lists the functions changed
without regard to that.
Tested for x86_64 and x86 (testsuite, and that installed stripped
shared libraries are unchanged by the patch).
* crypt/cert.c (good_bye): Convert to prototype-style function
definition.
(get8): Likewise.
(put8): Likewise.
* crypt/crypt-entry.c (crypt): Likewise.
(__fcrypt): Likewise.
* crypt/crypt_util.c (_ufc_prbits): Likewise.
(_ufc_set_bits): Likewise.
(_ufc_clearmem): Likewise.
(__init_des_r): Likewise.
(shuffle_sb): Likewise.
(shuffle_sb): Likewise.
(_ufc_setup_salt_r): Likewise.
(_ufc_mk_keytab_r): Likewise.
(_ufc_dofinalperm_r): Likewise.
(encrypt): Likewise.
(__setkey_r): Likewise.
(setkey): Likewise.
* crypt/md5.c (md5_init_ctx): Likewise.
(md5_read_ctx): Likewise.
(md5_finish_ctx): Likewise.
(md5_stream): Likewise.
(md5_buffer): Likewise.
(md5_process_bytes): Likewise.
* crypt/sha256.c (__sha256_init_ctx): Likewise.
(__sha256_finish_ctx): Likewise.
(__sha256_process_bytes): Likewise.
* crypt/sha512.c (__sha512_init_ctx): Likewise.
(__sha512_finish_ctx): Likewise.
(__sha512_process_bytes): Likewise.
* ctype/isctype.c (__isctype): Likewise.
* debug/backtrace.c (__backtrace): Likewise.
* debug/backtracesymsfd.c (__backtrace_symbols_fd): Likewise.
* debug/fgets_chk.c (__fgets_chk): Likewise.
* debug/fgets_u_chk.c (__fgets_unlocked_chk): Likewise.
* debug/memcpy_chk.c (__memcpy_chk): Likewise.
* debug/memmove_chk.c (MEMMOVE_CHK): Likewise.
* debug/mempcpy_chk.c (__mempcpy_chk): Likewise.
* debug/memset_chk.c (__memset_chk): Likewise.
* debug/strcat_chk.c (__strcat_chk): Likewise.
* debug/strncat_chk.c (__strncat_chk): Likewise.
* debug/strncpy_chk.c (__strncpy_chk): Likewise.
* debug/vsprintf_chk.c (_IO_str_chk_overflow): Likewise.
* dirent/dirfd.c (dirfd): Likewise.
* dirent/getdents.c (__getdirentries): Likewise.
* dirent/getdents64.c (getdirentries64): Likewise.
* dirent/rewinddir.c (__rewinddir): Likewise.
* dirent/seekdir.c (seekdir): Likewise.
* dirent/telldir.c (telldir): Likewise.
* elf/sln.c (makesymlinks): Likewise.
(makesymlink): Likewise.
* gmon/gmon.c (__moncontrol): Likewise.
(__monstartup): Likewise.
(write_hist): Likewise.
(write_call_graph): Likewise.
(write_bb_counts): Likewise.
* grp/setgroups.c (setgroups): Likewise.
* inet/inet_lnaof.c (inet_lnaof): Likewise.
* inet/inet_net.c (inet_network): Likewise.
* inet/inet_netof.c (inet_netof): Likewise.
* inet/rcmd.c (rresvport_af): Likewise.
(rresvport): Likewise.
* io/access.c (__access): Likewise.
* io/chdir.c (__chdir): Likewise.
* io/chmod.c (__chmod): Likewise.
* io/chown.c (__chown): Likewise.
* io/close.c (__close): Likewise.
* io/creat.c (creat): Likewise.
* io/creat64.c (creat64): Likewise.
* io/dup.c (__dup): Likewise.
* io/dup2.c (__dup2): Likewise.
* io/dup3.c (__dup3): Likewise.
* io/euidaccess.c (__euidaccess): Likewise.
* io/faccessat.c (faccessat): Likewise.
* io/fchmod.c (__fchmod): Likewise.
* io/fchmodat.c (fchmodat): Likewise.
* io/fchown.c (__fchown): Likewise.
* io/fchownat.c (fchownat): Likewise.
* io/fcntl.c (__fcntl): Likewise.
* io/flock.c (__flock): Likewise.
* io/fts.c (fts_load): Likewise.
(fts_close): Likewise.
(fts_read): Likewise.
(fts_set): Likewise.
(fts_children): Likewise.
(fts_build): Likewise.
(fts_stat): Likewise.
(fts_sort): Likewise.
(fts_alloc): Likewise.
(fts_lfree): Likewise.
(fts_palloc): Likewise.
(fts_padjust): Likewise.
(fts_maxarglen): Likewise.
(fts_safe_changedir): Likewise.
* io/getwd.c (getwd): Likewise.
* io/isatty.c (__isatty): Likewise.
* io/lchown.c (__lchown): Likewise.
* io/link.c (__link): Likewise.
* io/linkat.c (linkat): Likewise.
* io/lseek.c (__libc_lseek): Likewise.
* io/mkdir.c (__mkdir): Likewise.
* io/mkdirat.c (mkdirat): Likewise.
* io/mkfifo.c (mkfifo): Likewise.
* io/mkfifoat.c (mkfifoat): Likewise.
* io/open.c (__libc_open): Likewise.
* io/open64.c (__libc_open64): Likewise.
* io/readlink.c (__readlink): Likewise.
* io/readlinkat.c (readlinkat): Likewise.
* io/rmdir.c (__rmdir): Likewise.
* io/symlink.c (__symlink): Likewise.
* io/symlinkat.c (symlinkat): Likewise.
* io/ttyname.c (ttyname): Likewise.
* io/ttyname_r.c (__ttyname_r): Likewise.
* io/umask.c (__umask): Likewise.
* io/unlink.c (__unlink): Likewise.
* io/unlinkat.c (unlinkat): Likewise.
* io/utime.c (utime): Likewise.
* libio/clearerr.c (clearerr): Likewise.
* libio/clearerr_u.c (clearerr_unlocked): Likewise.
* libio/feof.c (_IO_feof): Likewise.
* libio/feof_u.c (feof_unlocked): Likewise.
* libio/ferror.c (_IO_ferror): Likewise.
* libio/ferror_u.c (ferror_unlocked): Likewise.
* libio/filedoalloc.c (_IO_file_doallocate): Likewise.
* libio/fileno.c (__fileno): Likewise.
* libio/fputc.c (fputc): Likewise.
* libio/fputc_u.c (fputc_unlocked): Likewise.
* libio/fputwc.c (fputwc): Likewise.
* libio/fputwc_u.c (fputwc_unlocked): Likewise.
* libio/freopen.c (freopen): Likewise.
* libio/freopen64.c (freopen64): Likewise.
* libio/fseek.c (fseek): Likewise.
* libio/fseeko.c (fseeko): Likewise.
* libio/fseeko64.c (fseeko64): Likewise.
* libio/ftello.c (__ftello): Likewise.
* libio/ftello64.c (ftello64): Likewise.
* libio/fwide.c (fwide): Likewise.
* libio/genops.c (_IO_un_link): Likewise.
(_IO_link_in): Likewise.
(_IO_least_marker): Likewise.
(_IO_switch_to_main_get_area): Likewise.
(_IO_switch_to_backup_area): Likewise.
(_IO_switch_to_get_mode): Likewise.
(_IO_free_backup_area): Likewise.
(_IO_switch_to_put_mode): Likewise.
(__overflow): Likewise.
(__underflow): Likewise.
(__uflow): Likewise.
(_IO_setb): Likewise.
(_IO_doallocbuf): Likewise.
(_IO_default_underflow): Likewise.
(_IO_default_uflow): Likewise.
(_IO_default_xsputn): Likewise.
(_IO_sgetn): Likewise.
(_IO_default_xsgetn): Likewise.
(_IO_sync): Likewise.
(_IO_default_setbuf): Likewise.
(_IO_default_seekpos): Likewise.
(_IO_default_doallocate): Likewise.
(_IO_init): Likewise.
(_IO_old_init): Likewise.
(_IO_default_sync): Likewise.
(_IO_default_finish): Likewise.
(_IO_default_seekoff): Likewise.
(_IO_sputbackc): Likewise.
(_IO_sungetc): Likewise.
(_IO_set_column): Likewise.
(_IO_set_column): Likewise.
(_IO_adjust_column): Likewise.
(_IO_get_column): Likewise.
(_IO_init_marker): Likewise.
(_IO_remove_marker): Likewise.
(_IO_marker_difference): Likewise.
(_IO_marker_delta): Likewise.
(_IO_seekmark): Likewise.
(_IO_unsave_markers): Likewise.
(_IO_nobackup_pbackfail): Likewise.
(_IO_default_pbackfail): Likewise.
(_IO_default_seek): Likewise.
(_IO_default_stat): Likewise.
(_IO_default_read): Likewise.
(_IO_default_write): Likewise.
(_IO_default_showmanyc): Likewise.
(_IO_default_imbue): Likewise.
(_IO_iter_next): Likewise.
(_IO_iter_file): Likewise.
* libio/getc.c (_IO_getc): Likewise.
* libio/getwc.c (_IO_getwc): Likewise.
* libio/iofclose.c (_IO_new_fclose): Likewise.
* libio/iofdopen.c (_IO_new_fdopen): Likewise.
* libio/iofflush.c (_IO_fflush): Likewise.
* libio/iofflush_u.c (__fflush_unlocked): Likewise.
* libio/iofgetpos.c (_IO_new_fgetpos): Likewise.
* libio/iofgetpos64.c (_IO_new_fgetpos64): Likewise.
* libio/iofgets.c (_IO_fgets): Likewise.
* libio/iofgets_u.c (__fgets_unlocked): Likewise.
* libio/iofgetws.c (fgetws): Likewise.
* libio/iofgetws_u.c (fgetws_unlocked): Likewise.
* libio/iofopen64.c (_IO_fopen64): Likewise.
* libio/iofopncook.c (_IO_cookie_read): Likewise.
(_IO_cookie_write): Likewise.
(_IO_cookie_seek): Likewise.
(_IO_cookie_close): Likewise.
(_IO_cookie_seekoff): Likewise.
(_IO_old_cookie_seek): Likewise.
* libio/iofputs.c (_IO_fputs): Likewise.
* libio/iofputs_u.c (__fputs_unlocked): Likewise.
* libio/iofputws.c (fputws): Likewise.
* libio/iofputws_u.c (fputws_unlocked): Likewise.
* libio/iofread.c (_IO_fread): Likewise.
* libio/iofread_u.c (__fread_unlocked): Likewise.
* libio/iofsetpos.c (_IO_new_fsetpos): Likewise.
* libio/iofsetpos64.c (_IO_new_fsetpos64): Likewise.
* libio/ioftell.c (_IO_ftell): Likewise.
* libio/iofwrite.c (_IO_fwrite): Likewise.
* libio/iogetdelim.c (_IO_getdelim): Likewise.
* libio/iogets.c (_IO_gets): Likewise.
* libio/iopadn.c (_IO_padn): Likewise.
* libio/iopopen.c (_IO_new_proc_open): Likewise.
(_IO_new_popen): Likewise.
(_IO_new_proc_close): Likewise.
* libio/ioputs.c (_IO_puts): Likewise.
* libio/ioseekoff.c (_IO_seekoff_unlocked): Likewise.
(_IO_seekoff): Likewise.
* libio/ioseekpos.c (_IO_seekpos_unlocked): Likewise.
(_IO_seekpos): Likewise.
* libio/iosetbuffer.c (_IO_setbuffer): Likewise.
* libio/iosetvbuf.c (_IO_setvbuf): Likewise.
* libio/ioungetc.c (_IO_ungetc): Likewise.
* libio/ioungetwc.c (ungetwc): Likewise.
* libio/iovdprintf.c (_IO_vdprintf): Likewise.
* libio/iovsscanf.c (_IO_vsscanf): Likewise.
* libio/iowpadn.c (_IO_wpadn): Likewise.
* libio/libc_fatal.c (__libc_fatal): Likewise.
* libio/memstream.c (__open_memstream): Likewise.
(_IO_mem_sync): Likewise.
(_IO_mem_finish): Likewise.
* libio/oldfileops.c (_IO_old_file_init): Likewise.
(_IO_old_file_close_it): Likewise.
(_IO_old_file_finish): Likewise.
(_IO_old_file_fopen): Likewise.
(_IO_old_file_attach): Likewise.
(_IO_old_file_setbuf): Likewise.
(_IO_old_do_write): Likewise.
(old_do_write): Likewise.
(_IO_old_file_underflow): Likewise.
(_IO_old_file_overflow): Likewise.
(_IO_old_file_sync): Likewise.
(_IO_old_file_seekoff): Likewise.
(_IO_old_file_write): Likewise.
(_IO_old_file_xsputn): Likewise.
* libio/oldiofclose.c (_IO_old_fclose): Likewise.
* libio/oldiofdopen.c (_IO_old_fdopen): Likewise.
* libio/oldiofgetpos.c (_IO_old_fgetpos): Likewise.
* libio/oldiofgetpos64.c (_IO_old_fgetpos64): Likewise.
* libio/oldiofopen.c (_IO_old_fopen): Likewise.
* libio/oldiofsetpos.c (_IO_old_fsetpos): Likewise.
* libio/oldiofsetpos64.c (_IO_old_fsetpos64): Likewise.
* libio/oldiopopen.c (_IO_old_proc_open): Likewise.
(_IO_old_popen): Likewise.
(_IO_old_proc_close): Likewise.
* libio/oldpclose.c (__old_pclose): Likewise.
* libio/pclose.c (__new_pclose): Likewise.
* libio/peekc.c (_IO_peekc_locked): Likewise.
* libio/putc.c (_IO_putc): Likewise.
* libio/putc_u.c (putc_unlocked): Likewise.
* libio/putchar.c (putchar): Likewise.
* libio/putchar_u.c (putchar_unlocked): Likewise.
* libio/putwc.c (putwc): Likewise.
* libio/putwc_u.c (putwc_unlocked): Likewise.
* libio/putwchar.c (putwchar): Likewise.
* libio/putwchar_u.c (putwchar_unlocked): Likewise.
* libio/rewind.c (rewind): Likewise.
* libio/setbuf.c (setbuf): Likewise.
* libio/setlinebuf.c (setlinebuf): Likewise.
* libio/vasprintf.c (_IO_vasprintf): Likewise.
* libio/vscanf.c (_IO_vscanf): Likewise.
* libio/vsnprintf.c (_IO_strn_overflow): Likewise.
* libio/vswprintf.c (_IO_wstrn_overflow): Likewise.
* libio/wfiledoalloc.c (_IO_wfile_doallocate): Likewise.
* libio/wgenops.c (_IO_least_wmarker): Likewise.
(_IO_switch_to_main_wget_area): Likewise.
(_IO_switch_to_wbackup_area): Likewise.
(_IO_wsetb): Likewise.
(_IO_wdefault_pbackfail): Likewise.
(_IO_wdefault_finish): Likewise.
(_IO_wdefault_uflow): Likewise.
(__woverflow): Likewise.
(__wuflow): Likewise.
(__wunderflow): Likewise.
(_IO_wdefault_xsputn): Likewise.
(_IO_wdefault_xsgetn): Likewise.
(_IO_wdoallocbuf): Likewise.
(_IO_wdefault_doallocate): Likewise.
(_IO_switch_to_wget_mode): Likewise.
(_IO_free_wbackup_area): Likewise.
(_IO_switch_to_wput_mode): Likewise.
(_IO_sputbackwc): Likewise.
(_IO_sungetwc): Likewise.
(_IO_adjust_wcolumn): Likewise.
(_IO_init_wmarker): Likewise.
(_IO_wmarker_delta): Likewise.
(_IO_seekwmark): Likewise.
(_IO_unsave_wmarkers): Likewise.
* libio/wmemstream.c (open_wmemstream): Likewise.
(_IO_wmem_sync): Likewise.
(_IO_wmem_finish): Likewise.
* locale/nl_langinfo.c (nl_langinfo): Likewise.
* locale/nl_langinfo_l.c (__nl_langinfo_l): Likewise.
* locale/programs/simple-hash.c (init_hash): Likewise.
(delete_hash): Likewise.
(insert_entry): Likewise.
(set_entry): Likewise.
(next_prime): Likewise.
(is_prime): Likewise.
* locale/programs/xmalloc.c (fixup_null_alloc): Likewise.
(xmalloc): Likewise.
(xrealloc): Likewise.
* locale/programs/xstrdup.c (xstrdup): Likewise.
* localedata/collate-test.c (xstrcoll): Likewise.
* localedata/xfrm-test.c (xstrcmp): Likewise.
* login/getlogin_r.c (__getlogin_r): Likewise.
* login/getpt.c (__posix_openpt): Likewise.
* login/login_tty.c (login_tty): Likewise.
* login/setlogin.c (setlogin): Likewise.
* mach/msg-destroy.c (__mach_msg_destroy): Likewise.
(mach_msg_destroy_port): Likewise.
(mach_msg_destroy_memory): Likewise.
* malloc/mcheck.c (flood): Likewise.
* misc/acct.c (acct): Likewise.
* misc/brk.c (__brk): Likewise.
* misc/chflags.c (chflags): Likewise.
* misc/chroot.c (chroot): Likewise.
* misc/fchflags.c (fchflags): Likewise.
* misc/fstab.c (getfsspec): Likewise.
(getfsfile): Likewise.
* misc/fsync.c (fsync): Likewise.
* misc/ftruncate.c (__ftruncate): Likewise.
* misc/ftruncate64.c (__ftruncate64): Likewise.
* misc/getdomain.c (getdomainname): Likewise.
(getdomainname): Likewise.
* misc/gethostname.c (__gethostname): Likewise.
* misc/getpass.c (getpass): Likewise.
* misc/getttyent.c (skip): Likewise.
(value): Likewise.
* misc/gtty.c (gtty): Likewise.
* misc/hsearch.c (hsearch): Likewise.
(hcreate): Likewise.
* misc/hsearch_r.c (__hcreate_r): Likewise.
(__hdestroy_r): Likewise.
* misc/ioctl.c (__ioctl): Likewise.
* misc/mkdtemp.c (mkdtemp): Likewise.
* misc/mkostemp.c (mkostemp): Likewise.
* misc/mkostemp64.c (mkostemp64): Likewise.
* misc/mkostemps.c (mkostemps): Likewise.
* misc/mkostemps64.c (mkostemps64): Likewise.
* misc/mkstemp.c (mkstemp): Likewise.
* misc/mkstemp64.c (mkstemp64): Likewise.
* misc/mkstemps.c (mkstemps): Likewise.
* misc/mkstemps64.c (mkstemps64): Likewise.
* misc/mktemp.c (__mktemp): Likewise.
* misc/preadv.c (preadv): Likewise.
* misc/preadv64.c (preadv64): Likewise.
* misc/pwritev.c (pwritev): Likewise.
* misc/pwritev64.c (pwritev64): Likewise.
* misc/readv.c (__readv): Likewise.
* misc/revoke.c (revoke): Likewise.
* misc/setdomain.c (setdomainname): Likewise.
* misc/setegid.c (setegid): Likewise.
* misc/seteuid.c (seteuid): Likewise.
* misc/sethostid.c (sethostid): Likewise.
* misc/sethostname.c (sethostname): Likewise.
* misc/setregid.c (__setregid): Likewise.
* misc/setreuid.c (__setreuid): Likewise.
* misc/sstk.c (sstk): Likewise.
* misc/stty.c (stty): Likewise.
* misc/syscall.c (syscall): Likewise.
* misc/syslog.c (setlogmask): Likewise.
* misc/truncate.c (__truncate): Likewise.
* misc/truncate64.c (truncate64): Likewise.
* misc/ualarm.c (ualarm): Likewise.
* misc/usleep.c (usleep): Likewise.
* misc/ustat.c (ustat): Likewise.
* misc/writev.c (__writev): Likewise.
* nptl/cleanup_compat.c (_pthread_cleanup_pop): Likewise.
* nptl/old_pthread_cond_broadcast.c
(__pthread_cond_broadcast_2_0): Likewise.
* nptl/old_pthread_cond_destroy.c (__pthread_cond_destroy_2_0):
Likewise.
* nptl/old_pthread_cond_signal.c (__pthread_cond_signal_2_0):
Likewise.
* nptl/old_pthread_cond_wait.c (__pthread_cond_wait_2_0):
Likewise.
* nptl/pt-raise.c (raise): Likewise.
* nptl/pthread_barrier_destroy.c (pthread_barrier_destroy):
Likewise.
* nptl/pthread_barrier_wait.c (__pthread_barrier_wait): Likewise.
* nptl/pthread_barrierattr_destroy.c
(pthread_barrierattr_destroy): Likewise.
* nptl/pthread_barrierattr_init.c (pthread_barrierattr_init):
Likewise.
* nptl/pthread_barrierattr_setpshared.c
(pthread_barrierattr_setpshared): Likewise.
* nptl/pthread_cond_broadcast.c (__pthread_cond_broadcast):
Likewise.
* nptl/pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
* nptl/pthread_cond_init.c (__pthread_cond_init): Likewise.
* nptl/pthread_cond_signal.c (__pthread_cond_signal): Likewise.
* nptl/pthread_condattr_destroy.c (__pthread_condattr_destroy):
Likewise.
* nptl/pthread_condattr_getclock.c (pthread_condattr_getclock):
Likewise.
* nptl/pthread_condattr_getpshared.c
(pthread_condattr_getpshared): Likewise.
* nptl/pthread_condattr_init.c (__pthread_condattr_init):
Likewise.
* nptl/pthread_condattr_setpshared.c
(pthread_condattr_setpshared): Likewise.
* nptl/pthread_detach.c (pthread_detach): Likewise.
* nptl/pthread_equal.c (__pthread_equal): Likewise.
* nptl/pthread_getcpuclockid.c (pthread_getcpuclockid): Likewise.
* nptl/pthread_getspecific.c (__pthread_getspecific): Likewise.
* nptl/pthread_key_delete.c (pthread_key_delete): Likewise.
* nptl/pthread_mutex_consistent.c (pthread_mutex_consistent):
Likewise.
* nptl/pthread_mutex_destroy.c (__pthread_mutex_destroy):
Likewise.
* nptl/pthread_mutex_getprioceiling.c
(pthread_mutex_getprioceiling): Likewise.
* nptl/pthread_mutexattr_destroy.c (__pthread_mutexattr_destroy):
Likewise.
* nptl/pthread_mutexattr_getprotocol.c
(pthread_mutexattr_getprotocol): Likewise.
* nptl/pthread_mutexattr_getpshared.c
(pthread_mutexattr_getpshared): Likewise.
* nptl/pthread_mutexattr_getrobust.c
(pthread_mutexattr_getrobust): Likewise.
* nptl/pthread_mutexattr_gettype.c (pthread_mutexattr_gettype):
Likewise.
* nptl/pthread_mutexattr_init.c (__pthread_mutexattr_init):
Likewise.
* nptl/pthread_mutexattr_setprioceiling.c
(pthread_mutexattr_setprioceiling): Likewise.
* nptl/pthread_mutexattr_setprotocol.c
(pthread_mutexattr_setprotocol): Likewise.
* nptl/pthread_mutexattr_setpshared.c
(pthread_mutexattr_setpshared): Likewise.
* nptl/pthread_mutexattr_setrobust.c
(pthread_mutexattr_setrobust): Likewise.
* nptl/pthread_mutexattr_settype.c (__pthread_mutexattr_settype):
Likewise.
* nptl/pthread_rwlock_destroy.c (__pthread_rwlock_destroy):
Likewise.
* nptl/pthread_rwlockattr_destroy.c (pthread_rwlockattr_destroy):
Likewise.
* nptl/pthread_rwlockattr_getkind_np.c
(pthread_rwlockattr_getkind_np): Likewise.
* nptl/pthread_rwlockattr_getpshared.c
(pthread_rwlockattr_getpshared): Likewise.
* nptl/pthread_rwlockattr_init.c (pthread_rwlockattr_init):
Likewise.
* nptl/pthread_rwlockattr_setkind_np.c
(pthread_rwlockattr_setkind_np): Likewise.
* nptl/pthread_rwlockattr_setpshared.c
(pthread_rwlockattr_setpshared): Likewise.
* nptl/pthread_setcancelstate.c (__pthread_setcancelstate):
Likewise.
* nptl/pthread_setcanceltype.c (__pthread_setcanceltype):
Likewise.
* nptl/pthread_setconcurrency.c (pthread_setconcurrency):
Likewise.
* nptl/pthread_setschedprio.c (pthread_setschedprio): Likewise.
* nptl/pthread_setspecific.c (__pthread_setspecific): Likewise.
* nptl/pthread_spin_destroy.c (pthread_spin_destroy): Likewise.
* nptl/pthread_tryjoin.c (pthread_tryjoin_np): Likewise.
* nptl/sem_close.c (sem_close): Likewise.
* nptl/sem_destroy.c (__new_sem_destroy): Likewise.
* nptl/sem_init.c (__old_sem_init): Likewise.
* nptl/sigaction.c (__sigaction): Likewise.
* nptl/unregister-atfork.c (__unregister_atfork): Likewise.
* posix/_exit.c (_exit): Likewise.
* posix/alarm.c (alarm): Likewise.
* posix/confstr.c (confstr): Likewise.
* posix/fpathconf.c (__fpathconf): Likewise.
* posix/getgroups.c (__getgroups): Likewise.
* posix/getpgid.c (__getpgid): Likewise.
* posix/group_member.c (__group_member): Likewise.
* posix/pathconf.c (__pathconf): Likewise.
* posix/sched_getaffinity.c (sched_getaffinity): Likewise.
* posix/sched_setaffinity.c (sched_setaffinity): Likewise.
* posix/setgid.c (__setgid): Likewise.
* posix/setpgid.c (__setpgid): Likewise.
* posix/setuid.c (__setuid): Likewise.
* posix/sleep.c (__sleep): Likewise.
* posix/sysconf.c (__sysconf): Likewise.
* posix/times.c (__times): Likewise.
* posix/uname.c (__uname): Likewise.
* posix/waitid.c (__waitid): Likewise.
* pwd/getpw.c (__getpw): Likewise.
* resolv/base64.c (b64_pton): Likewise.
* resolv/gai_sigqueue.c (__gai_sigqueue): Likewise.
* resolv/gethnamaddr.c (Dprintf): Likewise.
(gethostbyname): Likewise.
(gethostbyname2): Likewise.
(gethostbyaddr): Likewise.
(_sethtent): Likewise.
(_gethtbyname): Likewise.
(_gethtbyname2): Likewise.
(_gethtbyaddr): Likewise.
(map_v4v6_address): Likewise.
(map_v4v6_hostent): Likewise.
(addrsort): Likewise.
(ht_sethostent): Likewise.
(ht_gethostbyname): Likewise.
(ht_gethostbyaddr): Likewise.
* resolv/inet_net_ntop.c (inet_net_ntop): Likewise.
(inet_net_ntop_ipv4): Likewise.
* resolv/inet_neta.c (inet_neta): Likewise.
* resolv/inet_ntop.c (inet_ntop): Likewise.
(inet_ntop4): Likewise.
(inet_ntop6): Likewise.
* resolv/inet_pton.c (__inet_pton): Likewise.
(inet_pton4): Likewise.
(inet_pton6): Likewise.
* resolv/res_debug.c (loc_aton): Likewise.
(loc_ntoa): Likewise.
* resource/getpriority.c (__getpriority): Likewise.
* resource/getrusage.c (__getrusage): Likewise.
* resource/nice.c (nice): Likewise.
* resource/setpriority.c (__setpriority): Likewise.
* resource/setrlimit64.c (setrlimit64): Likewise.
* resource/vlimit.c (vlimit): Likewise.
* resource/vtimes.c (vtimes): Likewise.
* rt/aio_error.c (aio_error): Likewise.
* rt/aio_return.c (aio_return): Likewise.
* rt/aio_sigqueue.c (__aio_sigqueue): Likewise.
* signal/kill.c (__kill): Likewise.
* signal/killpg.c (killpg): Likewise.
* signal/raise.c (raise): Likewise.
* signal/sigaction.c (__sigaction): Likewise.
* signal/sigaddset.c (sigaddset): Likewise.
* signal/sigaltstack.c (sigaltstack): Likewise.
* signal/sigandset.c (sigandset): Likewise.
* signal/sigblock.c (__sigblock): Likewise.
* signal/sigdelset.c (sigdelset): Likewise.
* signal/sigempty.c (sigemptyset): Likewise.
* signal/sigfillset.c (sigfillset): Likewise.
* signal/sighold.c (sighold): Likewise.
* signal/sigignore.c (sigignore): Likewise.
* signal/sigintr.c (siginterrupt): Likewise.
* signal/sigisempty.c (sigisemptyset): Likewise.
* signal/sigismem.c (sigismember): Likewise.
* signal/signal.c (signal): Likewise.
* signal/sigorset.c (sigorset): Likewise.
* signal/sigpause.c (__sigpause): Likewise.
* signal/sigpending.c (sigpending): Likewise.
* signal/sigprocmask.c (__sigprocmask): Likewise.
* signal/sigrelse.c (sigrelse): Likewise.
* signal/sigreturn.c (__sigreturn): Likewise.
* signal/sigset.c (sigset): Likewise.
* signal/sigsetmask.c (__sigsetmask): Likewise.
* signal/sigstack.c (sigstack): Likewise.
* signal/sigsuspend.c (__sigsuspend): Likewise.
* signal/sigvec.c (sigvec_wrapper_handler): Likewise.
* signal/sysv_signal.c (__sysv_signal): Likewise.
* socket/accept.c (accept): Likewise.
* socket/accept4.c (__libc_accept4): Likewise.
* socket/bind.c (__bind): Likewise.
* socket/connect.c (__connect): Likewise.
* socket/getpeername.c (getpeername): Likewise.
* socket/getsockname.c (__getsockname): Likewise.
* socket/getsockopt.c (getsockopt): Likewise.
* socket/listen.c (__listen): Likewise.
* socket/recv.c (__recv): Likewise.
* socket/recvmsg.c (__recvmsg): Likewise.
* socket/send.c (__send): Likewise.
* socket/sendmsg.c (__sendmsg): Likewise.
* socket/shutdown.c (shutdown): Likewise.
* socket/sockatmark.c (sockatmark): Likewise.
* socket/socket.c (__socket): Likewise.
* stdio-common/ctermid.c (ctermid): Likewise.
* stdio-common/cuserid.c (cuserid): Likewise.
* stdio-common/printf-prs.c (parse_printf_format): Likewise.
* stdio-common/remove.c (remove): Likewise.
* stdio-common/rename.c (rename): Likewise.
* stdio-common/renameat.c (renameat): Likewise.
* stdio-common/tempname.c (__gen_tempname): Likewise.
* stdio-common/xbug.c (InitBuffer): Likewise.
(AppendToBuffer): Likewise.
(ReadFile): Likewise.
* stdlib/a64l.c (a64l): Likewise.
* stdlib/drand48_r.c (drand48_r): Likewise.
* stdlib/getcontext.c (getcontext): Likewise.
* stdlib/getenv.c (getenv): Likewise.
* stdlib/l64a.c (l64a): Likewise.
* stdlib/llabs.c (llabs): Likewise.
* stdlib/lldiv.c (lldiv): Likewise.
* stdlib/lrand48_r.c (lrand48_r): Likewise.
* stdlib/mrand48_r.c (mrand48_r): Likewise.
* stdlib/putenv.c (putenv): Likewise.
* stdlib/random.c (__srandom): Likewise.
(__initstate): Likewise.
(__setstate): Likewise.
* stdlib/random_r.c (__srandom_r): Likewise.
(__setstate_r): Likewise.
(__random_r): Likewise.
* stdlib/secure-getenv.c (__libc_secure_getenv): Likewise.
* stdlib/setcontext.c (setcontext): Likewise.
* stdlib/setenv.c (setenv): Likewise.
(unsetenv): Likewise.
* stdlib/srand48.c (srand48): Likewise.
* stdlib/srand48_r.c (__srand48_r): Likewise.
* stdlib/swapcontext.c (swapcontext): Likewise.
* stdlib/system.c (__libc_system): Likewise.
* stdlib/tst-strtod.c (expand): Likewise.
* stdlib/tst-strtol.c (expand): Likewise.
* stdlib/tst-strtoll.c (expand): Likewise.
* streams/fattach.c (fattach): Likewise.
* streams/fdetach.c (fdetach): Likewise.
* streams/getmsg.c (getmsg): Likewise.
* streams/isastream.c (isastream): Likewise.
* string/ffs.c (__ffs): Likewise.
* string/ffsll.c (ffsll): Likewise.
* string/memcmp.c (memcmp_common_alignment): Likewise.
(memcmp_not_common_alignment): Likewise.
(MEMCMP): Likewise.
* string/memcpy.c (memcpy): Likewise.
* string/memmove.c (MEMMOVE): Likewise.
* string/memset.c (memset): Likewise.
* string/rawmemchr.c (RAWMEMCHR): Likewise.
* string/strchrnul.c (STRCHRNUL): Likewise.
* string/strerror.c (strerror): Likewise.
* string/strndup.c (__strndup): Likewise.
* string/strverscmp.c (__strverscmp): Likewise.
* sunrpc/clnt_raw.c (clntraw_freeres): Likewise.
* sunrpc/clnt_tcp.c (clnttcp_geterr): Likewise.
(clnttcp_freeres): Likewise.
* sunrpc/clnt_unix.c (clntunix_freeres): Likewise.
* sunrpc/pmap_prot.c (xdr_pmap): Likewise.
* sunrpc/pmap_prot2.c (xdr_pmaplist): Likewise.
* sunrpc/pmap_rmt.c (xdr_rmtcallres): Likewise.
* sunrpc/rpc_prot.c (xdr_replymsg): Likewise.
(xdr_callhdr): Likewise.
* sunrpc/rpcinfo.c (udpping): Likewise.
(tcpping): Likewise.
(pstatus): Likewise.
(pmapdump): Likewise.
(brdcst): Likewise.
(deletereg): Likewise.
(getprognum): Likewise.
(getvers): Likewise.
(get_inet_address): Likewise.
* sunrpc/svc_raw.c (svcraw_recv): Likewise.
* sunrpc/svc_udp.c (svcudp_create): Likewise.
(svcudp_stat): Likewise.
(svcudp_recv): Likewise.
(svcudp_reply): Likewise.
(svcudp_getargs): Likewise.
(svcudp_freeargs): Likewise.
(svcudp_destroy): Likewise.
* sunrpc/xdr.c (xdr_bytes): Likewise.
(xdr_netobj): Likewise.
(xdr_string): Likewise.
(xdr_wrapstring): Likewise.
* sunrpc/xdr_float.c (xdr_float): Likewise.
(xdr_double): Likewise.
* sunrpc/xdr_mem.c (xdrmem_setpos): Likewise.
* sunrpc/xdr_ref.c (xdr_pointer): Likewise.
* sysvipc/ftok.c (ftok): Likewise.
* sysvipc/msgctl.c (msgctl): Likewise.
* sysvipc/msgget.c (msgget): Likewise.
* sysvipc/msgrcv.c (msgrcv): Likewise.
* sysvipc/msgsnd.c (msgsnd): Likewise.
* sysvipc/semget.c (semget): Likewise.
* sysvipc/semop.c (semop): Likewise.
* sysvipc/shmat.c (shmat): Likewise.
* sysvipc/shmctl.c (shmctl): Likewise.
* sysvipc/shmdt.c (shmdt): Likewise.
* sysvipc/shmget.c (shmget): Likewise.
* termios/cfmakeraw.c (cfmakeraw): Likewise.
* termios/speed.c (cfgetospeed): Likewise.
(cfgetispeed): Likewise.
(cfsetospeed): Likewise.
(cfsetispeed): Likewise.
* termios/tcflow.c (tcflow): Likewise.
* termios/tcflush.c (tcflush): Likewise.
* termios/tcgetattr.c (__tcgetattr): Likewise.
* termios/tcgetpgrp.c (tcgetpgrp): Likewise.
* termios/tcgetsid.c (tcgetsid): Likewise.
* termios/tcsendbrk.c (tcsendbreak): Likewise.
* termios/tcsetpgrp.c (tcsetpgrp): Likewise.
* time/adjtime.c (__adjtime): Likewise.
* time/dysize.c (dysize): Likewise.
* time/ftime.c (ftime): Likewise.
* time/getitimer.c (__getitimer): Likewise.
* time/gettimeofday.c (__gettimeofday): Likewise.
* time/gmtime.c (__gmtime_r): Likewise.
(gmtime): Likewise.
* time/localtime.c (__localtime_r): Likewise.
(localtime): Likewise.
* time/offtime.c (__offtime): Likewise.
* time/settimeofday.c (__settimeofday): Likewise.
* time/stime.c (stime): Likewise.
* time/strftime_l.c (tm_diff): Likewise.
(iso_week_days): Likewise.
* time/strptime.c (strptime): Likewise.
* time/time.c (time): Likewise.
* time/timespec_get.c (timespec_get): Likewise.
* time/tzset.c (tzset_internal): Likewise.
(compute_change): Likewise.
(__tz_compute): Likewise.
* wcsmbs/btowc.c (__btowc): Likewise.
* wcsmbs/mbrlen.c (__mbrlen): Likewise.
* wcsmbs/mbsinit.c (__mbsinit): Likewise.
* wcsmbs/mbsrtowcs.c (__mbsrtowcs): Likewise.
* wcsmbs/wcpcpy.c (__wcpcpy): Likewise.
* wcsmbs/wcpncpy.c (__wcpncpy): Likewise.
* wcsmbs/wcscat.c (__wcscat): Likewise.
* wcsmbs/wcschrnul.c (__wcschrnul): Likewise.
* wcsmbs/wcscmp.c (WCSCMP): Likewise.
* wcsmbs/wcscpy.c (WCSCPY): Likewise.
* wcsmbs/wcscspn.c (wcscspn): Likewise.
* wcsmbs/wcsdup.c (wcsdup): Likewise.
* wcsmbs/wcslen.c (__wcslen): Likewise.
* wcsmbs/wcsncat.c (WCSNCAT): Likewise.
* wcsmbs/wcsncmp.c (WCSNCMP): Likewise.
* wcsmbs/wcsncpy.c (__wcsncpy): Likewise.
* wcsmbs/wcsnlen.c (__wcsnlen): Likewise.
* wcsmbs/wcspbrk.c (wcspbrk): Likewise.
* wcsmbs/wcsrchr.c (WCSRCHR): Likewise.
* wcsmbs/wcsspn.c (wcsspn): Likewise.
* wcsmbs/wcsstr.c (wcsstr): Likewise.
* wcsmbs/wcstok.c (wcstok): Likewise.
* wcsmbs/wctob.c (wctob): Likewise.
* wcsmbs/wmemchr.c (__wmemchr): Likewise.
* wcsmbs/wmemcmp.c (WMEMCMP): Likewise.
* wcsmbs/wmemcpy.c (__wmemcpy): Likewise.
* wcsmbs/wmemmove.c (__wmemmove): Likewise.
* wcsmbs/wmempcpy.c (__wmempcpy): Likewise.
* wcsmbs/wmemset.c (__wmemset): Likewise.
* wctype/wcfuncs.c (__towlower): Likewise.
(__towupper): Likewise.
|
|
|
|
|
|
| |
Fix the copyright year and remove contributed by in the
bug-strcoll2 test. In addition add the correct dependency
on $(gen-locales) to ensure all the test locales are generated.
|
|
|
|
|
| |
Adds bug-strcoll2 to the string tests, along with the
generation of required locales.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The optimization introduced in commit
f13c2a8dff2329c6692a80176262ceaaf8a6f74e, causes regressions in
sorting for languages that have digraphs that change sort order, like
cs_CZ which sorts ch between h and i.
My analysis shows the fast-forwarding optimization in STRCOLL advances
through a digraph while possibly stopping in the middle which results
in a subsequent skipping of the digraph and incorrect sorting. The
optimization is incorrect as implemented and because of that I'm
removing it for 2.23, and I will also commit this fix for 2.22 where
it was originally introduced.
This patch reverts the optimization, introduces a new bug-strcoll2.c
regression test that tests both cs_CZ.UTF-8 and da_DK.ISO-8859-1 and
ensures they sort one digraph each correctly. The optimization can't be
applied without regressing this test.
Checked on x86_64, bug-strcoll2.c fails without this patch and passes
after. This will also get a fix on 2.22 which has the same bug.
|
|
|
|
|
| |
immediately after glibc has been built and before 'make check'
(or after 'make clean').
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was noted in
<https://sourceware.org/ml/libc-alpha/2012-09/msg00305.html> that the
bits/*.h naming scheme should only be used for installed headers.
This patch renames bits/libc-lock.h to plain libc-lock.h and
bits/libc-lockP.h to plain libc-lockP.h to follow that convention.
Note that I don't know where libc-lockP.h comes from for Hurd (the
Hurd libc-lock.h includes libc-lockP.h, but the only libc-lockP.h in
the glibc source tree is for NPTL) - some unmerged patch? - but I
updated the #include in the Hurd libc-lock.h anyway.
Tested for x86_64 (testsuite, and that installed stripped shared
libraries are unchanged by the patch).
[BZ #14912]
* bits/libc-lock.h: Move to ...
* sysdeps/generic/libc-lock.h: ...here.
(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
* sysdeps/mach/hurd/bits/libc-lock.h: Move to ...
* sysdeps/mach/hurd/libc-lock.h: ...here.
(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
[_LIBC]: Include <libc-lockP.h> instead of <bits/libc-lockP.h>.
* sysdeps/mach/bits/libc-lock.h: Move to ...
* sysdeps/mach/libc-lock.h: ...here.
(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
* sysdeps/nptl/bits/libc-lock.h: Move to ...
* sysdeps/nptl/libc-lock.h: ...here.
(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
* sysdeps/nptl/bits/libc-lockP.h: Move to ...
* sysdeps/nptl/libc-lockP.h: ...here.
(_BITS_LIBC_LOCKP_H): Rename macro to _LIBC_LOCKP_H.
* crypt/crypt_util.c: Include <libc-lock.h> instead of
<bits/libc-lock.h>.
* dirent/scandir-tail.c: Likewise.
* dlfcn/dlerror.c: Likewise.
* elf/dl-close.c: Likewise.
* elf/dl-iteratephdr.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-open.c: Likewise.
* elf/dl-support.c: Likewise.
* elf/dl-writev.h: Likewise.
* elf/rtld.c: Likewise.
* grp/fgetgrent.c: Likewise.
* gshadow/fgetsgent.c: Likewise.
* gshadow/sgetsgent.c: Likewise.
* iconv/gconv_conf.c: Likewise.
* iconv/gconv_db.c: Likewise.
* iconv/gconv_dl.c: Likewise.
* iconv/gconv_int.h: Likewise.
* iconv/gconv_trans.c: Likewise.
* include/link.h: Likewise.
* inet/getnameinfo.c: Likewise.
* inet/getnetgrent.c: Likewise.
* inet/getnetgrent_r.c: Likewise.
* intl/bindtextdom.c: Likewise.
* intl/dcigettext.c: Likewise.
* intl/finddomain.c: Likewise.
* intl/gettextP.h: Likewise.
* intl/loadmsgcat.c: Likewise.
* intl/localealias.c: Likewise.
* intl/textdomain.c: Likewise.
* libidn/idn-stub.c: Likewise.
* libio/libioP.h: Likewise.
* locale/duplocale.c: Likewise.
* locale/freelocale.c: Likewise.
* locale/newlocale.c: Likewise.
* locale/setlocale.c: Likewise.
* login/getutent_r.c: Likewise.
* login/getutid_r.c: Likewise.
* login/getutline_r.c: Likewise.
* login/utmp-private.h: Likewise.
* login/utmpname.c: Likewise.
* malloc/mtrace.c: Likewise.
* misc/efgcvt.c: Likewise.
* misc/error.c: Likewise.
* misc/fstab.c: Likewise.
* misc/getpass.c: Likewise.
* misc/mntent.c: Likewise.
* misc/syslog.c: Likewise.
* nis/nis_call.c: Likewise.
* nis/nis_callback.c: Likewise.
* nis/nss-default.c: Likewise.
* nis/nss_compat/compat-grp.c: Likewise.
* nis/nss_compat/compat-initgroups.c: Likewise.
* nis/nss_compat/compat-pwd.c: Likewise.
* nis/nss_compat/compat-spwd.c: Likewise.
* nis/nss_nis/nis-alias.c: Likewise.
* nis/nss_nis/nis-ethers.c: Likewise.
* nis/nss_nis/nis-grp.c: Likewise.
* nis/nss_nis/nis-hosts.c: Likewise.
* nis/nss_nis/nis-network.c: Likewise.
* nis/nss_nis/nis-proto.c: Likewise.
* nis/nss_nis/nis-pwd.c: Likewise.
* nis/nss_nis/nis-rpc.c: Likewise.
* nis/nss_nis/nis-service.c: Likewise.
* nis/nss_nis/nis-spwd.c: Likewise.
* nis/nss_nisplus/nisplus-alias.c: Likewise.
* nis/nss_nisplus/nisplus-ethers.c: Likewise.
* nis/nss_nisplus/nisplus-grp.c: Likewise.
* nis/nss_nisplus/nisplus-hosts.c: Likewise.
* nis/nss_nisplus/nisplus-initgroups.c: Likewise.
* nis/nss_nisplus/nisplus-network.c: Likewise.
* nis/nss_nisplus/nisplus-proto.c: Likewise.
* nis/nss_nisplus/nisplus-pwd.c: Likewise.
* nis/nss_nisplus/nisplus-rpc.c: Likewise.
* nis/nss_nisplus/nisplus-service.c: Likewise.
* nis/nss_nisplus/nisplus-spwd.c: Likewise.
* nis/ypclnt.c: Likewise.
* nptl/libc_pthread_init.c: Likewise.
* nss/getXXbyYY.c: Likewise.
* nss/getXXent.c: Likewise.
* nss/getXXent_r.c: Likewise.
* nss/nss_db/db-XXX.c: Likewise.
* nss/nss_db/db-netgrp.c: Likewise.
* nss/nss_db/nss_db.h: Likewise.
* nss/nss_files/files-XXX.c: Likewise.
* nss/nss_files/files-alias.c: Likewise.
* nss/nsswitch.c: Likewise.
* posix/regex_internal.h: Likewise.
* posix/wordexp.c: Likewise.
* pwd/fgetpwent.c: Likewise.
* resolv/res_hconf.c: Likewise.
* resolv/res_libc.c: Likewise.
* shadow/fgetspent.c: Likewise.
* shadow/lckpwdf.c: Likewise.
* shadow/sgetspent.c: Likewise.
* socket/opensock.c: Likewise.
* stdio-common/reg-modifier.c: Likewise.
* stdio-common/reg-printf.c: Likewise.
* stdio-common/reg-type.c: Likewise.
* stdio-common/vfprintf.c: Likewise.
* stdio-common/vfscanf.c: Likewise.
* stdlib/abort.c: Likewise.
* stdlib/cxa_atexit.c: Likewise.
* stdlib/fmtmsg.c: Likewise.
* stdlib/random.c: Likewise.
* stdlib/setenv.c: Likewise.
* string/strsignal.c: Likewise.
* sunrpc/auth_none.c: Likewise.
* sunrpc/bindrsvprt.c: Likewise.
* sunrpc/create_xid.c: Likewise.
* sunrpc/key_call.c: Likewise.
* sunrpc/rpc_thread.c: Likewise.
* sysdeps/arm/backtrace.c: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.
* sysdeps/generic/stdio-lock.h: Likewise.
* sysdeps/generic/unwind-dw2-fde.c: Likewise.
* sysdeps/i386/backtrace.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Likewise.
* sysdeps/m68k/backtrace.c: Likewise.
* sysdeps/mach/hurd/cthreads.c: Likewise.
* sysdeps/mach/hurd/dirstream.h: Likewise.
* sysdeps/mach/hurd/malloc-machine.h: Likewise.
* sysdeps/nptl/malloc-machine.h: Likewise.
* sysdeps/nptl/stdio-lock.h: Likewise.
* sysdeps/posix/dirstream.h: Likewise.
* sysdeps/posix/getaddrinfo.c: Likewise.
* sysdeps/posix/system.c: Likewise.
* sysdeps/pthread/aio_suspend.c: Likewise.
* sysdeps/s390/s390-32/backtrace.c: Likewise.
* sysdeps/s390/s390-64/backtrace.c: Likewise.
* sysdeps/unix/sysv/linux/check_pf.c: Likewise.
* sysdeps/unix/sysv/linux/if_index.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c: Likewise.
* sysdeps/unix/sysv/linux/shm-directory.c: Likewise.
* sysdeps/unix/sysv/linux/system.c: Likewise.
* sysdeps/x86_64/backtrace.c: Likewise.
* time/alt_digit.c: Likewise.
* time/era.c: Likewise.
* time/tzset.c: Likewise.
* wcsmbs/wcsmbsload.c: Likewise.
* nptl/tst-initializers1.c (do_test): Refer to <libc-lock.h>
instead of <bits/libc-lock.h> in comment.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized version of wmemset with the z13 vector
instructions.
ChangeLog:
* sysdeps/s390/multiarch/wmemset-c.c: New File.
* sysdeps/s390/multiarch/wmemset-vx.S: Likewise.
* sysdeps/s390/multiarch/wmemset.c: Likewise.
* sysdeps/s390/multiarch/Makefile
(sysdep_routines): Add wmemset functions.
* sysdeps/s390/multiarch/ifunc-impl-list-common.c
(__libc_ifunc_impl_list_common): Add ifunc test for wmemset.
* wcsmbs/wmemset.c: Use WMEMSET if defined.
* string/test-memset.c: Add wmemset support.
* wcsmbs/test-wmemset.c: New File.
* wcsmbs/Makefile (strop-tests): Add wmemset.
* benchtests/bench-memset.c: Add wmemset support.
* benchtests/bench-wmemset.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wmemset.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of memccpy with the z13 vector
instructions.
ChangeLog:
* sysdeps/s390/multiarch/memccpy-c.c: New File.
* sysdeps/s390/multiarch/memccpy-vx.S: Likewise.
* sysdeps/s390/multiarch/memccpy.c: Likewise.
* sysdeps/s390/multiarch/Makefile
(sysdep_routines): Add memccpy functions.
* sysdeps/s390/multiarch/ifunc-impl-list-common.c
(__libc_ifunc_impl_list_common): Add ifunc test for memccpy.
* string/memccpy.c: Use MEMCCPY if defined.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of memchr, rawmemchr and wmemchr with the
z13 vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/memchr-vx.S: New File.
* sysdeps/s390/multiarch/memchr.c: Likewise.
* sysdeps/s390/multiarch/rawmemchr-c.c: Likewise.
* sysdeps/s390/multiarch/rawmemchr-vx.S: Likewise.
* sysdeps/s390/multiarch/rawmemchr.c: Likewise.
* sysdeps/s390/multiarch/wmemchr-c.c: Likewise.
* sysdeps/s390/multiarch/wmemchr-vx.S: Likewise.
* sysdeps/s390/multiarch/wmemchr.c: Likewise.
* sysdeps/s390/s390-32/multiarch/memchr.c: Likewise.
* sysdeps/s390/s390-64/multiarch/memchr.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add memchr, wmemchr
and rawmemchr functions.
* sysdeps/s390/multiarch/ifunc-impl-list-common.c
(__libc_ifunc_impl_list_common): Add ifunc test for memchr, rawmemchr
and wmemchr.
* wcsmbs/wmemchr.c: Use WMEMCHR if defined.
* string/test-memchr.c: Add wmemchr support.
* wcsmbs/test-wmemchr.c: New File.
* wcsmbs/Makefile (strop-tests): Add wmemchr.
* benchtests/bench-memchr.c: Add wmemchr support.
* benchtests/bench-wmemchr.c: New File.
* benchtests/Makefile (wcsmbs-bench): wmemchr.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of strcspn and wcscspn with the z13
vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/strcspn-c.c: New File.
* sysdeps/s390/multiarch/strcspn-vx.S: Likewise.
* sysdeps/s390/multiarch/strcspn.c: Likewise.
* sysdeps/s390/multiarch/wcscspn-c.c: Likewise.
* sysdeps/s390/multiarch/wcscspn-vx.S: Likewise.
* sysdeps/s390/multiarch/wcscspn.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strcspn and
wcscspn functions.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for strcspn, wcscspn.
* wcsmbs/wcscspn.c: Use WCSCSPN if defined.
* string/test-strcspn.c: Add wcscspn support.
* wcsmbs/test-wcscspn.c: New File.
* wcsmbs/Makefile (strop-tests): Add wcscspn.
* benchtests/bench-strcspn.c: Add wcscspn support.
* benchtests/bench-wcscspn.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcscspn.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of strpbrk and wcspbrk with the z13
vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/strpbrk-c.c: New File.
* sysdeps/s390/multiarch/strpbrk-vx.S: Likewise.
* sysdeps/s390/multiarch/strpbrk.c: Likewise.
* sysdeps/s390/multiarch/wcspbrk-c.c: Likewise.
* sysdeps/s390/multiarch/wcspbrk-vx.S: Likewise.
* sysdeps/s390/multiarch/wcspbrk.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strpbrk and
wcspbrk functions.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for strpbrk, wcspbrk.
* wcsmbs/wcspbrk.c: Use WCSPBRK if defined.
* string/test-strpbrk.c: Add wcspbrk support.
* wcsmbs/test-wcspbrk.c: New File.
* wcsmbs/Makefile (strop-tests): Add wcspbrk.
* benchtests/bench-strpbrk.c: Add wcspbrk support.
* benchtests/bench-wcspbrk.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcspbrk.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of strspn and wcsspn with the z13
vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/strspn-c.c: New File.
* sysdeps/s390/multiarch/strspn-vx.S: Likewise.
* sysdeps/s390/multiarch/strspn.c: Likewise.
* sysdeps/s390/multiarch/wcsspn-c.c: Likewise.
* sysdeps/s390/multiarch/wcsspn-vx.S: Likewise.
* sysdeps/s390/multiarch/wcsspn.c: Likewise.
* wcsmbs/wcsspn.c: Use WCSSPN if defined.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strspn and
wcsspn functions.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for strspn, wcsspn.
* string/test-strspn.c: Add wcsspn support.
* wcsmbs/test-wcsspn.c: New File.
* wcsmbs/Makefile (strop-tests): Add wcsspn.
* benchtests/bench-strspn.c: Add wcsspn support.
* benchtests/bench-wcsspn.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcsspn.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of strchrnul and wcschrnul with the z13
vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/strchrnul-c.c: New File.
* sysdeps/s390/multiarch/strchrnul-vx.S: Likewise.
* sysdeps/s390/multiarch/strchrnul.c: Likewise.
* sysdeps/s390/multiarch/wcschrnul-c.c: Likewise.
* sysdeps/s390/multiarch/wcschrnul-vx.S: Likewise.
* sysdeps/s390/multiarch/wcschrnul.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strchrnul and
wcschrnul functions.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for strchrnul, wcschrnul.
* wcsmbs/wcschrnul.c: Use WCSCHRNUL if defined.
* string/test-strchr.c: Add wcschrnul support.
* wcsmbs/test-wcschrnul.c: New File.
* wcsmbs/Makefile (strop-tests): Add wcschrnul.
* benchtests/bench-strchr.c: Add wcschrnul support.
* benchtests/bench-wcschrnul.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcschrnul.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of strchr and wcschr with the z13
vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/strchr-c.c: New File.
* sysdeps/s390/multiarch/strchr-vx.S: Likewise.
* sysdeps/s390/multiarch/strchr.c: Likewise.
* sysdeps/s390/multiarch/wcschr-c.c: Likewise.
* sysdeps/s390/multiarch/wcschr-vx.S: Likewise.
* sysdeps/s390/multiarch/wcschr.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strchr and
wcschr functions.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for strchr, wcschr.
* string/strchr.c (STRCHR): Define and use macro.
* benchtests/bench-wcschr.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcschr.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of strcmp and wcscmp with the z13
vector instructions.
The architecture specific string.h had a typo, which leads to ommiting the
inline version in this file if __USE_STRING_INLINES is defined.
Tested this inline version by tweaking test-strcmp.c.
ChangeLog:
* sysdeps/s390/multiarch/strcmp-vx.S: New File.
* sysdeps/s390/multiarch/strcmp.c: Likewise.
* sysdeps/s390/multiarch/wcscmp-c.c: Likewise.
* sysdeps/s390/multiarch/wcscmp-vx.S: Likewise.
* sysdeps/s390/multiarch/wcscmp.c: Likewise.
* sysdeps/s390/s390-32/multiarch/strcmp.c: Likewise.
* sysdeps/s390/s390-64/multiarch/strcmp.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strcmp and
wcscmp functions.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for strcmp, wcscmp.
* string/strcmp.c (STRCMP): Define and use macro.
* benchtests/bench-wcscmp.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcscmp.
* sysdeps/s390/bits/string.h: Fix typo: _HAVE_STRING_ARCH_strcmp
instead of _HAVE_STRING_ARCH_memchr.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of strncat and wcsncat with the z13
vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/strncat-c.c: New File.
* sysdeps/s390/multiarch/strncat-vx.S: Likewise.
* sysdeps/s390/multiarch/strncat.c: Likewise.
* sysdeps/s390/multiarch/wcsncat-c.c: Likewise.
* sysdeps/s390/multiarch/wcsncat-vx.S: Likewise.
* sysdeps/s390/multiarch/wcsncat.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strncat and
wcsncat functions.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for strncat, wcsncat.
* wcsmbs/wcsncat.c (WCSNCAT): Define and use macro.
* string/test-strncat.c: Add wcsncat support.
* wcsmbs/test-wcsncat.c: New File.
* wcsmbs/Makefile (strop-tests): Add wcsncat.
* benchtests/bench-strncat.c: Add wcsncat support.
* benchtests/bench-wcsncat.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcsncat.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of strcat and wcscat with the z13
vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/strcat-c.c: New File.
* sysdeps/s390/multiarch/strcat-vx.S: Likewise.
* sysdeps/s390/multiarch/strcat.c: Likewise.
* sysdeps/s390/multiarch/wcscat-c.c: Likewise.
* sysdeps/s390/multiarch/wcscat-vx.S: Likewise.
* sysdeps/s390/multiarch/wcscat.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strcat and
wcscat functions.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for strcat, wcscat.
* string/strcat.c (STRCAT): Define and use macro.
* wcsmbs/wcscat.c: Use WCSCAT if defined.
* string/test-strcat.c: Add wcscat support.
* wcsmbs/test-wcscat.c: New File.
* wcsmbs/Makefile (strop-tests): Add wcscat.
* benchtests/bench-strcat.c: Add wcscat support.
* benchtests/bench-wcscat.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcscat.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of stpncpy and wcpncpy with the z13
vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/stpncpy-c.c: New File.
* sysdeps/s390/multiarch/stpncpy-vx.S: Likewise.
* sysdeps/s390/multiarch/stpncpy.c: Likewise.
* sysdeps/s390/multiarch/wcpncpy-c.c: Likewise.
* sysdeps/s390/multiarch/wcpncpy-vx.S: Likewise.
* sysdeps/s390/multiarch/wcpncpy.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add stpncpy and
wcpncpy functions.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for stpncpy, wcpncpy.
* wcsmbs/wcpncpy.c: Use WCPNCPY if defined.
* string/test-stpncpy.c: Add wcpncpy support.
* wcsmbs/test-wcpncpy.c: New File.
* wcsmbs/Makefile (strop-tests): Add wcpncpy.
* benchtests/bench-stpncpy.c: Add wcpncpy support.
* benchtests/bench-wcpncpy.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcpncpy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of strncpy and wcsncpy with the z13
vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/strncpy-vx.S: New File.
* sysdeps/s390/multiarch/strncpy.c: Likewise.
* sysdeps/s390/multiarch/wcsncpy-c.c: Likewise.
* sysdeps/s390/multiarch/wcsncpy-vx.S: Likewise.
* sysdeps/s390/multiarch/wcsncpy.c: Likewise.
* sysdeps/s390/s390-32/multiarch/strncpy.c: Likewise.
* sysdeps/s390/s390-64/multiarch/strncpy.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strncpy and
wcsncpy functions.
* wcsmbs/wcsncpy.c: Use WCSNCPY if defined.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for strncpy, wcsncpy.
* string/test-strncpy.c: Add wcsncpy support.
* wcsmbs/test-wcsncpy.c: New File.
* wcsmbs/Makefile (strop-tests): Add wcsncpy.
* benchtests/bench-strncpy.c: Add wcsncpy support.
* benchtests/bench-wcsncpy.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcsncpy
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of stpcpy and wcpcpy with the z13
vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/stpcpy-c.c: New File.
* sysdeps/s390/multiarch/stpcpy-vx.S: Likewise.
* sysdeps/s390/multiarch/stpcpy.c: Likewise.
* sysdeps/s390/multiarch/wcpcpy-c.c: Likewise.
* sysdeps/s390/multiarch/wcpcpy-vx.S: Likewise.
* sysdeps/s390/multiarch/wcpcpy.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add stpcpy and
wcpcpy functions.
* string/stpcpy.c: Use STPCPY if defined.
* wcsmbs/wcpcpy.c: Use WCPCPY if defined.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for stpcpy, wcpcpy.
* string/test-stpcpy.c: Add wcpcpy support.
* wcsmbs/test-wcpcpy.c: New File.
* wcsmbs/Makefile (strop-tests): Add wcpcpy.
* benchtests/bench-stpcpy.c: Add wcpcpy support.
* benchtests/bench-wcpcpy.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcpcpy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of strnlen and wcsnlen with the z13
vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/strnlen-c.c: New File.
* sysdeps/s390/multiarch/strnlen-vx.S: Likewise.
* sysdeps/s390/multiarch/strnlen.c: Likewise.
* sysdeps/s390/multiarch/wcsnlen-c.c: Likewise.
* sysdeps/s390/multiarch/wcsnlen-vx.S: Likewise.
* sysdeps/s390/multiarch/wcsnlen.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strnlen and
wcsnlen functions.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for strnlen, wcsnlen.
* wcsmbs/wcsnlen.c: Use WCSNLEN if defined.
* string/test-strnlen.c: Add wcsnlen support.
* wcsmbs/test-wcsnlen.c: New File.
* wcsmbs/Makefile (strop-tests): Add wcsnlen.
* benchtests/bench-strnlen.c: Add wcsnlen support.
* benchtests/bench-wcsnlen.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcsnlen.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides optimized versions of strlen and wcslen with the z13 vector
instructions.
The helper macro IFUNC_VX_IMPL is introduced and is used to register all
__<func>_c() and __<func>_vx() functions within __libc_ifunc_impl_list()
to the ifunc test framework.
ChangeLog:
* sysdeps/s390/multiarch/Makefile: New File.
* sysdeps/s390/multiarch/strlen-c.c: Likewise.
* sysdeps/s390/multiarch/strlen-vx.S: Likewise.
* sysdeps/s390/multiarch/strlen.c: Likewise.
* sysdeps/s390/multiarch/wcslen-c.c: Likewise.
* sysdeps/s390/multiarch/wcslen-vx.S: Likewise.
* sysdeps/s390/multiarch/wcslen.c: Likewise.
* string/strlen.c (STRLEN): Define and use macro.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(IFUNC_VX_IMPL): New macro function.
(__libc_ifunc_impl_list): Add ifunc test for strlen, wcslen.
* benchtests/Makefile (wcsmbs-bench): New variable.
(string-bench-all): Added wcsmbs-bench.
* benchtests/bench-wcslen.c: New File.
|
|
|
|
| |
byte loop. Performance on bench-stpncpy is ~2x faster on average.
|
|
|
|
|
|
|
|
|
|
| |
See Steve Ellcey's bug report in:
https://sourceware.org/ml/libc-alpha/2015-07/msg00673.html
* string/memrchr.c (MEMRCHR):
* string/rawmemchr.c (RAWMEMCHR):
* string/strchr.c (strchr):
* string/strchrnul.c (STRCHRNUL):
Rewrite code to avoid issues with signed shift overflow.
|
|
|
|
|
|
|
|
|
|
| |
I think the last clause of the conditional,
|| __n <= __bos (__dest)
may be backward. The code should call the runtime-checking function
if __n is not constant, or if __n is known to be LARGER than the size
of the destination.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patches uses the default strcpy/stpcpy implementation for
POWER7/PPC64. This is faster in mostly inputs for benchtests
and for multiarch the implementation uses the POWER7 strlen and
memcpy.
* string/stpcpy.c (__stpcpy): Use STPCPY to redefine symbol name and
cleanup macro usage.
* string/strcpy.c (strcpt): Use STRCPY to redefine symbol name.
* sysdeps/powerpc/powerpc64/multiarch/stpcpy-power7.S: Remove file.
* sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/strcpy-power7.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.S: Likewise.
* sysdeps/powerpc/powerpc64/power7/stpcpy.S: Likewise.
* sysdeps/powerpc/powerpc64/power7/strcpy.S: Likewise.
* sysdeps/powerpc/powerpc64/power7/strcpy.c: Likewise.
* sysdeps/powerpc/powerpc64/stpcpy.S: Likewise.
* sysdeps/powerpc/powerpc64/strcpy.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
[SHARED && IS_IN (libc)]: Include <string/strcpy.c>.
* sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
[SHARED && IS_IN (libc)]: Include <string/stpcpy.c>.
* sysdeps/powerpc/powerpc64/multiarch/stpcpy-power7.c: New file.
* sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/strcpy-power7.c: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.c: Likewise.
* sysdeps/powerpc/powerpc64/power7/strcpy.c: Likewise.
|
|
|
|
|
|
|
|
|
| |
These tests were skipped by the use-test-skeleton conversion done in
commit 29955b5d because they did not have an `int main (void)'
declaration. Instead their `main' functions were declared with arguments
(i.e. argc, argv) even though they didn't use them.
Remove these arguments and include the test skeleton in these tests.
|
|
|
|
|
| |
this for all targets except sparc which has an optimized mempcpy
implementation.
|
|
|
|
|
| |
a byte loop. Overall performance on bench-memccpy is > 2x faster when
using the C implementation of memchr and an optimized memcpy.
|
|
|
|
|
|
|
| |
a byte loop. Performance
on bench-strncpy is 1.9-2.1x faster on average. I tried several variations, and using a tailcall and
calling memset conditionally gave the best overall results.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch avoids some initialization overhead in the hot path of strcoll by
replacing a memset with zero assignments. It improves the file listing benchmark
by 15% on x86. Tests are ok.
filelist#C -1.30%
filelist#en_US.UTF-8 -15.08%
lorem_ipsum#vi_VN.UTF-8 -15.04%
lorem_ipsum#ar_SA.UTF-8 -11.83%
lorem_ipsum#en_US.UTF-8 -9.66%
lorem_ipsum#zh_CN.UTF-8 -8.63%
lorem_ipsum#cs_CZ.UTF-8 -8.28%
lorem_ipsum#en_GB.UTF-8 -18.07%
lorem_ipsum#da_DK.UTF-8 -11.13%
lorem_ipsum#pl_PL.UTF-8 -15.31%
lorem_ipsum#fr_FR.UTF-8 -12.26%
lorem_ipsum#pt_PT.UTF-8 -10.64%
lorem_ipsum#el_GR.UTF-8 -8.19%
lorem_ipsum#ru_RU.UTF-8 -0.65%
lorem_ipsum#iw_IL.UTF-8 -14.92%
lorem_ipsum#es_ES.UTF-8 -11.47%
lorem_ipsum#hi_IN.UTF-8 -1.05%
lorem_ipsum#sv_SE.UTF-8 6.44%
lorem_ipsum#hu_HU.UTF-8 -9.85%
lorem_ipsum#tr_TR.UTF-8 -14.96%
lorem_ipsum#is_IS.UTF-8 -10.35%
lorem_ipsum#it_IT.UTF-8 -11.33%
lorem_ipsum#sr_RS.UTF-8 -9.88%
lorem_ipsum#ja_JP.UTF-8 -3.23%
* string/strcoll_l.c (STRCOLL): Remove unnecessary memset.
|
|
|
|
|
|
|
| |
The struct element idxnow is not used and can be removed. Tests show
no problems.
* string/strcoll_l.c: Remove unused struct element idxnow.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Various code in glibc uses __strnlen instead of strnlen for namespace
reasons. However, __strnlen does not use libc_hidden_proto /
libc_hidden_def (as is normally done for any function defined and
called within the same library, whether or not exported from the
library and whatever namespace it is in), so the compiler does not
know that those calls are to a function within libc.
This patch uses libc_hidden_proto / libc_hidden_def with __strnlen.
On x86_64, it makes no difference to the installed stripped shared
libraries. On 32-bit x86, it causes __strnlen calls to go to the same
place as strnlen calls (the fallback strnlen implementation), rather
than through a PLT entry for the strnlen IFUNC; I'm not sure of the
logic behind when calls from within libc should use IFUNCs versus when
they should go direct to a particular function implementation, but
clearly it doesn't make sense for strnlen and __strnlen to be handled
differently in this regard.
Tested for x86_64 and x86 (testsuite, and comparison of installed
shared libraries as described above).
* string/strnlen.c [!STRNLEN] (__strnlen): Use libc_hidden_def.
* include/string.h (__strnlen): Use libc_hidden_proto.
* sysdeps/aarch64/strnlen.S (__strnlen): Use libc_hidden_def.
* sysdeps/i386/i686/multiarch/strnlen-c.c [SHARED]
(libc_hidden_def): Define __GI___strnlen as well as __GI_strnlen.
* sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S
(libc_hidden_def): Undefine and redefine.
* sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c
[SHARED] (libc_hidden_def): Define __GI___strnlen as well as
__GI_strnlen.
* sysdeps/powerpc/powerpc32/power7/strnlen.S (__strnlen): Use
libc_hidden_def.
* sysdeps/tile/tilegx/strnlen.c (__strnlen): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pathconf (sysdeps/unix/sysv/linux/pathconf.c) uses basename. But
pathconf is in POSIX back to 1990 while basename is only reserved with
external linkage in those standards including XPG functions. This
patch fixes this namespace issue in the usual way, renaming basename
to __basename and making it into a weak alias.
Tested for x86_64 and x86 (testsuite, and that disassembly of
installed shared libraries is unchanged by the patch).
[BZ #18444]
* string/basename.c (basename): Rename to __basename and define as
weak alias of __basename. Use libc_hidden_weak.
* include/string.h (__basename): Declare. Use libc_hidden_proto.
* sysdeps/unix/sysv/linux/pathconf.c (distinguish_extX): Call
__basename instead of basename.
* conform/Makefile (test-xfail-POSIX2008/unistd.h/linknamespace):
Remove variable.
(test-xfail-XOPEN2K8/unistd.h/linknamespace): Likewise.
|
|
|
|
|
|
| |
This patch improves strcoll hot case by finding first byte that
mismatches. That is in likely case enough to determine comparison
result.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[BZ #18206]
* wcsmbs/wcsncmp.c (wcsncmp): Compare as wchar_t, not wint_t.
Use signed comparision instead of substraction to avoid
overflow bug.
* localedata/tests-mbwc/tst_wcsncmp.c (tst_wcsncmp):
Take the sign of ret.
* localedata/tests-mbwc/dat_wcsncmp.c (tst_wcsncmp_loc):
Do not expect precise return values. Only the sign matters.
* wcsmbs/Makefile (strop-tests): Add wcsncmp.
* wcsmbs/test-wcsncmp.c: New File.
* string/test-strncmp.c: Add wcsncmp support.
|
|
|
|
|
| |
The implementation of __CORRECT_ISO_CPP_STRING_H_PROTO requires
support for asm aliases.
|
|
|
|
| |
typically has a much faster optimized implementation.
|
|
|
|
| |
typically has a much faster optimized implementation.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[Modified from the original email by Siddhesh Poyarekar]
This patch solves bug #16009 by implementing an additional path in
strxfrm that does not depend on caching the weight and rule indices.
In detail the following changed:
* The old main loop was factored out of strxfrm_l into the function
do_xfrm_cached to be able to alternativly use the non-caching version
do_xfrm.
* strxfrm_l allocates a a fixed size array on the stack. If this is not
sufficiant to store the weight and rule indices, the non-caching path is
taken. As the cache size is not dependent on the input there can be no
problems with integer overflows or stack allocations greater than
__MAX_ALLOCA_CUTOFF. Note that malloc-ing is not possible because the
definition of strxfrm does not allow an oom errorhandling.
* The uncached path determines the weight and rule index for every char
and for every pass again.
* Passing all the locale data array by array resulted in very long
parameter lists, so I introduced a structure that holds them.
* Checking for zero src string has been moved a bit upwards, it is
before the locale data initialization now.
* To verify that the non-caching path works correct I added a test run
to localedata/sort-test.sh & localedata/xfrm-test.c where all strings
are patched up with spaces so that they are too large for the caching path.
|
|
|
|
| |
This reverts commit 9300797ee93422a87f443d5ba7e1411167e7a837.
|
| |
|
| |
|
| |
|