Skip to content

Commit

Permalink
Add an rpcgen implementation
Browse files Browse the repository at this point in the history
RHEL-8 has removed rpcgen from it's distribution and does not
support the code. Add our own implementation of rpcgen to
ensure we can build DSOS on all platforms.
  • Loading branch information
tom95858 committed Jul 20, 2021
1 parent b3eed8b commit c076c3c
Show file tree
Hide file tree
Showing 16 changed files with 7,512 additions and 0 deletions.
12 changes: 12 additions & 0 deletions rpcgen/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
CLEANFILES = *~

bin_PROGRAMS = rpcgen
man_MANS = rpcgen.1

EXTRA_DIST=${MANS}

noinst_HEADERS = proto.h rpc_parse.h rpc_scan.h rpc_util.h

rpcgen_SOURCES = rpc_clntout.c rpc_cout.c rpc_hout.c rpc_main.c \
rpc_parse.c rpc_sample.c rpc_scan.c rpc_svcout.c rpc_tblout.c \
rpc_util.c
65 changes: 65 additions & 0 deletions rpcgen/proto.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/****** rpc_clntout.c ******/

void write_stubs(void);
void printarglist(proc_list *proc, const char *result,
const char *addargname, const char *addargtype);

/****** rpc_cout.c ******/

void emit (definition *def);

/****** rpc_hout.c ******/

void print_datadef(definition *def);
void print_funcdef(definition *def);
void pxdrfuncdecl(const char *name, int pointerp);
void pprocdef(proc_list *proc, version_list *vp,
const char *addargtype, int server_p, int mode);
void pdeclaration(const char *name, declaration *dec, int tab,
const char *separator);
void print_xdr_func_def (char* name, int pointerp, int i);

/****** rpc_main.c ******/
/* nil */

/****** rpc_parse.c ******/
definition *get_definition(void);

/****** rpc_sample.c ******/
void write_sample_svc(definition *def);
int write_sample_clnt(definition *def);
void add_sample_msg(void);
void write_sample_clnt_main(void);

/****** rpc_scan.c ******/
/* see rpc_scan.h */

/****** rpc_svcout.c ******/
int nullproc(const proc_list *proc);
void write_svc_aux(int nomain);
void write_msg_out(void);

/****** rpc_tblout.c ******/
void write_tables(void);

/****** rpc_util.c ******/
void reinitialize(void);
int streq(const char *a, const char *b);
void error(const char *msg) __attribute__ ((noreturn));
void crash(void) __attribute__ ((noreturn));
void tabify(FILE *f, int tab);
char *make_argname(const char *pname, const char *vname);
void add_type(int len, const char *type);

/* This header is the last one included in all rpc_*.c files,
so we define stuff for cross-rpcgen here to avoid conflicts with
$build's C library and $host's glibc. */

#ifdef IS_IN_build

/* Disable translated messages when built for $build and used in
building glibc. */
#define _(X) (X)
#define textdomain(X) ((void) 0)

#endif
Loading

0 comments on commit c076c3c

Please sign in to comment.