aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2023-09-27 23:07:53 +0000
committerWarner Losh <imp@FreeBSD.org>2023-09-27 23:07:53 +0000
commitfc4a6768272ea9e943661e0c34ff436dac872ac7 (patch)
tree54bb80ca752683cf9ac48245dd4c243f29018898
parentcb668587591c4850bf7fb939a2b79e0e9aa77f7c (diff)
downloadsrc-fc4a6768272ea9e943661e0c34ff436dac872ac7.tar.gz
src-fc4a6768272ea9e943661e0c34ff436dac872ac7.zip
newvers: Add comment about why we need sccs, but deprecate it
The SCCS ID is still the most reliable way to dig out the version information from the kernel w/o false positives. Add a comment to that effect. savecore(8) neglects to save the kerneldumpheader that would have the version information at a fixed location. savecore(8) needs to be augmented to have the right data in the right places, but until then the old-school SCCS id needs to remain. Once that's fixed, we plan to remove it. The reason it needs to be in a fixed or easily findable location is because if you have an arbitrary core and want to pull the source and build artificts that went along with that core, you don't yet have the symbols you need to read the version string. To solve the chicken / egg problem, one needs an independent way to know what to use so that automated analysis of cores can happen. The sccs id being in the kernel ensures that it is in the core image written. The what(1) utility makes extracting the version easy. Sponsored by: Netflix Reviewed by: cy, emaste Differential Revision: https://reviews.freebsd.org/D41984
-rw-r--r--sys/conf/newvers.sh8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh
index 73fd6857d307..33615a8d94f8 100644
--- a/sys/conf/newvers.sh
+++ b/sys/conf/newvers.sh
@@ -311,6 +311,14 @@ fi
vers_content_new=$(cat << EOF
$COPYRIGHT
+/*
+ * The SCCS stuff is a marker that by convention identifies the kernel. While
+ * the convention originated with SCCS, the current use is more generic and is
+ * used by different organizations to identify the kernel, the crash dump,
+ * etc. The what(1) utility prints these markers. Better methods exist, so this
+ * method is deprecated and will be removed in a future version of FreeBSD. Orgs
+ * that use it are encouraged to migrate before then.
+ */
#define SCCSSTR "@(#)${VERINFO}"
#define VERSTR "${VERSTR}"
#define RELSTR "${RELEASE}"