1 // SPDX-License-Identifier: GPL-2.0-only << 2 /* 1 /* 3 * linux/init/version.c 2 * linux/init/version.c 4 * 3 * 5 * Copyright (C) 1992 Theodore Ts'o 4 * Copyright (C) 1992 Theodore Ts'o 6 * 5 * 7 * May be freely distributed as part of Linux 6 * May be freely distributed as part of Linux. 8 */ 7 */ 9 8 10 #include <generated/compile.h> 9 #include <generated/compile.h> 11 #include <linux/build-salt.h> << 12 #include <linux/elfnote-lto.h> << 13 #include <linux/export.h> 10 #include <linux/export.h> 14 #include <linux/init.h> << 15 #include <linux/printk.h> << 16 #include <linux/uts.h> 11 #include <linux/uts.h> 17 #include <linux/utsname.h> 12 #include <linux/utsname.h> >> 13 #include <generated/utsrelease.h> >> 14 #include <linux/version.h> 18 #include <linux/proc_ns.h> 15 #include <linux/proc_ns.h> 19 16 20 static int __init early_hostname(char *arg) !! 17 #ifndef CONFIG_KALLSYMS 21 { !! 18 #define version(a) Version_ ## a 22 size_t bufsize = sizeof(init_uts_ns.na !! 19 #define version_string(a) version(a) 23 size_t maxlen = bufsize - 1; !! 20 24 ssize_t arglen; !! 21 extern int version_string(LINUX_VERSION_CODE); 25 !! 22 int version_string(LINUX_VERSION_CODE); 26 arglen = strscpy(init_uts_ns.name.node !! 23 #endif 27 if (arglen < 0) { !! 24 28 pr_warn("hostname parameter ex !! 25 struct uts_namespace init_uts_ns = { 29 maxlen); !! 26 .kref = KREF_INIT(2), 30 } !! 27 .name = { 31 return 0; !! 28 .sysname = UTS_SYSNAME, 32 } !! 29 .nodename = UTS_NODENAME, 33 early_param("hostname", early_hostname); !! 30 .release = UTS_RELEASE, >> 31 .version = UTS_VERSION, >> 32 .machine = UTS_MACHINE, >> 33 .domainname = UTS_DOMAINNAME, >> 34 }, >> 35 .user_ns = &init_user_ns, >> 36 .ns.inum = PROC_UTS_INIT_INO, >> 37 #ifdef CONFIG_UTS_NS >> 38 .ns.ops = &utsns_operations, >> 39 #endif >> 40 }; >> 41 EXPORT_SYMBOL_GPL(init_uts_ns); >> 42 >> 43 /* FIXED STRINGS! Don't touch! */ >> 44 const char linux_banner[] = >> 45 "Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@" >> 46 LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n"; 34 47 35 const char linux_proc_banner[] = 48 const char linux_proc_banner[] = 36 "%s version %s" 49 "%s version %s" 37 " (" LINUX_COMPILE_BY "@" LINUX_COMPIL 50 " (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")" 38 " (" LINUX_COMPILER ") %s\n"; 51 " (" LINUX_COMPILER ") %s\n"; 39 << 40 BUILD_SALT; << 41 BUILD_LTO_INFO; << 42 << 43 /* << 44 * init_uts_ns and linux_banner contain the bu << 45 * which are really fixed at the very last ste << 46 * They are compiled with __weak first, and wi << 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 52
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.