Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 17 Feb 2004 02:35:52 +0000 (02:35 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 17 Feb 2004 02:35:52 +0000 (02:35 +0000)
* elf/rtld.c (dl_main): Don't fail execution if file named in
ld.so.preload is not present.

ChangeLog
elf/rtld.c
localedata/ChangeLog
localedata/locales/tr_TR

index aaea3baebd43e1ce0dfc85751a0c0407ec4a9fe0..4842a71b71e2b59eda198339b4bcafa65f6f525f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2004-02-16  Ulrich Drepper  <drepper@redhat.com>
 
+       * elf/rtld.c (dl_main): Don't fail execution if file named in
+       ld.so.preload is not present.
+
        * sysdeps/posix/getaddrinfo.c (getaddrinfo): Undo unintended
        changes in last patch.
 
index e0f9f28944c15c84708be1ace91e02b3b5f9e10e..f988dd451989e7085e132dc7f774179af7d46b7e 100644 (file)
@@ -514,8 +514,11 @@ struct map_args
 {
   /* Argument to map_doit.  */
   char *str;
+  struct link_map *loader;
+  int is_preloaded;
+  int mode;
   /* Return value of map_doit.  */
-  struct link_map *main_map;
+  struct link_map *map;
 };
 
 /* Arguments to version_check_doit.  */
@@ -537,8 +540,9 @@ static void
 map_doit (void *a)
 {
   struct map_args *args = (struct map_args *) a;
-  args->main_map = INTUSE(_dl_map_object) (NULL, args->str, 0, lt_library, 0,
-                                          __RTLD_OPENEXEC);
+  args->map = INTUSE(_dl_map_object) (args->loader, args->str,
+                                     args->is_preloaded, lt_library, 0,
+                                     args->mode);
 }
 
 static void
@@ -798,6 +802,9 @@ of this helper program; chances are you did not intend to run this program.\n\
          struct map_args args;
 
          args.str = rtld_progname;
+         args.loader = NULL;
+         args.is_preloaded = 0;
+         args.mode = __RTLD_OPENEXEC;
          (void) INTUSE(_dl_catch_error) (&objname, &err_str, map_doit, &args);
          if (__builtin_expect (err_str != NULL, 0))
            /* We don't free the returned string, the programs stops
@@ -1084,7 +1091,8 @@ of this helper program; chances are you did not intend to run this program.\n\
     }
 
   /* Read the contents of the file.  */
-  file = _dl_sysdep_read_whole_file ("/etc/ld.so.preload", &file_size,
+  const char preload_file[] = "/etc/ld.so.preload";
+  file = _dl_sysdep_read_whole_file (preload_file, &file_size,
                                     PROT_READ | PROT_WRITE);
   if (__builtin_expect (file != MAP_FAILED, 0))
     {
@@ -1139,11 +1147,26 @@ of this helper program; chances are you did not intend to run this program.\n\
          while ((p = strsep (&runp, ": \t\n")) != NULL)
            if (p[0] != '\0')
              {
-               struct link_map *new_map = INTUSE(_dl_map_object) (GL(dl_loaded),
-                                                                  p, 1,
-                                                                  lt_library,
-                                                                  0, 0);
-               if (++new_map->l_opencount == 1)
+               const char *objname;
+               const char *err_str = NULL;
+               struct map_args args;
+
+               args.str = p;
+               args.loader = GL(dl_loaded);
+               args.is_preloaded = 1;
+               args.mode = 0;
+
+               (void) INTUSE(_dl_catch_error) (&objname, &err_str, map_doit,
+                                               &args);
+               if (__builtin_expect (err_str != NULL, 0))
+                 {
+                   _dl_error_printf ("\
+ERROR: ld.so: object '%s' from %s cannot be preloaded: ignored.\n",
+                                     p, preload_file);
+                   /* No need to call free, this is still before the libc's
+                      malloc is used.  */
+                 }
+               else if (++args.map->l_opencount == 1)
                  /* It is no duplicate.  */
                  ++npreloads;
              }
index fdf57ad59ef85ec496c2a2e71f9a9b3552277c2f..e0cf9bd3080435bc66eef001c93944814495f877 100644 (file)
@@ -1,3 +1,8 @@
+2004-02-16  Ulrich Drepper  <drepper@redhat.com>
+
+       * locales/tr_TR: Correct sorting order of the normal and dotless I
+       [BZ #19].
+
 2004-02-09  Ulrich Drepper  <drepper@redhat.com>
 
        * locales/fa_IR: Add to_outpunct info and change decimal_point and
index 6673ec5b7a432e377171d53cb54df9d12973eb10..44fee7994130b0fcf9d890089b3b59434db389e8 100644 (file)
@@ -1132,9 +1132,9 @@ UNDEFINED IGNORE;IGNORE;IGNORE
 <U1E1F>        <U0046>;<DOT>;<SMALL>;IGNORE
 <f8>
 <UFB00>        "<U0046><U0046>";"<NONE><NONE>";"<UFB00><UFB00>";IGNORE
-<UFB01>        "<U0046><U0049>";"<NONE><NONE>";"<UFB01><UFB01>";IGNORE
+<UFB01>        "<U0046><U0069>";"<NONE><NONE>";"<UFB01><UFB01>";IGNORE
 <UFB02>        "<U0046><U004C>";"<NONE><NONE>";"<UFB02><UFB02>";IGNORE
-<UFB03>        "<U0046><U0046><U0049>";"<NONE><NONE><NONE>";"<UFB03><UFB03><UFB03>";IGNORE
+<UFB03>        "<U0046><U0046><U0069>";"<NONE><NONE><NONE>";"<UFB03><UFB03><UFB03>";IGNORE
 <UFB04>        "<U0046><U0046><U004C>";"<NONE><NONE><NONE>";"<UFB04><UFB04><UFB04>";IGNORE
 <U0047>        <U0047>;<NONE>;<CAPITAL>;IGNORE
 <U0067>        <U0047>;<NONE>;<SMALL>;IGNORE
@@ -1174,41 +1174,41 @@ UNDEFINED       IGNORE;IGNORE;IGNORE
 <h8>
 <U0049>        <U0131>;<NONE>;<CAPITAL>;IGNORE
 <U0131>        <U0131>;<NONE>;<SMALL>;IGNORE
-<U0130>        <U0049>;<NONE>;<CAPITAL>;IGNORE
-<U0069>        <U0049>;<NONE>;<SMALL>;IGNORE
-<U00CD>        <U0049>;<ACUTE>;<CAPITAL>;IGNORE
-<U00ED>        <U0049>;<ACUTE>;<SMALL>;IGNORE
-<U00CC>        <U0049>;<GRAVE>;<CAPITAL>;IGNORE
-<U00EC>        <U0049>;<GRAVE>;<SMALL>;IGNORE
-<U0208>        <U0049>;<DOUBLE-GRAVE>;<CAPITAL>;IGNORE
-<U0209>        <U0049>;<DOUBLE-GRAVE>;<SMALL>;IGNORE
-<U012C>        <U0049>;<BREVE>;<CAPITAL>;IGNORE
-<U012D>        <U0049>;<BREVE>;<SMALL>;IGNORE
-<U020A>        <U0049>;<INVERTED-BREVE>;<CAPITAL>;IGNORE
-<U020B>        <U0049>;<INVERTED-BREVE>;<SMALL>;IGNORE
-<U00CE>        <U0049>;<CIRCUMFLEX>;<CAPITAL>;IGNORE
-<U00EE>        <U0049>;<CIRCUMFLEX>;<SMALL>;IGNORE
-<U01CF>        <U0049>;<CARON>;<CAPITAL>;IGNORE
-<U01D0>        <U0049>;<CARON>;<SMALL>;IGNORE
-<U00CF>        <U0049>;<DIAERESIS>;<CAPITAL>;IGNORE
-<U00EF>        <U0049>;<DIAERESIS>;<SMALL>;IGNORE
-<U1E2E>        <U0049>;<DIAERESIS+ACUTE>;<CAPITAL>;IGNORE
-<U1E2F>        <U0049>;<DIAERESIS+ACUTE>;<SMALL>;IGNORE
-<U1EC8>        <U0049>;<HOOK>;<CAPITAL>;IGNORE
-<U1EC9>        <U0049>;<HOOK>;<SMALL>;IGNORE
-<U0128>        <U0049>;<TILDE>;<CAPITAL>;IGNORE
-<U0129>        <U0049>;<TILDE>;<SMALL>;IGNORE
-<U1E2C>        <U0049>;<TILDE-BELOW>;<CAPITAL>;IGNORE
-<U1E2D>        <U0049>;<TILDE-BELOW>;<SMALL>;IGNORE
-<U1ECA>        <U0049>;<DOT-BELOW>;<CAPITAL>;IGNORE
-<U1ECB>        <U0049>;<DOT-BELOW>;<SMALL>;IGNORE
-<U012E>        <U0049>;<OGONEK>;<CAPITAL>;IGNORE
-<U012F>        <U0049>;<OGONEK>;<SMALL>;IGNORE
-<U012A>        <U0049>;<MACRON>;<CAPITAL>;IGNORE
-<U012B>        <U0049>;<MACRON>;<SMALL>;IGNORE
+<U0130>        <U0069>;<NONE>;<CAPITAL>;IGNORE
+<U0069>        <U0069>;<NONE>;<SMALL>;IGNORE
+<U00CD>        <U0069>;<ACUTE>;<CAPITAL>;IGNORE
+<U00ED>        <U0069>;<ACUTE>;<SMALL>;IGNORE
+<U00CC>        <U0069>;<GRAVE>;<CAPITAL>;IGNORE
+<U00EC>        <U0069>;<GRAVE>;<SMALL>;IGNORE
+<U0208>        <U0069>;<DOUBLE-GRAVE>;<CAPITAL>;IGNORE
+<U0209>        <U0069>;<DOUBLE-GRAVE>;<SMALL>;IGNORE
+<U012C>        <U0069>;<BREVE>;<CAPITAL>;IGNORE
+<U012D>        <U0069>;<BREVE>;<SMALL>;IGNORE
+<U020A>        <U0069>;<INVERTED-BREVE>;<CAPITAL>;IGNORE
+<U020B>        <U0069>;<INVERTED-BREVE>;<SMALL>;IGNORE
+<U00CE>        <U0069>;<CIRCUMFLEX>;<CAPITAL>;IGNORE
+<U00EE>        <U0069>;<CIRCUMFLEX>;<SMALL>;IGNORE
+<U01CF>        <U0069>;<CARON>;<CAPITAL>;IGNORE
+<U01D0>        <U0069>;<CARON>;<SMALL>;IGNORE
+<U00CF>        <U0069>;<DIAERESIS>;<CAPITAL>;IGNORE
+<U00EF>        <U0069>;<DIAERESIS>;<SMALL>;IGNORE
+<U1E2E>        <U0069>;<DIAERESIS+ACUTE>;<CAPITAL>;IGNORE
+<U1E2F>        <U0069>;<DIAERESIS+ACUTE>;<SMALL>;IGNORE
+<U1EC8>        <U0069>;<HOOK>;<CAPITAL>;IGNORE
+<U1EC9>        <U0069>;<HOOK>;<SMALL>;IGNORE
+<U0128>        <U0069>;<TILDE>;<CAPITAL>;IGNORE
+<U0129>        <U0069>;<TILDE>;<SMALL>;IGNORE
+<U1E2C>        <U0069>;<TILDE-BELOW>;<CAPITAL>;IGNORE
+<U1E2D>        <U0069>;<TILDE-BELOW>;<SMALL>;IGNORE
+<U1ECA>        <U0069>;<DOT-BELOW>;<CAPITAL>;IGNORE
+<U1ECB>        <U0069>;<DOT-BELOW>;<SMALL>;IGNORE
+<U012E>        <U0069>;<OGONEK>;<CAPITAL>;IGNORE
+<U012F>        <U0069>;<OGONEK>;<SMALL>;IGNORE
+<U012A>        <U0069>;<MACRON>;<CAPITAL>;IGNORE
+<U012B>        <U0069>;<MACRON>;<SMALL>;IGNORE
 <i8>
-<U0132>        "<U0049><U004A>";"<U0132><U0132>";"<CAPITAL><CAPITAL>";IGNORE
-<U0133>        "<U0049><U004A>";"<U0132><U0132>";"<SMALL><SMALL>";IGNORE
+<U0132>        "<U0069><U004A>";"<U0132><U0132>";"<CAPITAL><CAPITAL>";IGNORE
+<U0133>        "<U0069><U004A>";"<U0132><U0132>";"<SMALL><SMALL>";IGNORE
 <U004A>        <U004A>;<NONE>;<CAPITAL>;IGNORE
 <U006A>        <U004A>;<NONE>;<SMALL>;IGNORE
 <U0134>        <U004A>;<CIRCUMFLEX>;<CAPITAL>;IGNORE
@@ -3553,7 +3553,7 @@ END LC_MEASUREMENT
 LC_NAME
 name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
 <U0025><U006D><U0025><U0074><U0025><U0066>"
-% Say\e-Mýn\e-A
+% Say\e.M\8eýn
 name_gen    "<U0053><U0061><U0079><U0131><U006E>"
 % Bay
 name_mr     "<U0042><U0061><U0079>"