mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-11 12:50:58 +08:00
* locale/programs/locarchive.c (add_alias): Change locrec_offset arg
into pointer to locrec_offset. (add_locale_to_archive): Adjust callers. Free normalized_name right before returning, not immediately after add_locale, pass it to add_alias if not NULL instead of name. Rename second normalized_name occurence to nnormalized_codeset_name. 2002-10-21 Andreas Schwab <schwab@suse.de> * sysdeps/unix/sysv/linux/ia64/syscalls.list (s_execve): Set caller to EXTRA instead of execve, since the latter has a higher-priority implementation in linuxthreads.
This commit is contained in:
parent
3a0742f9ac
commit
bd6daf3b19
19
ChangeLog
19
ChangeLog
@ -1,15 +1,22 @@
|
||||
2002-10-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* locale/programs/locarchive.c (add_alias): Change locrec_offset arg
|
||||
into pointer to locrec_offset.
|
||||
(add_locale_to_archive): Adjust callers. Free normalized_name right
|
||||
before returning, not immediately after add_locale, pass it to
|
||||
add_alias if not NULL instead of name. Rename second normalized_name
|
||||
occurence to nnormalized_codeset_name.
|
||||
|
||||
* locale/programs/locarchive.c (enlarge_archive): Make sure
|
||||
string_size is always a multiple of 4.
|
||||
Reported by Andreas Schwab <schwab@suse.de>.
|
||||
|
||||
2002-10-21 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* sysdeps/unix/sysv/linux/ia64/syscalls.list (s_execve): Set
|
||||
caller to EXTRA instead of execve, since the latter has a
|
||||
higher-priority implementation in linuxthreads.
|
||||
|
||||
2002-10-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* locale/programs/locarchive.c (enlarge_archive): Make sure
|
||||
string_size is always a multiple of 4.
|
||||
Reported by Andreas Schwab <schwab@suse.de>.
|
||||
|
||||
2002-10-21 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Initialize the static
|
||||
|
@ -1,3 +1,8 @@
|
||||
2002-10-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* manager.c (pthread_start_thread): Call __uselocale even
|
||||
if [! SHARED]. Patch by Leon Kanter <leon@geon.donetsk.ua>.
|
||||
|
||||
2002-10-17 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* Makefile (unload): Don't link in libpthread.so.
|
||||
|
@ -283,7 +283,7 @@ pthread_start_thread(void *arg)
|
||||
__sched_setscheduler(THREAD_GETMEM(self, p_pid),
|
||||
SCHED_OTHER, &default_params);
|
||||
}
|
||||
#if !(USE_TLS && HAVE___THREAD) && defined SHARED
|
||||
#if !(USE_TLS && HAVE___THREAD)
|
||||
/* Initialize thread-locale current locale to point to the global one.
|
||||
With __thread support, the variable's initializer takes care of this. */
|
||||
__uselocale (LC_GLOBAL_LOCALE);
|
||||
|
@ -586,8 +586,9 @@ insert_name (struct locarhandle *ah,
|
||||
|
||||
static void
|
||||
add_alias (struct locarhandle *ah, const char *alias, bool replace,
|
||||
const char *oldname, uint32_t locrec_offset)
|
||||
const char *oldname, uint32_t *locrec_offset_p)
|
||||
{
|
||||
uint32_t locrec_offset = *locrec_offset_p;
|
||||
struct locarhead *head = ah->addr;
|
||||
const size_t name_len = strlen (alias);
|
||||
struct namehashent *namehashent = insert_name (ah, alias, strlen (alias),
|
||||
@ -610,10 +611,10 @@ add_alias (struct locarhandle *ah, const char *alias, bool replace,
|
||||
namehashent = insert_name (ah, oldname, strlen (oldname), true);
|
||||
assert (namehashent->name_offset != 0);
|
||||
assert (namehashent->locrec_offset != 0);
|
||||
locrec_offset = namehashent->locrec_offset;
|
||||
*locrec_offset_p = namehashent->locrec_offset;
|
||||
|
||||
/* Tail call to try the whole thing again. */
|
||||
add_alias (ah, alias, replace, oldname, locrec_offset);
|
||||
add_alias (ah, alias, replace, oldname, locrec_offset_p);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -935,9 +936,9 @@ add_locale_to_archive (ah, name, data, replace)
|
||||
|
||||
/* This call does the main work. */
|
||||
locrec_offset = add_locale (ah, normalized_name ?: name, data, replace);
|
||||
free (normalized_name);
|
||||
if (locrec_offset == 0)
|
||||
{
|
||||
free (normalized_name);
|
||||
if (mask & XPG_NORM_CODESET)
|
||||
free ((char *) normalized_codeset);
|
||||
return -1;
|
||||
@ -956,17 +957,19 @@ add_locale_to_archive (ah, name, data, replace)
|
||||
} *filedata = data[LC_CTYPE].addr;
|
||||
codeset = (char *) filedata
|
||||
+ filedata->strindex[_NL_ITEM_INDEX (_NL_CTYPE_CODESET_NAME)];
|
||||
char *normalized_codeset_name = NULL;
|
||||
|
||||
normalized_codeset = _nl_normalize_codeset (codeset, strlen (codeset));
|
||||
mask |= XPG_NORM_CODESET;
|
||||
|
||||
asprintf (&normalized_name, "%s%s%s.%s%s%s",
|
||||
asprintf (&normalized_codeset_name, "%s%s%s.%s%s%s",
|
||||
language, territory == NULL ? "" : "_", territory ?: "",
|
||||
normalized_codeset,
|
||||
modifier == NULL ? "" : "@", modifier ?: "");
|
||||
|
||||
add_alias (ah, normalized_name, replace, name, locrec_offset);
|
||||
free (normalized_name);
|
||||
add_alias (ah, normalized_codeset_name, replace,
|
||||
normalized_name ?: name, &locrec_offset);
|
||||
free (normalized_codeset_name);
|
||||
}
|
||||
|
||||
/* Now read the locale.alias files looking for lines whose
|
||||
@ -1064,7 +1067,7 @@ add_locale_to_archive (ah, name, data, replace)
|
||||
&& !strcmp (modifier ?: "", rhs_modifier ?: ""))
|
||||
/* We have a winner. */
|
||||
add_alias (ah, alias, replace,
|
||||
normalized_name ?: name, locrec_offset);
|
||||
normalized_name ?: name, &locrec_offset);
|
||||
if (rhs_mask & XPG_NORM_CODESET)
|
||||
free ((char *) rhs_normalized_codeset);
|
||||
}
|
||||
@ -1086,6 +1089,8 @@ add_locale_to_archive (ah, name, data, replace)
|
||||
fclose (fp);
|
||||
}
|
||||
|
||||
free (normalized_name);
|
||||
|
||||
if (mask & XPG_NORM_CODESET)
|
||||
free ((char *) normalized_codeset);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user