diff options
| author | Rich Felker <dalias@aerifal.cx> | 2018-09-06 16:17:56 -0400 | 
|---|---|---|
| committer | Rich Felker <dalias@aerifal.cx> | 2018-09-12 14:34:28 -0400 | 
| commit | 18bf0829a7545b14de3fe241a65298c5f36e8bbc (patch) | |
| tree | 173183b30b68a4e84702b390de6383837107ed5f | |
| parent | 3b028c28314a43e6fb65f3281149aecae8250f11 (diff) | |
| download | musl-18bf0829a7545b14de3fe241a65298c5f36e8bbc.tar.gz | |
improve machinery for ldso to report libc version
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.
| -rw-r--r-- | ldso/dynlink.c | 4 | ||||
| -rw-r--r-- | src/internal/libc.h | 2 | ||||
| -rw-r--r-- | src/internal/version.c | 7 | 
3 files changed, 4 insertions, 9 deletions
diff --git a/ldso/dynlink.c b/ldso/dynlink.c index b46cbafb..b561454b 100644 --- a/ldso/dynlink.c +++ b/ldso/dynlink.c @@ -99,8 +99,6 @@ int __init_tp(void *);  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; @@ -1562,7 +1560,7 @@ _Noreturn void __dls3(size_t *sp)  				"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);  		} diff --git a/src/internal/libc.h b/src/internal/libc.h index 7307a738..f536eaf6 100644 --- a/src/internal/libc.h +++ b/src/internal/libc.h @@ -43,6 +43,8 @@ extern hidden size_t __hwcap;  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 *); diff --git a/src/internal/version.c b/src/internal/version.c index 0d6e1f82..08bbf5b2 100644 --- a/src/internal/version.c +++ b/src/internal/version.c @@ -1,9 +1,4 @@  #include "version.h"  #include "libc.h" -static const char version[] = VERSION; - -hidden const char *__libc_get_version() -{ -	return version; -} +const char __libc_version[] = VERSION;  | 
