diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-04-21 18:15:51 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-04-21 18:15:51 +0000 |
commit | 5aa8ff620ef68811c5a7dd5d5bbac1c078730a2a (patch) | |
tree | efd66893a0690109dc0898541cfa6d41b0bf5029 /sysdeps/generic | |
parent | 26e119f15e82aa334ad96f74513c4534daf4d35d (diff) | |
download | glibc-5aa8ff620ef68811c5a7dd5d5bbac1c078730a2a.tar glibc-5aa8ff620ef68811c5a7dd5d5bbac1c078730a2a.tar.gz glibc-5aa8ff620ef68811c5a7dd5d5bbac1c078730a2a.tar.bz2 glibc-5aa8ff620ef68811c5a7dd5d5bbac1c078730a2a.zip |
Update.
1998-04-21 18:00 Ulrich Drepper <drepper@cygnus.com>
* iconv/gconv.c (__gconv): Remove bogus input buffer size computation.
* iconv/gconv_open.c (__gconv_open): Initialize outbufend element.
* iconv/gconv_simple.c (__gconv_transform_internal_ascii): Don't use
character in comparison with uint32_t.
(__gconv_transform_internal_utf8): Specify MAX_NEEDED_TO.
(__gconv_transform_utf8_internal): Specify MAX_NEEDED_FROM.
Optimize BODY a bit.
* iconv/loop.c: Require MIN_NEEDED_INPUT and MIN_NEEDED_OUTPUT to
be defined.
* iconv/skeleton.c: Also reset converted counter in case of an error.
Call reset function using correct value for output buffer start.
* iconvdata/Makefile: Re-enable tests.
* iconvdata/iso8859-1.c: Swap MIN_NEEDED_INPUT and MIN_NEEDED_OUTPUT
value for to-conversion.
* iconvdata/TESTS: Add new third column.
* iconvdata/run-iconv-test.sh: Add support for charsets which are
not ASCII based.
* iconvdata/testdata/suntzus: New file.
* elf/dl-minimal.c (__strtol_internal): Increment pointer to string
while reading. Correctly used base. Little optimization.
(__strtoul_internal): Likewise.
* elf/rtld.c (dl_main): Test to avoid duplicate call of _dl_init_paths
was wrong. Use explicit variable.
1998-04-20 23:49 Zack Weinberg <zack@rabi.phys.columbia.edu>
* configure.in: Check for awk.
* config.make.in: Add AWK to be substituted.
* manual/xtract-typefun.awk: Rewrite to eliminate gawk extensions.
* manual/users.texi: Fix typo exposed by above rewrite.
* Makefile: Invoke awk using AWK variable.
* csu/Makefile: Likewise.
* elf/Makefile: Likewise.
* mach/Makefile: Likewise.
* manual/Makefile: Likewise.
* sysdeps/gnu/Makefile: Likewise.
* sysdeps/mach/hurd/Makefile: Likewise.
* sysdeps/unix/Makefile: Likewise.
* timezone/Makefile: Likewise.
1998-04-10 Gordon Matzigkeit <gord@profitpress.com>
* sysdeps/gnu/errlist.awk (ERR_REMAP): Implement error code to
array index translation.
(SYS_ERRLIST_ALIAS, SYS_NERR_ALIAS): Make weak aliases only if
these are defined.
* sysdeps/mach/hurd/Dist: Add errlist.c to distribution.
* sysdeps/mach/hurd/errlist.c: New file.
(ERR_TRANSLATE): Map Hurd error codes into errlist indices.
(_hurd_errlist): The Hurd error list doesn't have Unix sys_errlist
semantics, so rename it.
1998-04-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* iconvdata/run-iconv-test.sh: Make portable. Always test all
conversions.
1998-04-21 12:30 H.J. Lu <hjl@gnu.org>
* wcsmbs/wcsrtombs.c (__wcsrtombs): Initialize result to 0.
* wcsmbs/wcsnrtombs.c: Likewise.
1998-04-21 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-sysdep.c: Handle _dl_hwcap correctly.
* wcsmbs/btowc.c (__btowc): Declare inptr as const char *.
* time/strftime.c (my_strftime): Initialize pad variable in
declaration.
* iconvdata/big5.c: Don't use character constants in comparisons
with unsigned value.
* sysdeps/generic/setutxent.c: New file.
* sysdeps/generic/getutxent.c: New file.
* sysdeps/generic/endutxent.c: New file.
* sysdeps/generic/getutxid.c: New file.
* sysdeps/generic/getutxline.c: New file.
* sysdeps/generic/pututxline.c: New file.
* sysdeps/generic/utmpxname.c: New file.
* sysdeps/generic/updwtmpx.c: New file.
Diffstat (limited to 'sysdeps/generic')
-rw-r--r-- | sysdeps/generic/dl-sysdep.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/sysdeps/generic/dl-sysdep.c b/sysdeps/generic/dl-sysdep.c index 58c093e268..90beb8f269 100644 --- a/sysdeps/generic/dl-sysdep.c +++ b/sysdeps/generic/dl-sysdep.c @@ -38,7 +38,7 @@ extern char **_dl_argv; extern char **_environ; extern size_t _dl_pagesize; extern const char *_dl_platform; -extern unsigned long _dl_hwcap; +extern unsigned long int _dl_hwcap; extern size_t _dl_platformlen; extern void _end; extern void ENTRY_POINT (void); @@ -48,7 +48,6 @@ int __libc_enable_secure; int __libc_multiple_libcs; /* Defining this here avoids the inclusion of init-first. */ static ElfW(auxv_t) *_dl_auxv; -static unsigned long int hwcap; unsigned long int _dl_hwcap_mask = HWCAP_IMPORTANT; @@ -241,10 +240,11 @@ _dl_show_auxv (void) _dl_sysdep_message ("AT_PLATFORM: ", av->a_un.a_ptr, "\n", NULL); break; case AT_HWCAP: - hwcap = av->a_un.a_val; - if (_dl_procinfo (hwcap) < 0) + _dl_hwcap = av->a_un.a_val; + if (_dl_procinfo (_dl_hwcap) < 0) _dl_sysdep_message ("AT_HWCAP: ", - _itoa_word (hwcap, buf + sizeof buf - 1, 16, 0), + _itoa_word (_dl_hwcap, buf + sizeof buf - 1, + 16, 0), "\n", NULL); break; } @@ -284,7 +284,7 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz, size_t *max_capstrlen) { /* Determine how many important bits are set. */ - unsigned long int mask = _dl_hwcap_mask; + unsigned long int masked = _dl_hwcap & _dl_hwcap_mask; size_t cnt = platform != NULL; size_t n, m; size_t total; @@ -293,8 +293,9 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz, struct r_strlenpair *rp; char *cp; - for (n = 0; (~((1UL << n) - 1) & mask) != 0; ++n) - if ((mask & (1UL << n)) != 0) + /* Count the number of bits set in the masked value. */ + for (n = 0; (~((1UL << n) - 1) & masked) != 0; ++n) + if ((masked & (1UL << n)) != 0) ++cnt; if (cnt == 0) @@ -318,12 +319,12 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz, /* Create temporary data structure to generate result table. */ temp = (struct r_strlenpair *) alloca (cnt * sizeof (*temp)); m = 0; - for (n = 0; mask != 0; ++n) - if ((mask & (1UL << n)) != 0) + for (n = 0; masked != 0; ++n) + if ((masked & (1UL << n)) != 0) { temp[m].str = _dl_hwcap_string (n); temp[m].len = strlen (temp[m].str); - mask ^= 1UL << n; + masked ^= 1UL << n; ++m; } if (platform != NULL) |