dev.dpdk.org archive mirror
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] devtools: reset compilation flags for each target
@ 2019-10-02 16:55 David Marchand
  2019-10-03  9:21 ` Bruce Richardson
  2019-11-27 23:07 ` Thomas Monjalon
  0 siblings, 2 replies; 5+ messages in thread
From: David Marchand @ 2019-10-02 16:55 UTC (permalink / raw)
  To: dev; +Cc: Thomas Monjalon

Same idea than overriding PATH and PKG_CONFIG_PATH, it can be quite
useful to override compilation flags like CFLAGS, CPPFLAGS and LDFLAGS
for cross compilation or libraries that won't provide a pkg-config file.

Fixes: 272236741258 ("devtools: load target-specific compilation environment")

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 devtools/test-meson-builds.sh | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index 08e83eb..6091347 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -36,12 +36,18 @@ fi
 
 default_path=$PATH
 default_pkgpath=$PKG_CONFIG_PATH
+default_cflags=$CFLAGS
+default_cppflags=$CPPFLAGS
+default_ldflags=$LDFLAGS
 
 load_env () # <target compiler>
 {
 	targetcc=$1
 	export PATH=$default_path
 	export PKG_CONFIG_PATH=$default_pkgpath
+	export CFLAGS=$default_cflags
+	export CPPFLAGS=$default_cppflags
+	export LDFLAGS=$default_ldflags
 	unset DPDK_MESON_OPTIONS
 	command -v $targetcc >/dev/null 2>&1 || return 1
 	DPDK_TARGET=$($targetcc -v 2>&1 | sed -n 's,^Target: ,,p')
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] [PATCH] devtools: reset compilation flags for each target
  2019-10-02 16:55 [dpdk-dev] [PATCH] devtools: reset compilation flags for each target David Marchand
@ 2019-10-03  9:21 ` Bruce Richardson
  2019-10-03 10:08   ` David Marchand
  2019-11-27 23:07 ` Thomas Monjalon
  1 sibling, 1 reply; 5+ messages in thread
From: Bruce Richardson @ 2019-10-03  9:21 UTC (permalink / raw)
  To: David Marchand; +Cc: dev, Thomas Monjalon

On Wed, Oct 02, 2019 at 06:55:47PM +0200, David Marchand wrote:
> Same idea than overriding PATH and PKG_CONFIG_PATH, it can be quite
> useful to override compilation flags like CFLAGS, CPPFLAGS and LDFLAGS
> for cross compilation or libraries that won't provide a pkg-config file.
> 
> Fixes: 272236741258 ("devtools: load target-specific compilation environment")
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---

No strong objection to this change, but for meson the better way to handle
this may be to put these flags into the cross-file used for the build. By
explicitly passing CFLAGS etc. to the build, I'm not sure what the
behaviour is with regards to passing those flags to cross-built vs
native-built components. For a cross-compile, not all CFLAGS should be
passed to the build of pmdinfogen, for instance.

/Bruce


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] [PATCH] devtools: reset compilation flags for each target
  2019-10-03  9:21 ` Bruce Richardson
@ 2019-10-03 10:08   ` David Marchand
  2019-10-03 10:35     ` Bruce Richardson
  0 siblings, 1 reply; 5+ messages in thread
From: David Marchand @ 2019-10-03 10:08 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev, Thomas Monjalon

On Thu, Oct 3, 2019 at 11:21 AM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Wed, Oct 02, 2019 at 06:55:47PM +0200, David Marchand wrote:
> > Same idea than overriding PATH and PKG_CONFIG_PATH, it can be quite
> > useful to override compilation flags like CFLAGS, CPPFLAGS and LDFLAGS
> > for cross compilation or libraries that won't provide a pkg-config file.
> >
> > Fixes: 272236741258 ("devtools: load target-specific compilation environment")
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > ---
>
> No strong objection to this change, but for meson the better way to handle
> this may be to put these flags into the cross-file used for the build. By
> explicitly passing CFLAGS etc. to the build, I'm not sure what the
> behaviour is with regards to passing those flags to cross-built vs
> native-built components. For a cross-compile, not all CFLAGS should be
> passed to the build of pmdinfogen, for instance.

Ok, I see.

Then the only usecase would be for locally built libraries that meson
can't find by itself.
A bit hackish too.

Mm, is there a way to tell meson "library X (CFLAGS, LDFLAGS) is (xx, yy)" ?
I could write some local .pc files and override PKG_CONFIG_PATH...
Any better idea ?


-- 
David Marchand


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] [PATCH] devtools: reset compilation flags for each target
  2019-10-03 10:08   ` David Marchand
@ 2019-10-03 10:35     ` Bruce Richardson
  0 siblings, 0 replies; 5+ messages in thread
From: Bruce Richardson @ 2019-10-03 10:35 UTC (permalink / raw)
  To: David Marchand; +Cc: dev, Thomas Monjalon

On Thu, Oct 03, 2019 at 12:08:30PM +0200, David Marchand wrote:
> On Thu, Oct 3, 2019 at 11:21 AM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> >
> > On Wed, Oct 02, 2019 at 06:55:47PM +0200, David Marchand wrote:
> > > Same idea than overriding PATH and PKG_CONFIG_PATH, it can be quite
> > > useful to override compilation flags like CFLAGS, CPPFLAGS and LDFLAGS
> > > for cross compilation or libraries that won't provide a pkg-config file.
> > >
> > > Fixes: 272236741258 ("devtools: load target-specific compilation environment")
> > >
> > > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > > ---
> >
> > No strong objection to this change, but for meson the better way to handle
> > this may be to put these flags into the cross-file used for the build. By
> > explicitly passing CFLAGS etc. to the build, I'm not sure what the
> > behaviour is with regards to passing those flags to cross-built vs
> > native-built components. For a cross-compile, not all CFLAGS should be
> > passed to the build of pmdinfogen, for instance.
> 
> Ok, I see.
> 
> Then the only usecase would be for locally built libraries that meson
> can't find by itself.
> A bit hackish too.
> 
> Mm, is there a way to tell meson "library X (CFLAGS, LDFLAGS) is (xx, yy)" ?
> I could write some local .pc files and override PKG_CONFIG_PATH...
> Any better idea ?
>
If the scheme here using CFLAGS/LDFLAGS works just go with it for now.

Ideally for cross compiles, we could consider taking the stored
cross-compile files and copying them to /tmp and then adding the additional
flags there.  However, for just passing flags to help find library X or Y,
its probably not worth doing, so let's keep it simple until we need
something more powerful. I was just pointing out that this could cause
issues in the future if we do start using it for something more fancy...

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] [PATCH] devtools: reset compilation flags for each target
  2019-10-02 16:55 [dpdk-dev] [PATCH] devtools: reset compilation flags for each target David Marchand
  2019-10-03  9:21 ` Bruce Richardson
@ 2019-11-27 23:07 ` Thomas Monjalon
  1 sibling, 0 replies; 5+ messages in thread
From: Thomas Monjalon @ 2019-11-27 23:07 UTC (permalink / raw)
  To: David Marchand; +Cc: dev

02/10/2019 18:55, David Marchand:
> Same idea than overriding PATH and PKG_CONFIG_PATH, it can be quite
> useful to override compilation flags like CFLAGS, CPPFLAGS and LDFLAGS
> for cross compilation or libraries that won't provide a pkg-config file.
> 
> Fixes: 272236741258 ("devtools: load target-specific compilation environment")
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>

Applied, thanks



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-11-27 23:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-02 16:55 [dpdk-dev] [PATCH] devtools: reset compilation flags for each target David Marchand
2019-10-03  9:21 ` Bruce Richardson
2019-10-03 10:08   ` David Marchand
2019-10-03 10:35     ` Bruce Richardson
2019-11-27 23:07 ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).