about summary refs log tree commit diff
path: root/locale/programs
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 /locale/programs
parentc5c9c929bf093f83292d75fe72268dafa73161df (diff)
downloadglibc-cb2eab1f8a11ad4e3e69b89a82a73435f0fa4983.tar.gz
glibc-cb2eab1f8a11ad4e3e69b89a82a73435f0fa4983.tar.xz
glibc-cb2eab1f8a11ad4e3e69b89a82a73435f0fa4983.zip
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>
Diffstat (limited to 'locale/programs')
-rw-r--r--locale/programs/charmap.c14
-rw-r--r--locale/programs/charmap.h7
-rw-r--r--locale/programs/ld-ctype.c3
3 files changed, 18 insertions, 6 deletions
diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c
index 8612d99688..8c9e4e9abb 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 f4ca3abe6c..a4a6d3833b 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 499868237b..ca2ca1eaca 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