This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] 12 more PLT slots, ia64 build fix, manual typo fix


Hi!

The usual *_hidden_* stuff (my build is at 95 PLT slots now), IA-64
would not build because #if SHLIB_COMPAT was moved into the middle
of another #ifdef, so only a few lines were protected by this #if but
nothing would be compiled if the first #if was false.
And last, repost of a one char typo in debug.texi - if %MENU% item
ends with dot, it means .. in the resulting info.

2002-08-09  Jakub Jelinek  <jakub@redhat.com>

	* include/bits/dlfcn.h: New.
	* elf/dl-profstub.c (_dl_mcount_wrapper_check): Add libc_hidden_def.

	* include/grp.h (_nss_files_parse_grent): Add libc_hidden_proto.
	* include/netinet/ether.h (_nss_files_parse_etherent): Likewise.
	* include/rpc/netdb.h (_nss_files_parse_rpcent): Likewise.
	* include/pwd.h (_nss_files_parse_pwent): Likewise.
	* include/shadow.h (_nss_files_parse_spent): Likewise.
	* include/netdb.h (_nss_files_parse_protoent,
	_nss_files_parse_servent, _nss_files_parse_netent): Likewise.
	* nss/nss_files/files-parse.c (nss_files_parse_hidden_def): Define.
	(LINE_PARSER): Use it.
	* nss/nsswitch.h (__nss_hostname_digits_dots): Add libc_hidden_proto.
	* nss/digits_dots.c (__nss_hostname_digits_dots): Add
	ilbc_hidden_def.

	* include/wctype.h (iswalpha, iswdigit, iswlower, iswspace, iswxdigit,
	towlower, towupper): Add prototypes here too.  Add libc_hidden_proto.
	* wctype/wcfuncs ((iswalpha, iswdigit, iswlower, iswspace, iswxdigit,
	towlower, towupper): Add libc_hidden_def.

	* libio/oldiopopen.c: Move #if SHLIB_COMPAT after _IO_HAVE_SYS_WAIT
	#endif.

	* manual/debug.texi (%MENU%): Remove trailing dot.
	Reported by <hayastan132@hotmail.com>.

--- libc/elf/dl-profstub.c.jj	2002-04-07 18:27:23.000000000 +0200
+++ libc/elf/dl-profstub.c	2002-08-09 13:39:11.000000000 +0200
@@ -40,3 +40,4 @@ _dl_mcount_wrapper_check (void *selfpc)
   if (GL(dl_profile_map) != NULL)
     _dl_mcount ((ElfW(Addr)) RETURN_ADDRESS (0), (ElfW(Addr)) selfpc);
 }
+libc_hidden_def (_dl_mcount_wrapper_check)
--- libc/include/bits/dlfcn.h.jj	2002-08-09 13:42:08.000000000 +0200
+++ libc/include/bits/dlfcn.h	2002-08-09 14:05:31.000000000 +0200
@@ -0,0 +1,4 @@
+#include_next <bits/dlfcn.h>
+
+extern void _dl_mcount_wrapper_check (void *__selfpc);
+libc_hidden_proto (_dl_mcount_wrapper_check)
--- libc/include/grp.h.jj	2002-03-23 11:50:27.000000000 +0100
+++ libc/include/grp.h	2002-08-09 12:46:45.000000000 +0200
@@ -31,6 +31,7 @@ struct parser_data;
 extern int _nss_files_parse_grent (char *line, struct group *result,
 				   struct parser_data *data,
 				   size_t datalen, int *errnop);
+libc_hidden_proto (_nss_files_parse_grent)
 
 #define DECLARE_NSS_PROTOTYPES(service)					   \
 extern enum nss_status _nss_ ## service ## _setgrent (int);		   \
--- libc/include/netinet/ether.h.jj	2002-08-06 10:15:13.000000000 +0200
+++ libc/include/netinet/ether.h	2002-08-09 12:48:45.000000000 +0200
@@ -17,6 +17,7 @@ struct parser_data;
 extern int _nss_files_parse_etherent (char *line, struct etherent *result,
 				      struct parser_data *data,
 				      size_t datalen, int *errnop);
+libc_hidden_proto (_nss_files_parse_etherent)
 
 #define DECLARE_NSS_PROTOTYPES(service)					      \
 extern enum nss_status _nss_ ## service ## _setetherent (int __stayopen);     \
--- libc/include/rpc/netdb.h.jj	2002-03-23 11:50:27.000000000 +0100
+++ libc/include/rpc/netdb.h	2002-08-09 12:49:19.000000000 +0200
@@ -26,6 +26,7 @@ struct parser_data;
 extern int _nss_files_parse_rpcent (char *line, struct rpcent *result,
 				    struct parser_data *data,
 				    size_t datalen, int *errnop);
+libc_hidden_proto (_nss_files_parse_rpcent)
 
 #define DECLARE_NSS_PROTOTYPES(service)					      \
 extern enum nss_status _nss_ ## service ## _setrpcent (int);		      \
--- libc/include/pwd.h.jj	2002-03-23 11:50:27.000000000 +0100
+++ libc/include/pwd.h	2002-08-09 12:47:07.000000000 +0200
@@ -29,6 +29,7 @@ struct parser_data;
 extern int _nss_files_parse_pwent (char *line, struct passwd *result,
 				   struct parser_data *data,
 				   size_t datalen, int *errnop);
+libc_hidden_proto (_nss_files_parse_pwent)
 
 #define DECLARE_NSS_PROTOTYPES(service)					\
 extern enum nss_status _nss_ ## service ## _setpwent (int);		\
--- libc/include/shadow.h.jj	2002-03-23 11:50:27.000000000 +0100
+++ libc/include/shadow.h	2002-08-09 12:47:28.000000000 +0200
@@ -26,6 +26,7 @@ struct parser_data;
 extern int _nss_files_parse_spent (char *line, struct spwd *result,
 				   struct parser_data *data,
 				   size_t datalen, int *errnop);
+libc_hidden_proto (_nss_files_parse_spent)
 
 #define DECLARE_NSS_PROTOTYPES(service)					\
 extern enum nss_status _nss_ ## service ## _setspent (int);		\
--- libc/include/netdb.h.jj	2002-08-06 10:15:13.000000000 +0200
+++ libc/include/netdb.h	2002-08-09 12:48:21.000000000 +0200
@@ -199,7 +199,9 @@ extern enum nss_status _nss_netgroup_par
 						struct __netgrent *result,
 						char *buffer, size_t buflen,
 						int *errnop);
-
+libc_hidden_proto (_nss_files_parse_protoent)
+libc_hidden_proto (_nss_files_parse_servent)
+libc_hidden_proto (_nss_files_parse_netent)
 
 #define DECLARE_NSS_PROTOTYPES(service)					      \
 extern enum nss_status _nss_ ## service ## _setprotoent (int);		      \
--- libc/include/wctype.h.jj	2002-08-04 20:23:21.000000000 +0200
+++ libc/include/wctype.h	2002-08-09 13:31:10.000000000 +0200
@@ -1,5 +1,37 @@
 #ifndef _WCTYPE_H
 
+/* We try to get wint_t from <stddef.h>, but not all GCC versions define it
+   there.  So define it ourselves if it remains undefined.  */
+# define __need_wint_t
+# include <stddef.h>
+# ifndef _WINT_T
+/* Integral type unchanged by default argument promotions that can
+   hold any value corresponding to members of the extended character
+   set, as well as at least one value that does not correspond to any
+   member of the extended character set.  */
+#  define _WINT_T
+typedef unsigned int wint_t;
+# endif
+
+/* Need to repeat these prototypes here, as wctype/wctype.h defines all
+   these as macros and thus we couldn't add libc_hidden_proto.  */
+
+extern int iswalpha (wint_t __wc);
+extern int iswdigit (wint_t __wc);
+extern int iswlower (wint_t __wc);
+extern int iswspace (wint_t __wc);
+extern int iswxdigit (wint_t __wc);
+extern wint_t towlower (wint_t __wc);
+extern wint_t towupper (wint_t __wc);
+
+libc_hidden_proto (iswalpha)
+libc_hidden_proto (iswdigit)
+libc_hidden_proto (iswlower)
+libc_hidden_proto (iswspace)
+libc_hidden_proto (iswxdigit)
+libc_hidden_proto (towlower)
+libc_hidden_proto (towupper)
+
 #include <wctype/wctype.h>
 
 /* Internal interfaces.  */
--- libc/include/dlfcn.h.jj	2002-08-04 20:23:20.000000000 +0200
+++ libc/include/dlfcn.h	2002-08-09 14:05:08.000000000 +0200
@@ -1,4 +1,5 @@
 #ifndef _DLFCN_H
+
 #include <dlfcn/dlfcn.h>
 
 /* Internally used flag.  */
--- libc/libio/oldiopopen.c.jj	2002-08-05 08:44:16.000000000 +0200
+++ libc/libio/oldiopopen.c	2002-08-09 12:03:43.000000000 +0200
@@ -43,9 +43,6 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
-
 #ifndef _IO_fork
 #ifdef _LIBC
 #define _IO_fork __vfork
@@ -57,6 +54,9 @@ extern _IO_pid_t _IO_fork __P ((void));
 
 #endif /* _IO_HAVE_SYS_WAIT */
 
+#include <shlib-compat.h>
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+
 #ifndef _IO_pipe
 #ifdef _LIBC
 #define _IO_pipe __pipe
--- libc/manual/debug.texi.jj	2002-08-05 08:49:49.000000000 +0200
+++ libc/manual/debug.texi	2002-08-09 14:28:11.000000000 +0200
@@ -1,6 +1,6 @@
 @node Debugging Support
 @c @node Debugging Support, , Cryptographic Functions, Top
-@c %MENU% Functions to help debugging applications.
+@c %MENU% Functions to help debugging applications
 @chapter Debugging support
 
 Applications are usually debugged using dedicated debugger programs.
--- libc/nss/nss_files/files-parse.c.jj	2001-08-23 18:48:44.000000000 +0200
+++ libc/nss/nss_files/files-parse.c	2002-08-09 13:01:19.000000000 +0200
@@ -68,10 +68,12 @@ struct parser_data
 /* The function can't be exported, because the entdata structure
    is defined only in files-foo.c.  */
 # define parser_stclass static inline
+# define nss_files_parse_hidden_def(name)
 #else
 /* Export the line parser function so it can be used in nss_db.  */
 # define parser_stclass /* Global */
 # define parse_line CONCAT(_nss_files_parse_,ENTNAME)
+# define nss_files_parse_hidden_def(name) libc_hidden_def (name)
 #endif
 
 
@@ -101,7 +103,8 @@ parse_line (char *line, struct STRUCTURE
   BODY;									      \
   TRAILING_LIST_PARSER;							      \
   return 1;								      \
-}
+}									      \
+nss_files_parse_hidden_def (parse_line)
 
 
 # define STRING_FIELD(variable, terminator_p, swallow)			      \
--- libc/nss/nsswitch.h.jj	2002-08-03 11:09:32.000000000 +0200
+++ libc/nss/nsswitch.h	2002-08-09 13:06:42.000000000 +0200
@@ -168,5 +168,6 @@ extern int __nss_hostname_digits_dots (c
 				       struct hostent **result,
 				       enum nss_status *status, int *typep,
 				       int flags, int *afp, int *h_errnop);
+libc_hidden_proto (__nss_hostname_digits_dots)
 
 #endif	/* nsswitch.h */
--- libc/nss/digits_dots.c.jj	2001-08-23 18:48:43.000000000 +0200
+++ libc/nss/digits_dots.c	2002-08-09 13:08:27.000000000 +0200
@@ -354,3 +354,4 @@ __nss_hostname_digits_dots (const char *
 done:
   return 1;
 }
+libc_hidden_def (__nss_hostname_digits_dots)
--- libc/wctype/wcfuncs.c.jj	2002-03-23 11:52:56.000000000 +0100
+++ libc/wctype/wcfuncs.c	2002-08-09 13:34:09.000000000 +0200
@@ -40,14 +40,17 @@ extern const char *__ctype32_wctrans[2] 
 func (iswalnum, __ISwalnum)
 #undef iswalpha
 func (iswalpha, __ISwalpha)
+libc_hidden_def (iswalpha)
 #undef iswblank
 func (iswblank, __ISwblank)
 #undef iswcntrl
 func (iswcntrl, __ISwcntrl)
 #undef iswdigit
 func (iswdigit, __ISwdigit)
+libc_hidden_def (iswdigit)
 #undef iswlower
 func (iswlower, __ISwlower)
+libc_hidden_def (iswlower)
 #undef iswgraph
 func (iswgraph, __ISwgraph)
 #undef iswprint
@@ -56,21 +59,27 @@ func (iswprint, __ISwprint)
 func (iswpunct, __ISwpunct)
 #undef iswspace
 func (iswspace, __ISwspace)
+libc_hidden_def (iswspace)
 #undef iswupper
 func (iswupper, __ISwupper)
 #undef iswxdigit
 func (iswxdigit, __ISwxdigit)
+libc_hidden_def (iswxdigit)
 
+#undef towlower
 wint_t
-(towlower) (wc)
+towlower (wc)
      wint_t wc;
 {
   return wctrans_table_lookup (__ctype32_wctrans[__TOW_tolower], wc);
 }
+libc_hidden_def (towlower)
 
+#undef towupper
 wint_t
-(towupper) (wc)
+towupper (wc)
      wint_t wc;
 {
   return wctrans_table_lookup (__ctype32_wctrans[__TOW_toupper], wc);
 }
+libc_hidden_def (towupper)

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]