From 179ab5a505c7060e2703015961173ee900eed780 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sun, 1 Dec 2013 17:27:25 -0500 Subject: add infrastructure to record and report the version of libc.so this is still experimental and subject to change. for git checkouts, an attempt is made to record the exact revision to aid in bug reports and debugging. no version information is recorded in the static libc.a or binaries it's linked into. --- src/internal/version.c | 12 ++++++++++++ src/ldso/dynlink.c | 9 +++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 src/internal/version.c (limited to 'src') diff --git a/src/internal/version.c b/src/internal/version.c new file mode 100644 index 00000000..16554ba2 --- /dev/null +++ b/src/internal/version.c @@ -0,0 +1,12 @@ +#ifdef SHARED + +#include "version.h" + +static const char version[] = VERSION; + +const char *__libc_get_version() +{ + return version; +} + +#endif diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c index 174df572..27d92f2b 100644 --- a/src/ldso/dynlink.c +++ b/src/ldso/dynlink.c @@ -93,6 +93,8 @@ void __init_ssp(size_t *); void *__install_initial_tls(void *); void __init_libc(char **, char *); +const char *__libc_get_version(void); + static struct dso *head, *tail, *ldso, *fini_head; static char *env_path, *sys_path; static unsigned long long gencnt; @@ -1040,8 +1042,11 @@ void *__dynlink(int argc, char **argv) *argv++ = (void *)-1; if (argv[0] && !strcmp(argv[0], "--")) *argv++ = (void *)-1; if (!argv[0]) { - dprintf(2, "musl libc/dynamic program loader\n"); - dprintf(2, "usage: %s pathname%s\n", ldname, + dprintf(2, "musl libc\n" + "Version %s\n" + "Dynamic Program Loader\n" + "Usage: %s [--] pathname%s\n", + __libc_get_version(), ldname, ldd_mode ? "" : " [args]"); _exit(1); } -- cgit v1.2.1