1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19: #include "version.h"
20: #include <tls.h>
21: #include <gnu/libc-version.h>
22:
23: static const char __libc_release[] = RELEASE;
24: static const char __libc_version[] = VERSION;
25:
26: static const char banner[] =
27: "GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\
28: Copyright (C) 2007 Free Software Foundation, Inc.\n\
29: This is free software; see the source for copying conditions.\n\
30: There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\
31: PARTICULAR PURPOSE.\n\
32: Compiled by GNU CC version "__VERSION__".\n"
33: #include "version-info.h"
34: #ifdef GLIBC_OLDEST_ABI
35: "The oldest ABI supported: " GLIBC_OLDEST_ABI ".\n"
36: #endif
37: "For bug reporting instructions, please see:\n\
38: <http://www.gnu.org/software/libc/bugs.html>.\n";
39:
40: #include <unistd.h>
41:
42: extern void __libc_print_version (void);
43: void
44: __libc_print_version (void)
45: {
46: __write (STDOUT_FILENO, banner, sizeof banner - 1);
47: }
48:
49: extern const char *__gnu_get_libc_release (void);
50: const char *
51: __gnu_get_libc_release (void)
52: {
53: return __libc_release;
54: }
55: weak_alias (__gnu_get_libc_release, gnu_get_libc_release)
56:
57: extern const char *__gnu_get_libc_version (void);
58: const char *
59: __gnu_get_libc_version (void)
60: {
61: return __libc_version;
62: }
63: weak_alias (__gnu_get_libc_version, gnu_get_libc_version)
64:
65: #ifdef HAVE_ELF
66:
67:
68:
69: extern void __libc_main (void) __attribute__ ((noreturn));
70: void
71: __libc_main (void)
72: {
73: __libc_print_version ();
74: _exit (0);
75: }
76: #endif