[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