summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog27
-rw-r--r--iconv/gconv_db.c4
-rw-r--r--iconvdata/jisx0213.h2
-rw-r--r--intl/finddomain.c8
-rw-r--r--intl/gettextP.h7
-rw-r--r--intl/loadmsgcat.c2
-rw-r--r--resolv/res_libc.c1
-rw-r--r--sysdeps/ia64/dl-machine.h2
-rw-r--r--sysdeps/powerpc/powerpc64/dl-machine.h6
-rw-r--r--sysdeps/unix/sysv/linux/netatalk/at.h4
10 files changed, 51 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 5b26707e4c..e274e2e234 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2004-08-06  Ulrich Drepper  <drepper@redhat.com>
+
+	* iconvdata/jisx0213.h (jisx0213_added_in_2004_p): Fix typo.
+	Reported by Paolo Bonzini.
+
+2004-08-06  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/ia64/dl-machine.h (elf_machine_fixup_plt): Add
+	always_inline.
+	* sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_runtime_setup,
+	elf_machine_fixup_plt, elf_machine_plt_conflict): Likewise.
+
+	* sysdeps/unix/sysv/linux/netatalk/at.h: Include bits/sockaddr.h
+	before including linux/atalk.h.
+
+	* resolv/res_libc.c: Include atomic.h.
+
+	* intl/finddomain.c (free_mem): Rename to...
+	(_nl_finddomain_subfreeres): ... this.  Add
+	__libc_freeres_fn_section.
+	* intl/loadmsgcat.c (_nl_unload_domain): Add
+	__libc_freeres_fn_section.
+	* intl/gettextP.h (_nl_unload_domain): Move into #ifdef _LIBC.
+	Add attribute_hidden.
+	(_nl_findomain_subfreeres): New prototype.
+	* iconv/gconv_db.c (free_mem): Call _nl_findomain_subfreeres.
+
 2004-07-30  Guido Guenther  <agx@sigxcpu.org>
 
 	* nss/getent.c (passwd_keys): Use strtoul instead of isdigit to
diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c
index 719ff95376..8dc6b14d25 100644
--- a/iconv/gconv_db.c
+++ b/iconv/gconv_db.c
@@ -791,6 +791,10 @@ libc_freeres_fn (free_mem)
      as ctype cleanup functions dereference steps arrays which we free below.  */
   _nl_locale_subfreeres ();
 
+  /* finddomain.c has similar problem.  */
+  extern void _nl_finddomain_subfreeres (void) attribute_hidden;
+  _nl_finddomain_subfreeres ();
+
   if (__gconv_alias_db != NULL)
     __tdestroy (__gconv_alias_db, free);
 
diff --git a/iconvdata/jisx0213.h b/iconvdata/jisx0213.h
index c549f590b0..9d50306a68 100644
--- a/iconvdata/jisx0213.h
+++ b/iconvdata/jisx0213.h
@@ -90,7 +90,7 @@ jisx0213_added_in_2004_p (uint16_t val)
     case 0x2f:
       return val == 0x2f7e;
     case 0x4f:
-      return val == 0x4f54 || 0x4f7e;
+      return val == 0x4f54 || val == 0x4f7e;
     case 0x74:
       return val == 0x7427;
     case 0x7e:
diff --git a/intl/finddomain.c b/intl/finddomain.c
index 1031e4d5b1..6988d9efc0 100644
--- a/intl/finddomain.c
+++ b/intl/finddomain.c
@@ -1,5 +1,6 @@
 /* Handle list of needed message catalogs
-   Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1995-1999, 2000, 2001, 2002, 2004
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Ulrich Drepper <drepper@gnu.org>, 1995.
 
@@ -168,7 +169,10 @@ _nl_find_domain (dirname, locale, domainname, domainbinding)
 
 
 #ifdef _LIBC
-libc_freeres_fn (free_mem)
+/* This is called from iconv/gconv_db.c's free_mem, as locales must
+   be freed before freeing gconv steps arrays.  */
+void __libc_freeres_fn_section
+_nl_finddomain_subfreeres ()
 {
   struct loaded_l10nfile *runp = _nl_loaded_domains;
 
diff --git a/intl/gettextP.h b/intl/gettextP.h
index 69a95cabc7..46b51e1008 100644
--- a/intl/gettextP.h
+++ b/intl/gettextP.h
@@ -1,5 +1,5 @@
 /* Header describing internals of libintl library.
-   Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1995-1999, 2000, 2001, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
@@ -173,8 +173,6 @@ struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
 void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain,
 			      struct binding *__domainbinding))
      internal_function;
-void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
-     internal_function;
 const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file,
 					  struct loaded_domain *__domain,
 					  struct binding *__domainbinding))
@@ -210,6 +208,9 @@ extern char *__bindtextdomain PARAMS ((const char *__domainname,
 				       const char *__dirname));
 extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname,
 						const char *__codeset));
+extern void _nl_finddomain_subfreeres PARAMS ((void)) attribute_hidden;
+extern void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
+     internal_function attribute_hidden;
 #else
 extern char *libintl_gettext PARAMS ((const char *__msgid));
 extern char *libintl_dgettext PARAMS ((const char *__domainname,
diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
index a9c257c145..569ace2105 100644
--- a/intl/loadmsgcat.c
+++ b/intl/loadmsgcat.c
@@ -1387,7 +1387,7 @@ _nl_load_domain (domain_file, domainbinding)
 
 #ifdef _LIBC
 void
-internal_function
+internal_function __libc_freeres_fn_section
 _nl_unload_domain (domain)
      struct loaded_domain *domain;
 {
diff --git a/resolv/res_libc.c b/resolv/res_libc.c
index b1047f009b..e41cf0fe4d 100644
--- a/resolv/res_libc.c
+++ b/resolv/res_libc.c
@@ -15,6 +15,7 @@
  * SOFTWARE.
  */
 
+#include <atomic.h>
 #include <limits.h>
 #include <sys/types.h>
 #include <netinet/in.h>
diff --git a/sysdeps/ia64/dl-machine.h b/sysdeps/ia64/dl-machine.h
index fbf3f20287..8714c016e9 100644
--- a/sysdeps/ia64/dl-machine.h
+++ b/sysdeps/ia64/dl-machine.h
@@ -460,7 +460,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
 #define elf_machine_profile_plt(reloc_addr) ((Elf64_Addr) (reloc_addr))
 
 /* Fixup a PLT entry to bounce directly to the function at VALUE.  */
-static inline Elf64_Addr
+static inline Elf64_Addr __attribute__ ((always_inline))
 elf_machine_fixup_plt (struct link_map *l, lookup_t t,
 		       const Elf64_Rela *reloc,
 		       Elf64_Addr *reloc_addr, Elf64_Addr value)
diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h
index 2a090ec96e..bcaa20049d 100644
--- a/sysdeps/powerpc/powerpc64/dl-machine.h
+++ b/sysdeps/powerpc/powerpc64/dl-machine.h
@@ -384,7 +384,7 @@ DL_STARTING_UP_DEF							\
 
 /* Set up the loaded object described by MAP so its unrelocated PLT
    entries will jump to the on-demand fixup code in dl-runtime.c.  */
-static inline int
+static inline int __attribute__ ((always_inline))
 elf_machine_runtime_setup (struct link_map *map, int lazy, int profile)
 {
   if (map->l_info[DT_JMPREL])
@@ -481,7 +481,7 @@ elf_machine_runtime_setup (struct link_map *map, int lazy, int profile)
 
 /* Change the PLT entry whose reloc is 'reloc' to call the actual
    routine.  */
-static inline Elf64_Addr
+static inline Elf64_Addr __attribute__ ((always_inline))
 elf_machine_fixup_plt (struct link_map *map, lookup_t sym_map,
 		       const Elf64_Rela *reloc,
 		       Elf64_Addr *reloc_addr, Elf64_Addr finaladdr)
@@ -523,7 +523,7 @@ elf_machine_fixup_plt (struct link_map *map, lookup_t sym_map,
   return finaladdr;
 }
 
-static inline void
+static inline void __attribute__ ((always_inline))
 elf_machine_plt_conflict (Elf64_Addr *reloc_addr, Elf64_Addr finaladdr)
 {
   Elf64_FuncDesc *plt = (Elf64_FuncDesc *) reloc_addr;
diff --git a/sysdeps/unix/sysv/linux/netatalk/at.h b/sysdeps/unix/sysv/linux/netatalk/at.h
index c624516ab1..2668fc93b3 100644
--- a/sysdeps/unix/sysv/linux/netatalk/at.h
+++ b/sysdeps/unix/sysv/linux/netatalk/at.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991, 92, 93, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1993, 1995, 1996, 1997, 2004
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +21,7 @@
 #define _NETATALK_AT_H 1
 
 #include <asm/types.h>
+#include <bits/sockaddr.h>
 #include <linux/atalk.h>
 #include <sys/socket.h>