From: Kris Van Hees <kris.van.hees@oracle.com>
To: Nick Alcock <nick.alcock@oracle.com>
Cc: dtrace@lists.linux.dev, dtrace-devel@oss.oracle.com,
kris.van.hees@oracle.com
Subject: Re: [PATCH v2 2/9] build: initial pkg-config support
Date: Fri, 2 Aug 2024 01:24:41 -0400 [thread overview]
Message-ID: <ZqxtmQ3u1SXqjJwA@oracle.com> (raw)
In-Reply-To: <20240801132156.286780-3-nick.alcock@oracle.com>
On Thu, Aug 01, 2024 at 02:21:49PM +0100, Nick Alcock wrote:
> This initial pkg-config file, dtrace_sdt.pc, points at the location
> of the sdt.h include file. We immediately use it in make check in the
> installed testsuite, compensating for any install-time changes in the
> location of the dtrace libdir.
>
> Further changes will be forthcoming to properly support relocatable
> installation.
>
> Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees@oracle.com>
> ---
> GNUmakefile | 2 ++
> configure | 2 ++
> dtrace.spec | 1 +
> runtest.sh | 2 +-
> uts/Build | 14 +++++++++++++-
> uts/dtrace_sdt.pc.in | 6 ++++++
> 6 files changed, 25 insertions(+), 2 deletions(-)
> create mode 100644 uts/dtrace_sdt.pc.in
>
> diff --git a/GNUmakefile b/GNUmakefile
> index b1109727dc66..0fc9b3b5e85c 100644
> --- a/GNUmakefile
> +++ b/GNUmakefile
> @@ -100,6 +100,8 @@ DOCDIR = $(prefix)/share/doc/dtrace-$(VERSION)
> INSTDOCDIR = $(DESTDIR)$(DOCDIR)
> MANDIR = $(prefix)/share/man/man8
> INSTMANDIR = $(DESTDIR)$(MANDIR)
> +PKGCONFIGDIR = $(prefix)/share/pkgconfig
> +INSTPKGCONFIGDIR = $(DESTDIR)$(PKGCONFIGDIR)
> TESTDIR = $(prefix)/lib$(BITNESS)/dtrace/testsuite
> INSTTESTDIR = $(DESTDIR)$(TESTDIR)
> TARGETS =
> diff --git a/configure b/configure
> index c423bc82b763..462548bcc69c 100755
> --- a/configure
> +++ b/configure
> @@ -60,6 +60,7 @@ Installation paths:
> --sbindir=PREFIX/sbin Alias for --bindir
> --includedir=PREFIX/include #include directory
> --mandir=PREFIX/share/man/man8 Manpage directory
> +--pkg-config-dir=PREFIX/share/pkgconfig Pkg-config directory
> --udevdir=PREFIX/lib/udev/rules.d udev rules directory
> --systemd-unit-dir=PREFIX/lib/systemd/system systemd unit directory
> --docdir=PREFIX/share/doc/dtrace Documentation directory
> @@ -130,6 +131,7 @@ for option in "$@"; do
> --systemd-unit-dir=*) write_make_var SYSTEMDUNITDIR "$option";;
> --docdir=*) write_make_var DOCDIR "$option";;
> --mandir=*) write_make_var MANDIR "$option";;
> + --pkg-config-dir=*) write_make_var PKGCONFIGDIR "$option";;
> --testdir=*) write_make_var TESTDIR "$option";;
> CC=*) write_make_var CC "$option";;
> CPP=*) write_make_var PREPROCESS "$option";;
> diff --git a/dtrace.spec b/dtrace.spec
> index 28eeaa478376..1887fcadaed6 100644
> --- a/dtrace.spec
> +++ b/dtrace.spec
> @@ -246,6 +246,7 @@ systemctl start dtprobed || :
> %{_libdir}/libdtrace.so.*
> %{_sbindir}/dtrace
> %{_sbindir}/dtprobed
> +%{_datadir}/pkgconfig/dtrace_sdt.pc
> %{_mandir}/man8/dtrace.8.gz
> %doc %{_docdir}/dtrace-%{version}/*
> %{_unitdir}/dtprobed.service
> diff --git a/runtest.sh b/runtest.sh
> index 3bcd676ea788..cc9703e12c16 100755
> --- a/runtest.sh
> +++ b/runtest.sh
> @@ -579,7 +579,7 @@ else
> dtrace="/usr/sbin/dtrace"
> test_libdir="installed"
> test_ldflags=""
> - test_cppflags="-DARCH_$arch -I/usr/lib64/dtrace/include"
> + test_cppflags="-DARCH_$arch $(pkg-config --cflags dtrace_sdt)"
>
> if [[ ! -x $dtrace ]]; then
> echo "$dtrace not available." >&2
> diff --git a/uts/Build b/uts/Build
> index 864b2dfdacbf..feafa21369f2 100644
> --- a/uts/Build
> +++ b/uts/Build
> @@ -14,11 +14,16 @@ SYS_HEADERS_INSTALL := common/sys/dtrace.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.
> +# with the same name, so we install these out of the way and provide a
> +# pkg-config file to pull them in.
>
> PROBE_HEADERS_INSTALL := common/sys/sdt.h \
> common/sys/sdt_internal.h
>
> +# The pkg-config files undergo a few translations with sed before installation.
> +
> +SHARE_PKG_CONFIG_INSTALL := dtrace_sdt.pc
> +
> install::
> mkdir -p $(INSTINCLUDEDIR)/sys
> $(call describe-install-target,$(INSTINCLUDEDIR)/sys,$(notdir $(SYS_HEADERS_INSTALL)))
> @@ -26,3 +31,10 @@ install::
> 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
> + mkdir -p $(INSTPKGCONFIGDIR)
> + $(call describe-install-target,$(INSTPKGCONFIGDIR),$(SHARE_PKG_CONFIG_INSTALL))
> + for name in $(SHARE_PKG_CONFIG_INSTALL); do \
> + cd $(uts_DIR) && \
> + sed 's,@SDTINCLUDEDIR@,$(SDTINCLUDEDIR),g; s,@VERSION@,$(VERSION),g' < \
> + $${name}.in > $(INSTPKGCONFIGDIR)/$$name; \
> + done
> diff --git a/uts/dtrace_sdt.pc.in b/uts/dtrace_sdt.pc.in
> new file mode 100644
> index 000000000000..c5506f9355d9
> --- /dev/null
> +++ b/uts/dtrace_sdt.pc.in
> @@ -0,0 +1,6 @@
> +sdtincludedir = @SDTINCLUDEDIR@
> +
> +Name: DTrace SDT
> +Description: DTrace raw SDT headers
> +Version: @VERSION@
> +Cflags: -I${sdtincludedir}
> --
> 2.46.0.277.ge12b8151ed
next prev parent reply other threads:[~2024-08-02 5:24 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-01 13:21 [PATCH v2 0/9] relocatable DTrace Nick Alcock
2024-08-01 13:21 ` [PATCH v2 1/9] spec: install sdt*.h in /usr/lib64/dtrace/include/sys Nick Alcock
2024-08-02 5:23 ` Kris Van Hees
2024-08-01 13:21 ` [PATCH v2 2/9] build: initial pkg-config support Nick Alcock
2024-08-02 5:24 ` Kris Van Hees [this message]
2024-08-01 13:21 ` [PATCH v2 3/9] build: track configured vars Nick Alcock
2024-08-02 5:28 ` Kris Van Hees
2024-08-01 13:21 ` [PATCH v2 4/9] build: --bindir is supposed to be equivalent to --sbindir Nick Alcock
2024-08-02 5:28 ` Kris Van Hees
2024-08-01 13:21 ` [PATCH v2 5/9] build: the TESTDIR is relative to the LIBDIR by default Nick Alcock
2024-08-02 5:29 ` Kris Van Hees
2024-08-01 13:21 ` [PATCH v2 6/9] build: add a pkg-config file for dtrace consumers: use it Nick Alcock
2024-08-02 5:30 ` Kris Van Hees
2024-08-01 13:21 ` [PATCH v2 7/9] runtest: remove obsolete kernel coverage data collection Nick Alcock
2024-08-02 5:31 ` Kris Van Hees
2024-08-01 13:21 ` [PATCH v2 8/9] build: make dtrace and dtprobed relocatable Nick Alcock
2024-08-02 5:31 ` Kris Van Hees
2024-08-01 13:21 ` [PATCH v2 9/9] test: work when relocated Nick Alcock
2024-08-02 5:32 ` Kris Van Hees
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZqxtmQ3u1SXqjJwA@oracle.com \
--to=kris.van.hees@oracle.com \
--cc=dtrace-devel@oss.oracle.com \
--cc=dtrace@lists.linux.dev \
--cc=nick.alcock@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox