Line data Source code
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 0 : static int __init early_hostname(char *arg) 21 : { 22 0 : size_t bufsize = sizeof(init_uts_ns.name.nodename); 23 0 : size_t maxlen = bufsize - 1; 24 : size_t arglen; 25 : 26 0 : arglen = strlcpy(init_uts_ns.name.nodename, arg, bufsize); 27 0 : if (arglen > maxlen) { 28 0 : pr_warn("hostname parameter exceeds %zd characters and will be truncated", 29 : maxlen); 30 : } 31 0 : 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);