mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-26 19:23:34 +08:00
Update.
2002-04-30 Jakub Jelinek <jakub@redhat.com> * locale/programs/locarchive.c (create_archive): Add archivefname argument, create fname from it. (enlarge_archive): Honour output_prefix. (open_archive): Likewise. 2002-04-30 Jakub Jelinek <jakub@redhat.com> * locale/programs/locarchive.c (add_locales_to_archive): Don't nest too many stpcpy macros. 2002-04-26 Bruno Haible <bruno@clisp.org> * locale/programs/ld-collate.c (collate_read): Cast first argument for "%.*s" to int. 2002-04-26 Bruno Haible <bruno@clisp.org> * include/libintl.h (__ngettext, __dngettext, __dcngettext, __dcngettext_internal): New declarations. (__gettext, __dgettext, __dcgettext, __dcgettext_internal): Add attribute declarations.
This commit is contained in:
parent
3e992afaaf
commit
531bafd8a6
24
ChangeLog
24
ChangeLog
@ -1,3 +1,27 @@
|
||||
2002-04-30 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* locale/programs/locarchive.c (create_archive): Add archivefname
|
||||
argument, create fname from it.
|
||||
(enlarge_archive): Honour output_prefix.
|
||||
(open_archive): Likewise.
|
||||
|
||||
2002-04-30 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* locale/programs/locarchive.c (add_locales_to_archive): Don't nest
|
||||
too many stpcpy macros.
|
||||
|
||||
2002-04-26 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
* locale/programs/ld-collate.c (collate_read): Cast first argument
|
||||
for "%.*s" to int.
|
||||
|
||||
2002-04-26 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
* include/libintl.h (__ngettext, __dngettext, __dcngettext,
|
||||
__dcngettext_internal): New declarations.
|
||||
(__gettext, __dgettext, __dcgettext, __dcgettext_internal): Add
|
||||
attribute declarations.
|
||||
|
||||
2002-04-30 Roland McGrath <roland@frob.com>
|
||||
|
||||
Removed old GNU stdio implementation; GNU libio is now the only option.
|
||||
|
@ -19,9 +19,6 @@ libc {
|
||||
textdomain;
|
||||
}
|
||||
GLIBC_2.2 {
|
||||
# functions used in inline functions or macros
|
||||
__dcngettext;
|
||||
|
||||
# b*
|
||||
bind_textdomain_codeset;
|
||||
|
||||
|
@ -57,6 +57,5 @@ DCNGETTEXT (domainname, msgid1, msgid2, n, category)
|
||||
|
||||
#ifdef _LIBC
|
||||
/* Alias for function name in GNU C Library. */
|
||||
INTDEF(__dcngettext)
|
||||
weak_alias (__dcngettext, dcngettext);
|
||||
#endif
|
||||
|
@ -38,7 +38,7 @@
|
||||
prefix. So we have to make a difference here. */
|
||||
#ifdef _LIBC
|
||||
# define DNGETTEXT __dngettext
|
||||
# define DCNGETTEXT INTUSE(__dcngettext)
|
||||
# define DCNGETTEXT __dcngettext
|
||||
#else
|
||||
# define DNGETTEXT dngettext__
|
||||
# define DCNGETTEXT dcngettext__
|
||||
|
@ -45,7 +45,7 @@
|
||||
prefix. So we have to make a difference here. */
|
||||
#ifdef _LIBC
|
||||
# define NGETTEXT __ngettext
|
||||
# define DCNGETTEXT INTUSE(__dcngettext)
|
||||
# define DCNGETTEXT __dcngettext
|
||||
#else
|
||||
# define NGETTEXT ngettext__
|
||||
# define DCNGETTEXT dcngettext__
|
||||
|
@ -1,3 +1,7 @@
|
||||
2002-04-30 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
|
||||
|
||||
2002-04-08 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* sysdeps/pthread/timer_getoverr.c: Return real overrun.
|
||||
|
9
linuxthreads/sysdeps/unix/sysv/linux/x86_64/Makefile
Normal file
9
linuxthreads/sysdeps/unix/sysv/linux/x86_64/Makefile
Normal file
@ -0,0 +1,9 @@
|
||||
ifeq ($(subdir),linuxthreads)
|
||||
# gcc -m64 has /usr/lib64/crti.o hardcoded in the specs file, because otherwise
|
||||
# it would normally find 32bit crti.o.
|
||||
LDFLAGS-pthread.so += -specs=$(objpfx)specs
|
||||
before-compile += $(objpfx)specs
|
||||
generated += specs
|
||||
$(objpfx)specs:
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) -dumpspecs | sed 's_/usr/lib64/crti.o_crti.o_g' > $@
|
||||
endif
|
@ -3505,7 +3505,7 @@ error while adding equivalent collating symbol"));
|
||||
else
|
||||
{
|
||||
lr_error (ldfile, _("%s: bad symbol <%.*s>"), "LC_COLLATE",
|
||||
ldfile->token.val.str.lenmb,
|
||||
(int) ldfile->token.val.str.lenmb,
|
||||
ldfile->token.val.str.startmb);
|
||||
break;
|
||||
}
|
||||
|
@ -45,8 +45,9 @@
|
||||
#include "simple-hash.h"
|
||||
#include "localedef.h"
|
||||
|
||||
extern const char *output_prefix;
|
||||
|
||||
static const char archivefname[] = LOCALEDIR "/locale-archive";
|
||||
#define ARCHIVE_NAME LOCALEDIR "/locale-archive"
|
||||
|
||||
static const char *locnames[] =
|
||||
{
|
||||
@ -65,14 +66,16 @@ static const char *locnames[] =
|
||||
|
||||
|
||||
static void
|
||||
create_archive (struct locarhandle *ah)
|
||||
create_archive (const char *archivefname, struct locarhandle *ah)
|
||||
{
|
||||
int fd;
|
||||
char fname[] = LOCALEDIR "/locale-archive.XXXXXX";
|
||||
char fname[strlen (archivefname) + sizeof (".XXXXXX")];
|
||||
struct locarhead head;
|
||||
void *p;
|
||||
size_t total;
|
||||
|
||||
strcpy (stpcpy (fname, archivefname), ".XXXXXX");
|
||||
|
||||
/* Create a temporary file in the correct directory. */
|
||||
fd = mkstemp (fname);
|
||||
if (fd == -1)
|
||||
@ -169,7 +172,6 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
|
||||
{
|
||||
struct stat64 st;
|
||||
int fd;
|
||||
char fname[] = LOCALEDIR "/locale-archive.XXXXXX";
|
||||
struct locarhead newhead;
|
||||
size_t total;
|
||||
void *p;
|
||||
@ -177,6 +179,14 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
|
||||
struct namehashent *oldnamehashtab;
|
||||
struct locrecent *oldlocrectab;
|
||||
struct locarhandle new_ah;
|
||||
size_t prefix_len = output_prefix ? strlen (output_prefix) : 0;
|
||||
char archivefname[prefix_len + sizeof (ARCHIVE_NAME)];
|
||||
char fname[prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1];
|
||||
|
||||
if (output_prefix)
|
||||
memcpy (archivefname, output_prefix, prefix_len);
|
||||
strcpy (archivefname + prefix_len, ARCHIVE_NAME);
|
||||
strcpy (stpcpy (fname, archivefname), ".XXXXXX");
|
||||
|
||||
/* Not all of the old file has to be mapped. Change this now this
|
||||
we will have to access the whole content. */
|
||||
@ -331,6 +341,12 @@ open_archive (struct locarhandle *ah)
|
||||
int fd;
|
||||
struct locarhead head;
|
||||
int retry = 0;
|
||||
size_t prefix_len = output_prefix ? strlen (output_prefix) : 0;
|
||||
char archivefname[prefix_len + sizeof (ARCHIVE_NAME)];
|
||||
|
||||
if (output_prefix)
|
||||
memcpy (archivefname, output_prefix, prefix_len);
|
||||
strcpy (archivefname + prefix_len, ARCHIVE_NAME);
|
||||
|
||||
again:
|
||||
/* Open the archive. We must have exclusive write access. */
|
||||
@ -340,7 +356,7 @@ open_archive (struct locarhandle *ah)
|
||||
/* Maybe the file does not yet exist. */
|
||||
if (errno == ENOENT)
|
||||
{
|
||||
create_archive (ah);
|
||||
create_archive (archivefname, ah);
|
||||
return;
|
||||
}
|
||||
else
|
||||
@ -711,11 +727,8 @@ add_locales_to_archive (nlist, list, replace)
|
||||
directory and it therefore must contain a
|
||||
regular file with the same name except a
|
||||
"SYS_" prefix. */
|
||||
strcpy (stpcpy (stpcpy (stpcpy (stpcpy (fullname,
|
||||
fname),
|
||||
"/"),
|
||||
d->d_name),
|
||||
"/SYS_"),
|
||||
char *t = stpcpy (stpcpy (fullname, fname), "/");
|
||||
strcpy (stpcpy (stpcpy (t, d->d_name), "/SYS_"),
|
||||
d->d_name);
|
||||
|
||||
if (stat64 (fullname, &st) == -1)
|
||||
@ -765,11 +778,10 @@ add_locales_to_archive (nlist, list, replace)
|
||||
|
||||
if (S_ISDIR (st.st_mode))
|
||||
{
|
||||
char *t;
|
||||
close (fd);
|
||||
strcpy (stpcpy (stpcpy (stpcpy (stpcpy (fullname, fname),
|
||||
"/"),
|
||||
locnames[cnt]),
|
||||
"/SYS_"),
|
||||
t = stpcpy (stpcpy (fullname, fname), "/");
|
||||
strcpy (stpcpy (stpcpy (t, locnames[cnt]), "/SYS_"),
|
||||
locnames[cnt]);
|
||||
|
||||
fd = open64 (fullname, O_RDONLY);
|
||||
|
Loading…
Reference in New Issue
Block a user