eliminate gratuitous glue function for reporting the version, which
was probably leftover from the old dynamic linker design which lacked
a clear barrier for when/how it could access global data. put the
declaration for the data object that replaces it in libc.h where it
can be type checked.
void __init_libc(char **, char *);
void *__copy_tls(unsigned char *);
-hidden const char *__libc_get_version(void);
-
static struct builtin_tls {
char c;
struct pthread pt;
"Version %s\n"
"Dynamic Program Loader\n"
"Usage: %s [options] [--] pathname%s\n",
- __libc_get_version(), ldname,
+ __libc_version, ldname,
ldd_mode ? "" : " [args]");
_exit(1);
}
extern hidden size_t __sysinfo;
extern char *__progname, *__progname_full;
+extern hidden const char __libc_version[];
+
/* Designed to avoid any overhead in non-threaded processes */
hidden void __lock(volatile int *);
hidden void __unlock(volatile int *);
#include "version.h"
#include "libc.h"
-static const char version[] = VERSION;
-
-hidden const char *__libc_get_version()
-{
- return version;
-}
+const char __libc_version[] = VERSION;