[DTrace-devel] [PATCH v2] test: fix another use of a kernel variable

Kris Van Hees kris.van.hees at oracle.com
Fri Aug 2 20:38:24 UTC 2024


Yet another case where lack datatype information for kernel variable
(i.e. lack of CTF, and BTF does not provide it) requires an explicit
use of the &-operator.

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
 test/unittest/options/err.D_ASRELO.kdefs.d | 2 +-
 test/unittest/options/tst.knodefs.sh       | 2 +-
 test/unittest/options/tst.linkmode.r       | 2 +-
 test/unittest/options/tst.linkmode.sh      | 4 ++--
 test/unittest/tracemem/tst.tracemem.d      | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/test/unittest/options/err.D_ASRELO.kdefs.d b/test/unittest/options/err.D_ASRELO.kdefs.d
index 0a42fc6e..06bfe24e 100644
--- a/test/unittest/options/err.D_ASRELO.kdefs.d
+++ b/test/unittest/options/err.D_ASRELO.kdefs.d
@@ -14,6 +14,6 @@
 /* @@runtest-opts: -xerrtags -xlinkmode=dynamic -xknodefs -xkdefs */
 
 BEGIN {
-	trace((string)`linux_banner);
+	trace((string)&`linux_banner);
 	exit(0);
 }
diff --git a/test/unittest/options/tst.knodefs.sh b/test/unittest/options/tst.knodefs.sh
index 532d7eca..da65c49f 100755
--- a/test/unittest/options/tst.knodefs.sh
+++ b/test/unittest/options/tst.knodefs.sh
@@ -9,7 +9,7 @@
 dtrace=$1
 
 $dtrace $dt_flags -xlinkmode=dynamic -xknodefs \
-	-Sn 'BEGIN { trace((string)`linux_banner); exit(0); }' 2>&1 | \
+	-Sn 'BEGIN { trace((string)&`linux_banner); exit(0); }' 2>&1 | \
 	awk '/^KREL/ {
 		print;
 		while (getline == 1) {
diff --git a/test/unittest/options/tst.linkmode.r b/test/unittest/options/tst.linkmode.r
index 4b453f56..acbf8025 100644
--- a/test/unittest/options/tst.linkmode.r
+++ b/test/unittest/options/tst.linkmode.r
@@ -14,4 +14,4 @@ Linux version
 
 -- @@stderr --
 dtrace: failed to set -x linkmode: Invalid value for specified option
-dtrace: invalid probe specifier BEGIN { trace((string)`linux_banner); exit(0); }: relocation remains against kernel symbol vmlinux`linux_banner (offset {ptr})
+dtrace: invalid probe specifier BEGIN { trace((string)&`linux_banner); exit(0); }: relocation remains against kernel symbol vmlinux`linux_banner (offset {ptr})
diff --git a/test/unittest/options/tst.linkmode.sh b/test/unittest/options/tst.linkmode.sh
index 4e28f8bd..07045fd5 100755
--- a/test/unittest/options/tst.linkmode.sh
+++ b/test/unittest/options/tst.linkmode.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
@@ -12,7 +12,7 @@ dtrace=$1
 
 function mytest() {
 	echo try $1
-	$dtrace $1 -qn 'BEGIN { trace((string)`linux_banner); exit(0); }' | cut -c-14
+	$dtrace $1 -qn 'BEGIN { trace((string)&`linux_banner); exit(0); }' | cut -c-14
 }
 
 # Test different link modes.
diff --git a/test/unittest/tracemem/tst.tracemem.d b/test/unittest/tracemem/tst.tracemem.d
index 716b119f..fa838454 100644
--- a/test/unittest/tracemem/tst.tracemem.d
+++ b/test/unittest/tracemem/tst.tracemem.d
@@ -14,7 +14,7 @@
 #pragma D option quiet
 
 BEGIN {
-	p = (char *)`linux_banner;	/* first 14 chars are "Linux version " */
+	p = (char *)&`linux_banner;	/* first 14 chars are "Linux version " */
 
 	/* try tracemem() with various sizes */
 
-- 
2.45.2




More information about the DTrace-devel mailing list