diff options
| author | Lou Berger <lberger@labn.net> | 2018-10-02 07:03:08 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-02 07:03:08 -0400 |
| commit | e2392415346356926538d0433cbfb1ddcc9a2de1 (patch) | |
| tree | 220bba2c6bc246f3b8769b9b1997ed78400f6521 /lib/libfrr.c | |
| parent | 11c98954c4cc97c1e60baa39883b79eb35c3458e (diff) | |
| parent | 42efb0d43b63f206c4dfb0c5e8c8a772a768b9d1 (diff) | |
Merge pull request #3116 from opensourcerouting/libfrr-exec
lib: print version information in libfrr.so
Diffstat (limited to 'lib/libfrr.c')
| -rw-r--r-- | lib/libfrr.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/libfrr.c b/lib/libfrr.c index 2bce4766d3..94cd0ab623 100644 --- a/lib/libfrr.c +++ b/lib/libfrr.c @@ -973,3 +973,25 @@ void frr_fini(void) fclose(fp); } } + +#ifdef INTERP +static const char interp[] + __attribute__((section(".interp"), used)) = INTERP; +#endif +/* + * executable entry point for libfrr.so + * + * note that libc initialization is skipped for this so the set of functions + * that can be called is rather limited + */ +extern void _libfrr_version(void) + __attribute__((visibility("hidden"), noreturn)); +void _libfrr_version(void) +{ + const char banner[] = + FRR_FULL_NAME " " FRR_VERSION ".\n" + FRR_COPYRIGHT GIT_INFO "\n" + "configured with:\n " FRR_CONFIG_ARGS "\n"; + write(1, banner, sizeof(banner) - 1); + _exit(0); +} |
