aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-11-22 07:29:27 +0000
committerUlrich Drepper <drepper@redhat.com>2003-11-22 07:29:27 +0000
commitcb2eab1f8a11ad4e3e69b89a82a73435f0fa4983 (patch)
treeb9a7e57ccdbd3baf85b2286fb51893b883e75b00
parentc5c9c929bf093f83292d75fe72268dafa73161df (diff)
downloadglibc-cb2eab1f8a11ad4e3e69b89a82a73435f0fa4983.zip
glibc-cb2eab1f8a11ad4e3e69b89a82a73435f0fa4983.tar.gz
glibc-cb2eab1f8a11ad4e3e69b89a82a73435f0fa4983.tar.bz2
Update.
* locale/programs/charmap.c (charmap_read): If encoding is found not ASCII compatible, set enc_not_ascii_compatible. * locale/programs/charmap.h: Declare enc_not_ascii_compatible. * locale/programs/ld-ctype.c (ctype_startup): If enc_not_ascii_compatible is set, initialize to_nonascii to 1. 2003-11-22 Jakub Jelinek <jakub@redhat.com> * elf/rtld.c (process_envvars): Only honor LD_USE_LOAD_BIAS if !__libc_enable_secure. * sysdeps/generic/ldsodefs.h (_dl_use_load_bias): New _rtld_global field. * elf/rtld.c (_rtld_global): Initialize _dl_use_load_bias field. (dl_main): Set GL(dl_use_load_bias) default. (process_envvars): Set GL(dl_use_load_bias) from LD_USE_LOAD_BIAS. Add EXTRA_LD_ENVVARS_13. * elf/dl-support.c (_dl_use_load_bias): New variable. * elf/dl-load.c (_dl_map_object_from_fd): Mask c->mapstart with GL(dl_use_load_bias). * sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add LD_USE_LOAD_BIAS. * sysdeps/unix/sysv/linux/dl-librecon.h (EXTRA_LD_ENVVARS): Remove. (EXTRA_LD_ENVVARS_LINUX): Renamed to... (EXTRA_LD_ENVVARS_13): ... this. Remove case at the beginning. * sysdeps/unix/sysv/linux/i386/dl-librecon.h (EXTRA_LD_ENVVARS): Don't undefine first. Remove EXTRA_LD_ENVVARS_LINUX. 2003-11-21 Ulrich Drepper <drepper@redhat.com>
-rw-r--r--ChangeLog30
-rw-r--r--locale/programs/charmap.c14
-rw-r--r--locale/programs/charmap.h7
-rw-r--r--locale/programs/ld-ctype.c3
4 files changed, 48 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 6fee041..7a2bc97 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,35 @@
2003-11-21 Ulrich Drepper <drepper@redhat.com>
+ * locale/programs/charmap.c (charmap_read): If encoding is found
+ not ASCII compatible, set enc_not_ascii_compatible.
+ * locale/programs/charmap.h: Declare enc_not_ascii_compatible.
+ * locale/programs/ld-ctype.c (ctype_startup): If
+ enc_not_ascii_compatible is set, initialize to_nonascii to 1.
+
+2003-11-22 Jakub Jelinek <jakub@redhat.com>
+
+ * elf/rtld.c (process_envvars): Only honor LD_USE_LOAD_BIAS
+ if !__libc_enable_secure.
+
+ * sysdeps/generic/ldsodefs.h (_dl_use_load_bias): New _rtld_global
+ field.
+ * elf/rtld.c (_rtld_global): Initialize _dl_use_load_bias field.
+ (dl_main): Set GL(dl_use_load_bias) default.
+ (process_envvars): Set GL(dl_use_load_bias) from LD_USE_LOAD_BIAS.
+ Add EXTRA_LD_ENVVARS_13.
+ * elf/dl-support.c (_dl_use_load_bias): New variable.
+ * elf/dl-load.c (_dl_map_object_from_fd): Mask c->mapstart
+ with GL(dl_use_load_bias).
+ * sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add
+ LD_USE_LOAD_BIAS.
+ * sysdeps/unix/sysv/linux/dl-librecon.h (EXTRA_LD_ENVVARS): Remove.
+ (EXTRA_LD_ENVVARS_LINUX): Renamed to...
+ (EXTRA_LD_ENVVARS_13): ... this. Remove case at the beginning.
+ * sysdeps/unix/sysv/linux/i386/dl-librecon.h (EXTRA_LD_ENVVARS):
+ Don't undefine first. Remove EXTRA_LD_ENVVARS_LINUX.
+
+2003-11-21 Ulrich Drepper <drepper@redhat.com>
+
* posix/regcomp.c (duplicate_node): Remove unnecessary local variable.
* posix/regcomp.c (re_dfa_add_tree_node): Make fourth parameter a
diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c
index 8612d99..8c9e4e9 100644
--- a/locale/programs/charmap.c
+++ b/locale/programs/charmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1998-2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
@@ -25,7 +25,6 @@
#include <errno.h>
#include <libintl.h>
#include <limits.h>
-#include <obstack.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -35,7 +34,6 @@
#include "linereader.h"
#include "charmap.h"
#include "charmap-dir.h"
-#include "repertoire.h"
#include <assert.h>
@@ -55,6 +53,9 @@ static void charmap_new_char (struct linereader *lr, struct charmap_t *cm,
const char *to, int decimal_ellipsis, int step);
+bool enc_not_ascii_compatible;
+
+
#ifdef NEED_NULL_POINTER
static const char *null_pointer;
#endif
@@ -252,9 +253,12 @@ default character map file `%s' not found"), DEFAULT_CHARMAP));
while (*p++ != '\0');
if (failed)
- WITH_CUR_LOCALE (fprintf (stderr, _("\
+ {
+ WITH_CUR_LOCALE (fprintf (stderr, _("\
character map `%s' is not ASCII compatible, locale not ISO C compliant\n"),
- result->code_set_name));
+ result->code_set_name));
+ enc_not_ascii_compatible = true;
+ }
}
return result;
diff --git a/locale/programs/charmap.h b/locale/programs/charmap.h
index f4ca3ab..a4a6d38 100644
--- a/locale/programs/charmap.h
+++ b/locale/programs/charmap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1999, 2001, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
@@ -21,6 +21,7 @@
#define _CHARMAP_H
#include <obstack.h>
+#include <stdbool.h>
#include "repertoire.h"
#include "simple-hash.h"
@@ -64,6 +65,10 @@ struct charseq
};
+/* True if the encoding is not ASCII compatible. */
+extern bool enc_not_ascii_compatible;
+
+
/* Prototypes for charmap handling functions. */
extern struct charmap_t *charmap_read (const char *filename, int verbose,
int be_quiet, int use_default);
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index 4998682..ca2ca1e 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -340,6 +340,9 @@ ctype_startup (struct linereader *lr, struct localedef_t *locale,
ctype->map256_collection[1][cnt] = cnt;
}
+ if (enc_not_ascii_compatible)
+ ctype->to_nonascii = 1;
+
obstack_init (&ctype->mempool);
}
else