929c31bb5a
We can't modify the original linux_banner symbol due to ramdump parsing dependencies. So add an additional symbol pointer that just points at it. This way ABI monitoring won't care about the value and modules can still access the banner value. Signed-off-by: Will McVicker <willmcvicker@google.com> Bug: 154586724 Bug: 154345163 Test: compile Change-Id: I65678e02467b8754824a7527270a725741394fe3
57 lines
1.3 KiB
C
57 lines
1.3 KiB
C
/*
|
|
* linux/init/version.c
|
|
*
|
|
* Copyright (C) 1992 Theodore Ts'o
|
|
*
|
|
* May be freely distributed as part of Linux.
|
|
*/
|
|
|
|
#include <generated/compile.h>
|
|
#include <linux/build-salt.h>
|
|
#include <linux/export.h>
|
|
#include <linux/uts.h>
|
|
#include <linux/utsname.h>
|
|
#include <generated/utsrelease.h>
|
|
#include <linux/version.h>
|
|
#include <linux/proc_ns.h>
|
|
|
|
#ifndef CONFIG_KALLSYMS
|
|
#define version(a) Version_ ## a
|
|
#define version_string(a) version(a)
|
|
|
|
extern int version_string(LINUX_VERSION_CODE);
|
|
int version_string(LINUX_VERSION_CODE);
|
|
#endif
|
|
|
|
struct uts_namespace init_uts_ns = {
|
|
.kref = KREF_INIT(2),
|
|
.name = {
|
|
.sysname = UTS_SYSNAME,
|
|
.nodename = UTS_NODENAME,
|
|
.release = UTS_RELEASE,
|
|
.version = UTS_VERSION,
|
|
.machine = UTS_MACHINE,
|
|
.domainname = UTS_DOMAINNAME,
|
|
},
|
|
.user_ns = &init_user_ns,
|
|
.ns.inum = PROC_UTS_INIT_INO,
|
|
#ifdef CONFIG_UTS_NS
|
|
.ns.ops = &utsns_operations,
|
|
#endif
|
|
};
|
|
EXPORT_SYMBOL_GPL(init_uts_ns);
|
|
|
|
/* FIXED STRINGS! Don't touch! */
|
|
const char linux_banner[] =
|
|
"Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
|
|
LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
|
|
|
|
const char *linux_banner_ptr = linux_banner;
|
|
EXPORT_SYMBOL_GPL(linux_banner_ptr);
|
|
|
|
const char linux_proc_banner[] =
|
|
"%s version %s"
|
|
" (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")"
|
|
" (" LINUX_COMPILER ") %s\n";
|
|
|
|
BUILD_SALT;
|