[DTrace-devel] [PATCH 4/4] build: install sdt*.h in /usr/lib64/dtrace/include/sys
Elena Zannoni
elena.zannoni at oracle.com
Sat May 25 00:44:13 UTC 2024
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>
On 5/24/24 17:58, Kris Van Hees wrote:
> 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
More information about the DTrace-devel
mailing list