about summary refs log tree commit diff
path: root/nss/nss_files/files-parse.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-07-02 19:35:40 +0000
committerRoland McGrath <roland@gnu.org>1996-07-02 19:35:40 +0000
commit96bda0ea44eb94e0284e91f20ba9733ae63f26a5 (patch)
treed588be55a83c556ac5e617a680fbf53186c9bbb1 /nss/nss_files/files-parse.c
parentffee131630368bc2600747346d0b03025cbca6ee (diff)
downloadglibc-96bda0ea44eb94e0284e91f20ba9733ae63f26a5.tar.gz
glibc-96bda0ea44eb94e0284e91f20ba9733ae63f26a5.tar.xz
glibc-96bda0ea44eb94e0284e91f20ba9733ae63f26a5.zip
* nss/nss_files/files-network.c: Pass empty for new DB_LOOKUP args.
	(DATABASE): Define this instead of DATAFILE.
	* nss/nss_files/files-hosts.c: Likewise.
	(hostbyname): Use LOOKUP_NAME macro.

	* nss/nss_db/db-XXX.c: New file.
	* nss/Makefile (services): Add db.
	(libnss_db-inhibit-o): New variable.
	(libnss_db-routines): New variable.
	(distribute): Append db-XXX.c.
	(libnss_db.so): Depend on libdb.so and libnss_files.so.
	($(libnss_db-routines:%=$(objpfx)%.c)): New static pattern rule.

	* nss/nss_files/files-XXX.c (DB_LOOKUP): Add KEYSIZE and KEYPATTERN
	args, ignored.
	(DATAFILE): New macro.
	* nss/nss_files/files-parse.c (GENERIC): If undefined, define to
	"files-XXX.c".
	* nss/nss_files/files-rpc.c: Include GENERIC instead of "files-XXX.c".
	Pass db key args to DB_LOOKUP.
	(DATAFILE): Macro removed.
	(DATABASE): New macro replaces it, lacks "/etc/" prefix.
	* nss/nss_files/files-service.c: Likewise.
	* nss/nss_files/files-pwd.c: Likewise.
	* nss/nss_files/files-proto.c: Likewise.
	* nss/nss_files/files-grp.c: Likewise.
	* nss/nss_files/files-ethers.c: Likewise.

	* elf/linux-compat.c: File removed.
	* elf/Makefile (distribute): Remove linux-compat.c.
	(ld-linux.so.1): Remove target and associated variables.

	* sunrpc/xdr.c: Remove malloc decl.
	* sunrpc/portmap.c: Likewise.

	* sunrpc/svc_tcp.c (abort): Don't declare.  Instead define as macro
	casting abort to fn returning bool_t.

	* nss/nss_files/files-parse.c [EXTERN_PARSER]: Do an extern decl of
	the parser function.
	[EXTERN_PARSER] (LINE_PARSER): Define to empty.
	* nss/nss_files/files-pwd.c (EXTERN_PARSER): Define it.
	* nss/nss_files/files-grp.c: Likewise.

	* Makeconfig (BUILD_CC): If undefined, define to $(CC).

	* sunrpc/rpc/types.h: Include stdlib.h instead of declaring malloc.

	* Makeconfig (built-program-cmd): Use $(rtld-installed-name) in place
	of ld.so so lookups for that soname find it.

	* nss/Makefile (libnss_dns.so): Depend on libresolv.so.
	(resobjdir, LDLIBS-nss_dns.so): Variables removed.
Diffstat (limited to 'nss/nss_files/files-parse.c')
-rw-r--r--nss/nss_files/files-parse.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/nss/nss_files/files-parse.c b/nss/nss_files/files-parse.c
index a9c461ef46..8930780f1f 100644
--- a/nss/nss_files/files-parse.c
+++ b/nss/nss_files/files-parse.c
@@ -52,6 +52,19 @@ struct parser_data
 #define parse_line CONCAT(_nss_files_parse_,ENTNAME)
 #endif
 
+
+#ifdef EXTERN_PARSER
+
+/* The parser is defined in a different module.  */
+extern int parse_line (char *line, struct STRUCTURE *result,
+		       struct parser_data *data, int datalen);
+
+#define LINE_PARSER(EOLSET, BODY) /* Do nothing */
+
+#else
+
+/* Define a line parsing function.  */
+
 #define LINE_PARSER(EOLSET, BODY)					      \
 parser_stclass int							      \
 parse_line (char *line, struct STRUCTURE *result,			      \
@@ -167,6 +180,9 @@ parse_list (char *line, struct parser_data *data, int datalen)
   return list;
 }
 
+#endif	/* EXTERN_PARSER */
+
+
 #define LOOKUP_NAME(nameelt, aliaselt)					      \
 {									      \
   char **ap;								      \
@@ -180,3 +196,8 @@ parse_list (char *line, struct parser_data *data, int datalen)
 }
 
 #endif
+
+/* This is defined by db-*.c to include "../nss_db/db-XXX.c" instead.  */
+#ifndef GENERIC
+#define GENERIC "files-XXX.c"
+#endif