From: "Dmitry V. Levin" <ldv@altlinux.org>
To: Patrik Jakobsson <patrik.jakobsson@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org, strace-devel@lists.sourceforge.net
Subject: Re: [PATCH v3 1/5] drm: Add config for detecting libdrm
Date: Sat, 1 Aug 2015 21:22:05 +0300 [thread overview]
Message-ID: <20150801182205.GA3973@altlinux.org> (raw)
In-Reply-To: <20150731090911.GA30063@patrik-desktop.isw.intel.com>
[-- Attachment #1.1: Type: text/plain, Size: 2965 bytes --]
On Fri, Jul 31, 2015 at 11:09:11AM +0200, Patrik Jakobsson wrote:
> On Thu, Jul 30, 2015 at 10:04:49AM -0400, Mike Frysinger wrote:
> > On 30 Jul 2015 15:30, Patrik Jakobsson wrote:
> > > On Thu, Jul 23, 2015 at 05:48:21AM -0400, Mike Frysinger wrote:
> > > > On 01 Jul 2015 14:52, Patrik Jakobsson wrote:
> > > > > Use pkg-config to try to find libdrm. If that fails use the standard
> > > > > include directory for kernel drm headers in /usr/include/drm.
> > > > >
> > > > > * configure.ac: Use pkg-config to find libdrm
> > > > >
> > > > > Signed-off-by: Patrik Jakobsson <patrik.jakobsson@linux.intel.com>
> > > > > ---
> > > > > configure.ac | 4 ++++
> > > > > 1 file changed, 4 insertions(+)
> > > > >
> > > > > diff --git a/configure.ac b/configure.ac
> > > > > index bb8bf46..aa63af7 100644
> > > > > --- a/configure.ac
> > > > > +++ b/configure.ac
> > > > > @@ -844,6 +844,10 @@ fi
> > > > > AM_CONDITIONAL([USE_LIBUNWIND], [test "x$use_libunwind" = xyes])
> > > > > AC_MSG_RESULT([$use_libunwind])
> > > > >
> > > > > +PKG_CHECK_MODULES([libdrm], [libdrm],
> > > > > + [CPPFLAGS="$CPPFLAGS $libdrm_CFLAGS"],
> > > > > + [CPPFLAGS="$CPPFLAGS -I/usr/include/drm"])
> > > >
> > > > yikes, no, this is a really really bad idea. it should read:
> > > > PKG_CHECK_MODULES([LIBDRM], [libdrm],
> > > > [CPPFLAGS="$CPPFLAGS $LIBDRM_CFLAGS"], [:])
> > >
> > > I take it you don't want me to fallback on kernel headers and skip
> > > compiling with drm support if libdrm is not available?
> >
> > you cannot hardcode any path at all. if the kernel headers provide all
> > of the defines/structs that you need, then just include them directly
> > via #include <drm/xxx.h>.
> > -mike
>
> The prefered "drm way" is to always use the libdrm headers and never the kernel
> headers. I know this is breaking the rules but it's what we got to work with.
> Some distros give you the kernel version and others the libdrm version. The
> kernel version is wrong and libdrm patches this up since we're not allowed to
> break the userspace interface. I think the safest way would be to only compile
> drm support for strace if libdrm is present and ignore the kernel headers.
Unlike most of userspace, strace attempts to show the picture as it's seen
from the kernel perspective. Sometimes it forces us to use kernel headers
instead of headers provided by libc and other libraries.
If kernel itself uses uapi/drm, it should be safe for strace to use it
as well. I suppose the check could be written this way:
PKG_CHECK_MODULES([LIBDRM], [libdrm],
[CPPFLAGS="$CPPFLAGS $LIBDRM_CFLAGS"
AC_CHECK_HEADERS([drm.h i915_drm.h])],
[AC_CHECK_HEADERS([drm/drm.h drm/i915_drm.h])])
...
#if defined HAVE_DRM_H || defined HAVE_DRM_DRM_H
# ifdef HAVE_DRM_H
# include <drm.h>
# else
# include <drm/drm.h>
# endif
[rest of drm.c]
#endif /* HAVE_DRM_H || HAVE_DRM_DRM_H */
--
ldv
[-- Attachment #1.2: Type: application/pgp-signature, Size: 181 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-08-01 18:22 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-01 12:52 [PATCH v3 0/5] drm: Add decoding for DRM/KMS and i915 ioctls Patrik Jakobsson
[not found] ` <1435755168-16207-1-git-send-email-patrik.jakobsson-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-07-01 12:52 ` [PATCH v3 1/5] drm: Add config for detecting libdrm Patrik Jakobsson
[not found] ` <1435755168-16207-2-git-send-email-patrik.jakobsson-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-07-23 9:48 ` Mike Frysinger
2015-07-23 10:44 ` Dmitry V. Levin
[not found] ` <20150723104417.GA21575-u2l5PoMzF/Vg9hUCZPvPmw@public.gmane.org>
2015-07-23 11:02 ` Mike Frysinger
2015-07-30 13:30 ` Patrik Jakobsson
2015-07-30 14:04 ` Mike Frysinger
2015-07-31 9:09 ` Patrik Jakobsson
2015-08-01 18:22 ` Dmitry V. Levin [this message]
2015-08-02 14:03 ` Patrik Jakobsson
2015-07-01 12:52 ` [PATCH v3 2/5] drm: Add private data field to trace control block Patrik Jakobsson
2015-07-03 0:33 ` Dmitry V. Levin
2015-07-06 8:09 ` Patrik Jakobsson
2015-07-01 12:52 ` [PATCH v3 3/5] drm: Add dispatcher and driver identification for DRM Patrik Jakobsson
2015-07-01 12:52 ` [PATCH v3 4/5] drm: Add decoding of i915 ioctls Patrik Jakobsson
2015-07-03 0:36 ` Dmitry V. Levin
[not found] ` <20150703003609.GB29080-u2l5PoMzF/Vg9hUCZPvPmw@public.gmane.org>
2015-07-06 10:35 ` Patrik Jakobsson
2015-07-06 14:40 ` Gabriel Laskar
2015-07-08 0:11 ` Dmitry V. Levin
2015-07-10 12:36 ` Patrik Jakobsson
2015-07-10 12:57 ` Dmitry V. Levin
2015-07-01 12:52 ` [PATCH v3 5/5] drm: Add decoding of DRM and KMS ioctls Patrik Jakobsson
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=20150801182205.GA3973@altlinux.org \
--to=ldv@altlinux.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=patrik.jakobsson@linux.intel.com \
--cc=strace-devel@lists.sourceforge.net \
/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