1 | // SPDX-License-Identifier: GPL-2.0-only |
---|---|
2 | /* |
3 | * linux/init/version.c |
4 | * |
5 | * Copyright (C) 1992 Theodore Ts'o |
6 | * |
7 | * May be freely distributed as part of Linux. |
8 | */ |
9 | |
10 | #include <generated/compile.h> |
11 | #include <linux/build-salt.h> |
12 | #include <linux/elfnote-lto.h> |
13 | #include <linux/export.h> |
14 | #include <linux/init.h> |
15 | #include <linux/printk.h> |
16 | #include <linux/uts.h> |
17 | #include <linux/utsname.h> |
18 | #include <linux/proc_ns.h> |
19 | |
20 | static int __init early_hostname(char *arg) |
21 | { |
22 | size_t bufsize = sizeof(init_uts_ns.name.nodename); |
23 | size_t maxlen = bufsize - 1; |
24 | ssize_t arglen; |
25 | |
26 | arglen = strscpy(p: init_uts_ns.name.nodename, q: arg, size: bufsize); |
27 | if (arglen < 0) { |
28 | pr_warn("hostname parameter exceeds %zd characters and will be truncated", |
29 | maxlen); |
30 | } |
31 | return 0; |
32 | } |
33 | early_param("hostname", early_hostname); |
34 | |
35 | const char linux_proc_banner[] = |
36 | "%s version %s" |
37 | " ("LINUX_COMPILE_BY "@"LINUX_COMPILE_HOST ")" |
38 | " ("LINUX_COMPILER ") %s\n"; |
39 | |
40 | BUILD_SALT; |
41 | BUILD_LTO_INFO; |
42 | |
43 | /* |
44 | * init_uts_ns and linux_banner contain the build version and timestamp, |
45 | * which are really fixed at the very last step of build process. |
46 | * They are compiled with __weak first, and without __weak later. |
47 | */ |
48 | |
49 | struct uts_namespace init_uts_ns __weak; |
50 | const char linux_banner[] __weak; |
51 | |
52 | #include "version-timestamp.c" |
53 | |
54 | EXPORT_SYMBOL_GPL(init_uts_ns); |
55 |