mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00: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>
|
2002-04-30 Roland McGrath <roland@frob.com>
|
||||||
|
|
||||||
Removed old GNU stdio implementation; GNU libio is now the only option.
|
Removed old GNU stdio implementation; GNU libio is now the only option.
|
||||||
|
@ -19,9 +19,6 @@ libc {
|
|||||||
textdomain;
|
textdomain;
|
||||||
}
|
}
|
||||||
GLIBC_2.2 {
|
GLIBC_2.2 {
|
||||||
# functions used in inline functions or macros
|
|
||||||
__dcngettext;
|
|
||||||
|
|
||||||
# b*
|
# b*
|
||||||
bind_textdomain_codeset;
|
bind_textdomain_codeset;
|
||||||
|
|
||||||
|
@ -57,6 +57,5 @@ DCNGETTEXT (domainname, msgid1, msgid2, n, category)
|
|||||||
|
|
||||||
#ifdef _LIBC
|
#ifdef _LIBC
|
||||||
/* Alias for function name in GNU C Library. */
|
/* Alias for function name in GNU C Library. */
|
||||||
INTDEF(__dcngettext)
|
|
||||||
weak_alias (__dcngettext, dcngettext);
|
weak_alias (__dcngettext, dcngettext);
|
||||||
#endif
|
#endif
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
prefix. So we have to make a difference here. */
|
prefix. So we have to make a difference here. */
|
||||||
#ifdef _LIBC
|
#ifdef _LIBC
|
||||||
# define DNGETTEXT __dngettext
|
# define DNGETTEXT __dngettext
|
||||||
# define DCNGETTEXT INTUSE(__dcngettext)
|
# define DCNGETTEXT __dcngettext
|
||||||
#else
|
#else
|
||||||
# define DNGETTEXT dngettext__
|
# define DNGETTEXT dngettext__
|
||||||
# define DCNGETTEXT dcngettext__
|
# define DCNGETTEXT dcngettext__
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
prefix. So we have to make a difference here. */
|
prefix. So we have to make a difference here. */
|
||||||
#ifdef _LIBC
|
#ifdef _LIBC
|
||||||
# define NGETTEXT __ngettext
|
# define NGETTEXT __ngettext
|
||||||
# define DCNGETTEXT INTUSE(__dcngettext)
|
# define DCNGETTEXT __dcngettext
|
||||||
#else
|
#else
|
||||||
# define NGETTEXT ngettext__
|
# define NGETTEXT ngettext__
|
||||||
# define DCNGETTEXT dcngettext__
|
# 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>
|
2002-04-08 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* sysdeps/pthread/timer_getoverr.c: Return real overrun.
|
* 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
|
else
|
||||||
{
|
{
|
||||||
lr_error (ldfile, _("%s: bad symbol <%.*s>"), "LC_COLLATE",
|
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);
|
ldfile->token.val.str.startmb);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -45,8 +45,9 @@
|
|||||||
#include "simple-hash.h"
|
#include "simple-hash.h"
|
||||||
#include "localedef.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[] =
|
static const char *locnames[] =
|
||||||
{
|
{
|
||||||
@ -65,14 +66,16 @@ static const char *locnames[] =
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
create_archive (struct locarhandle *ah)
|
create_archive (const char *archivefname, struct locarhandle *ah)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
char fname[] = LOCALEDIR "/locale-archive.XXXXXX";
|
char fname[strlen (archivefname) + sizeof (".XXXXXX")];
|
||||||
struct locarhead head;
|
struct locarhead head;
|
||||||
void *p;
|
void *p;
|
||||||
size_t total;
|
size_t total;
|
||||||
|
|
||||||
|
strcpy (stpcpy (fname, archivefname), ".XXXXXX");
|
||||||
|
|
||||||
/* Create a temporary file in the correct directory. */
|
/* Create a temporary file in the correct directory. */
|
||||||
fd = mkstemp (fname);
|
fd = mkstemp (fname);
|
||||||
if (fd == -1)
|
if (fd == -1)
|
||||||
@ -169,7 +172,6 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
|
|||||||
{
|
{
|
||||||
struct stat64 st;
|
struct stat64 st;
|
||||||
int fd;
|
int fd;
|
||||||
char fname[] = LOCALEDIR "/locale-archive.XXXXXX";
|
|
||||||
struct locarhead newhead;
|
struct locarhead newhead;
|
||||||
size_t total;
|
size_t total;
|
||||||
void *p;
|
void *p;
|
||||||
@ -177,6 +179,14 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
|
|||||||
struct namehashent *oldnamehashtab;
|
struct namehashent *oldnamehashtab;
|
||||||
struct locrecent *oldlocrectab;
|
struct locrecent *oldlocrectab;
|
||||||
struct locarhandle new_ah;
|
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
|
/* Not all of the old file has to be mapped. Change this now this
|
||||||
we will have to access the whole content. */
|
we will have to access the whole content. */
|
||||||
@ -331,6 +341,12 @@ open_archive (struct locarhandle *ah)
|
|||||||
int fd;
|
int fd;
|
||||||
struct locarhead head;
|
struct locarhead head;
|
||||||
int retry = 0;
|
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:
|
again:
|
||||||
/* Open the archive. We must have exclusive write access. */
|
/* 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. */
|
/* Maybe the file does not yet exist. */
|
||||||
if (errno == ENOENT)
|
if (errno == ENOENT)
|
||||||
{
|
{
|
||||||
create_archive (ah);
|
create_archive (archivefname, ah);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -711,11 +727,8 @@ add_locales_to_archive (nlist, list, replace)
|
|||||||
directory and it therefore must contain a
|
directory and it therefore must contain a
|
||||||
regular file with the same name except a
|
regular file with the same name except a
|
||||||
"SYS_" prefix. */
|
"SYS_" prefix. */
|
||||||
strcpy (stpcpy (stpcpy (stpcpy (stpcpy (fullname,
|
char *t = stpcpy (stpcpy (fullname, fname), "/");
|
||||||
fname),
|
strcpy (stpcpy (stpcpy (t, d->d_name), "/SYS_"),
|
||||||
"/"),
|
|
||||||
d->d_name),
|
|
||||||
"/SYS_"),
|
|
||||||
d->d_name);
|
d->d_name);
|
||||||
|
|
||||||
if (stat64 (fullname, &st) == -1)
|
if (stat64 (fullname, &st) == -1)
|
||||||
@ -765,11 +778,10 @@ add_locales_to_archive (nlist, list, replace)
|
|||||||
|
|
||||||
if (S_ISDIR (st.st_mode))
|
if (S_ISDIR (st.st_mode))
|
||||||
{
|
{
|
||||||
|
char *t;
|
||||||
close (fd);
|
close (fd);
|
||||||
strcpy (stpcpy (stpcpy (stpcpy (stpcpy (fullname, fname),
|
t = stpcpy (stpcpy (fullname, fname), "/");
|
||||||
"/"),
|
strcpy (stpcpy (stpcpy (t, locnames[cnt]), "/SYS_"),
|
||||||
locnames[cnt]),
|
|
||||||
"/SYS_"),
|
|
||||||
locnames[cnt]);
|
locnames[cnt]);
|
||||||
|
|
||||||
fd = open64 (fullname, O_RDONLY);
|
fd = open64 (fullname, O_RDONLY);
|
||||||
|
Loading…
Reference in New Issue
Block a user