[DTrace-devel] [PATCH 4/4] build: install sdt*.h in /usr/lib64/dtrace/include/sys
Kris Van Hees
kris.van.hees at oracle.com
Fri May 24 23:58:52 UTC 2024
Author: Nick Alcock <nick.alcock at oracle.com>
With this change, we no longer confict with any systemtap packages!
Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
GNUmakefile | 2 ++
runtest.sh | 10 +++++-----
test/unittest/pid/tst.provregex3.sh | 6 +++---
test/unittest/pid/tst.provregex4.sh | 10 +++++-----
test/unittest/usdt/tst.allargs.sh | 4 ++--
test/unittest/usdt/tst.entryreturn.sh | 4 ++--
test/unittest/usdt/tst.linkpriv.sh | 4 ++--
test/unittest/usdt/tst.linkunpriv.sh | 4 ++--
test/unittest/usdt/tst.manyprobes.sh | 4 ++--
test/unittest/usdt/tst.reeval.sh | 4 ++--
test/unittest/usdt/tst.static.sh | 4 ++--
test/unittest/usdt/tst.static2.sh | 4 ++--
uts/Build | 16 ++++++++++++----
13 files changed, 43 insertions(+), 33 deletions(-)
diff --git a/GNUmakefile b/GNUmakefile
index 360058c6..b1109727 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -86,6 +86,8 @@ BINDIR = $(prefix)/bin
INSTBINDIR = $(DESTDIR)$(BINDIR)
INCLUDEDIR = $(prefix)/include
INSTINCLUDEDIR = $(DESTDIR)$(INCLUDEDIR)
+SDTINCLUDEDIR = $(LIBDIR)/dtrace/include
+INSTSDTINCLUDEDIR = $(DESTDIR)$(SDTINCLUDEDIR)
SBINDIR = $(prefix)/sbin
INSTSBINDIR = $(DESTDIR)$(SBINDIR)
UDEVDIR = $(prefix)/lib/udev/rules.d
diff --git a/runtest.sh b/runtest.sh
index 35d50069..3bcd676e 100755
--- a/runtest.sh
+++ b/runtest.sh
@@ -559,7 +559,7 @@ if [[ -z $USE_INSTALLED ]]; then
dtrace="$(pwd)/build*/dtrace"
test_libdir="$(pwd)/build/dlibs"
test_ldflags="-L$(pwd)/build"
- test_incflags="-Iinclude -Iuts/common -Ibuild -Ilibdtrace -DARCH_$arch"
+ test_cppflags="-Iinclude -Iuts/common -Ibuild -Ilibdtrace -DARCH_$arch"
helper_device="dtrace/test-$$"
# Pre-existing directories from earlier tests are just fine!
# dtprobed will clean things up.
@@ -579,7 +579,7 @@ else
dtrace="/usr/sbin/dtrace"
test_libdir="installed"
test_ldflags=""
- test_incflags="-DARCH_$arch"
+ test_cppflags="-DARCH_$arch -I/usr/lib64/dtrace/include"
if [[ ! -x $dtrace ]]; then
echo "$dtrace not available." >&2
@@ -587,6 +587,7 @@ else
fi
fi
export dtrace
+export test_cppflags
# Figure out if the preprocessor supports -fno-diagnostics-show-option: if it
# does, add a bunch of options designed to make GCC output look like it used
@@ -594,7 +595,6 @@ export dtrace
# Regardless, turn off display of column numbers, if possible: they vary
# between GCC releases.
-test_cppflags=
if ! /usr/bin/cpp -x c -fno-diagnostics-show-caret - /dev/null < /dev/null 2>&1 | \
grep -q 'unrecognized command line option'; then
export DTRACE_OPT_CPPARGS="-fno-diagnostics-show-caret -fdiagnostics-color=never -fno-diagnostics-show-option -fno-show-column"
@@ -1129,7 +1129,7 @@ for dt in $dtrace; do
# Default and substitute in flags. The raw_dt_flags apply even to a
# sh invocation.
- raw_dt_flags="$test_incflags"
+ raw_dt_flags="$test_cppflags"
expected_tag=
if [[ $testonly =~ ^err\.D_ ]]; then
@@ -1204,7 +1204,7 @@ for dt in $dtrace; do
CC="${CC:-gcc}"
CCline="$CC -std=gnu99 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
- CCline="$CCline $test_incflags $CFLAGS $test_ldflags $LDFLAGS"
+ CCline="$CCline $test_cppflags $CFLAGS $test_ldflags $LDFLAGS"
CCline="$CCline -o $tmpdir/$(basename $base) $_test $link"
log "Compiling $CCline\n"
if ! $CCline >/dev/null 2>$tmpdir/cc.err; then
diff --git a/test/unittest/pid/tst.provregex3.sh b/test/unittest/pid/tst.provregex3.sh
index 6e1afd3e..7ebfb28e 100755
--- a/test/unittest/pid/tst.provregex3.sh
+++ b/test/unittest/pid/tst.provregex3.sh
@@ -1,7 +1,7 @@
#!/bin/bash
#
# Oracle Linux DTrace.
-# Copyright (c) 2008, 2023, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 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.
#
@@ -23,10 +23,10 @@ cat > $DIR/Makefile <<EOF
all: main
main: main.o prov.o
- cc -o main main.o prov.o
+ cc $test_cppflags -o main main.o prov.o
main.o: main.c prov.h
- cc -c main.c
+ cc $test_cppflags -c main.c
prov.h: prov.d
$dtrace -h -s prov.d
diff --git a/test/unittest/pid/tst.provregex4.sh b/test/unittest/pid/tst.provregex4.sh
index a9ff3238..e4248e15 100755
--- a/test/unittest/pid/tst.provregex4.sh
+++ b/test/unittest/pid/tst.provregex4.sh
@@ -1,7 +1,7 @@
#!/bin/bash
#
# Oracle Linux DTrace.
-# Copyright (c) 2008, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 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.
#
@@ -25,10 +25,10 @@ cat > $DIR/Makefile <<EOF
all: main altlib.so
main: main.o provmain.o
- cc -o main main.o provmain.o -ldl
+ cc $test_cppflags -o main main.o provmain.o -ldl
main.o: main.c prov.h
- cc -c main.c
+ cc $test_cppflags -c main.c
prov.h: prov.d
$dtrace -h -s prov.d
@@ -37,10 +37,10 @@ provmain.o: prov.d main.o
$dtrace -G -o provmain.o -s prov.d main.o
altlib.so: altlib.o provalt.o
- cc -z defs --shared -o altlib.so altlib.o provalt.o
+ cc $test_cppflags -z defs --shared -o altlib.so altlib.o provalt.o
altlib.o: altlib.c prov.h
- cc -c altlib.c
+ cc $test_cppflags -c altlib.c
provalt.o: prov.d altlib.o
$dtrace -G -o provalt.o -s prov.d altlib.o
diff --git a/test/unittest/usdt/tst.allargs.sh b/test/unittest/usdt/tst.allargs.sh
index 20f9de90..d233615f 100755
--- a/test/unittest/usdt/tst.allargs.sh
+++ b/test/unittest/usdt/tst.allargs.sh
@@ -1,7 +1,7 @@
#!/bin/bash
#
# Oracle Linux DTrace.
-# Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2018, 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.
@@ -16,7 +16,7 @@ fi
dtrace=$1
CC=/usr/bin/gcc
-CFLAGS="-std=gnu89 -I${PWD}/uts/common"
+CFLAGS="-std=gnu89 $test_cppflags"
DIRNAME="$tmpdir/usdt-allargs.$$.$RANDOM"
mkdir -p $DIRNAME
diff --git a/test/unittest/usdt/tst.entryreturn.sh b/test/unittest/usdt/tst.entryreturn.sh
index 6c14ece2..d777c1ac 100755
--- a/test/unittest/usdt/tst.entryreturn.sh
+++ b/test/unittest/usdt/tst.entryreturn.sh
@@ -1,7 +1,7 @@
#!/bin/bash
#
# Oracle Linux DTrace.
-# Copyright (c) 2007, 2022, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 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.
#
@@ -14,7 +14,7 @@ fi
dtrace=$1
CC=/usr/bin/gcc
-CFLAGS="-I${PWD}/uts/common"
+CFLAGS="$test_cppflags"
DIRNAME="$tmpdir/usdt-entryreturn.$$.$RANDOM"
mkdir -p $DIRNAME
diff --git a/test/unittest/usdt/tst.linkpriv.sh b/test/unittest/usdt/tst.linkpriv.sh
index 1a088f82..c008e66d 100755
--- a/test/unittest/usdt/tst.linkpriv.sh
+++ b/test/unittest/usdt/tst.linkpriv.sh
@@ -1,7 +1,7 @@
#!/bin/bash
#
# Oracle Linux DTrace.
-# Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 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 @@ fi
dtrace=$1
CC=/usr/bin/gcc
-CFLAGS="-std=gnu99 -I${PWD}/uts/common"
+CFLAGS="-std=gnu99 $test_cppflags"
DIRNAME="$tmpdir/usdt-linkpriv.$$.$RANDOM"
mkdir -p $DIRNAME
diff --git a/test/unittest/usdt/tst.linkunpriv.sh b/test/unittest/usdt/tst.linkunpriv.sh
index 71d42ae4..bf52bc6a 100755
--- a/test/unittest/usdt/tst.linkunpriv.sh
+++ b/test/unittest/usdt/tst.linkunpriv.sh
@@ -1,7 +1,7 @@
#!/bin/bash
#
# Oracle Linux DTrace.
-# Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 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.
#
@@ -14,7 +14,7 @@ fi
dtrace=$1
CC=/usr/bin/gcc
-CFLAGS="-I${PWD}/uts/common"
+CFLAGS="$test_cppflags"
DIRNAME="$tmpdir/usdt-linkunpriv.$$.$RANDOM"
mkdir -p $DIRNAME
diff --git a/test/unittest/usdt/tst.manyprobes.sh b/test/unittest/usdt/tst.manyprobes.sh
index dd97250e..a3b23874 100755
--- a/test/unittest/usdt/tst.manyprobes.sh
+++ b/test/unittest/usdt/tst.manyprobes.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 @@ fi
dtrace=$1
CC=/usr/bin/gcc
-CFLAGS="-I${PWD}/uts/common"
+CFLAGS="$test_cppflags"
DIRNAME="$tmpdir/usdt-manyprobes.$$.$RANDOM"
mkdir -p $DIRNAME
cd $DIRNAME
diff --git a/test/unittest/usdt/tst.reeval.sh b/test/unittest/usdt/tst.reeval.sh
index 3b32a280..56011a4f 100755
--- a/test/unittest/usdt/tst.reeval.sh
+++ b/test/unittest/usdt/tst.reeval.sh
@@ -1,7 +1,7 @@
#!/bin/bash
#
# Oracle Linux DTrace.
-# Copyright (c) 2007, 2022, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 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.
#
@@ -13,7 +13,7 @@ fi
dtrace=$1
CC=/usr/bin/gcc
-CFLAGS="-I${PWD}/uts/common"
+CFLAGS="$test_cppflags"
DIRNAME="$tmpdir/usdt-reeval.$$.$RANDOM"
mkdir -p $DIRNAME
diff --git a/test/unittest/usdt/tst.static.sh b/test/unittest/usdt/tst.static.sh
index a016f1c6..bd71c2e4 100755
--- a/test/unittest/usdt/tst.static.sh
+++ b/test/unittest/usdt/tst.static.sh
@@ -1,7 +1,7 @@
#!/bin/bash
#
# Oracle Linux DTrace.
-# Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 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 @@ fi
dtrace=$1
CC=/usr/bin/gcc
-CFLAGS="-I${PWD}/uts/common"
+CFLAGS="$test_cppflags"
DIRNAME="$tmpdir/usdt-static.$$.$RANDOM"
mkdir -p $DIRNAME
diff --git a/test/unittest/usdt/tst.static2.sh b/test/unittest/usdt/tst.static2.sh
index ec611873..29fd3597 100755
--- a/test/unittest/usdt/tst.static2.sh
+++ b/test/unittest/usdt/tst.static2.sh
@@ -1,7 +1,7 @@
#!/bin/bash
#
# Oracle Linux DTrace.
-# Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 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.
#
@@ -16,7 +16,7 @@ fi
dtrace=$1
CC=/usr/bin/gcc
-CFLAGS="-I${PWD}/uts/common"
+CFLAGS="$test_cppflags"
DIRNAME="$tmpdir/usdt-static2.$$.$RANDOM"
mkdir -p $DIRNAME
diff --git a/uts/Build b/uts/Build
index f445115d..864b2dfd 100644
--- a/uts/Build
+++ b/uts/Build
@@ -1,6 +1,6 @@
#
# Oracle Linux DTrace.
-# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 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.
@@ -10,11 +10,19 @@ uts_DIR := $(current-dir)
# provide the userspace versions of types defined distincty by the kernel.
SYS_HEADERS_INSTALL := common/sys/dtrace.h \
- common/sys/dtrace_types.h \
- common/sys/sdt.h \
- common/sys/sdt_internal.h
+ common/sys/dtrace_types.h
+
+# sdt*.h are used by programs that contain USDT probes that want to define
+# probes by hand rather than using dtrace -h. SystemTap has another header
+# with the same name, so we install these out of the way.
+
+PROBE_HEADERS_INSTALL := common/sys/sdt.h \
+ common/sys/sdt_internal.h
install::
mkdir -p $(INSTINCLUDEDIR)/sys
$(call describe-install-target,$(INSTINCLUDEDIR)/sys,$(notdir $(SYS_HEADERS_INSTALL)))
cd $(uts_DIR) && install -m 644 $(SYS_HEADERS_INSTALL) $(INSTINCLUDEDIR)/sys
+ mkdir -p $(INSTSDTINCLUDEDIR)/sys
+ $(call describe-install-target,$(INSTSDTINCLUDEDIR)/sys,$(notdir $(PROBE_HEADERS_INSTALL)))
+ cd $(uts_DIR) && install -m 644 $(PROBE_HEADERS_INSTALL) $(INSTSDTINCLUDEDIR)/sys
--
2.42.0
More information about the DTrace-devel
mailing list