All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/asterisk: fix host build
@ 2017-09-24 16:33 Yann E. MORIN
  2017-09-24 16:51 ` Arnout Vandecappelle
  2017-09-26 22:41 ` Arnout Vandecappelle
  0 siblings, 2 replies; 5+ messages in thread
From: Yann E. MORIN @ 2017-09-24 16:33 UTC (permalink / raw)
  To: buildroot

The host menuselect tool is linked to our host libxml2 library, but it
is missing an RPATH to the host directory.

This is because menuselect does not use automake, so does not inherit
the LDFLAGS from the configure run.

We fix that by simply passing $(HOST_CONFIGURE_OPTS) in the make
environment.

At the same time, we also install the tool in the host directory, even
if not used from there, so that the sanity checks we run are properly
passed.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
---
 package/asterisk/asterisk.mk | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/package/asterisk/asterisk.mk b/package/asterisk/asterisk.mk
index a6801a006d..50512c0b3a 100644
--- a/package/asterisk/asterisk.mk
+++ b/package/asterisk/asterisk.mk
@@ -294,12 +294,23 @@ HOST_ASTERISK_CONF_OPTS = \
 	--without-curses \
 	--with-ncurses=$(HOST_DIR)/usr
 
-# Even though menuselect is an autotools package, it is *not* installed,
-# as asterisk does expect it to be in a sub-directory of its source tree,
-# which do by copying the full menuselect build tree as a pre-configure
-# hook in the target variant.
+# Not an automake package, so does not inherit LDFLAGS et al. from
+# the configure run.
+HOST_ASTERISK_MAKE_ENV = $(HOST_CONFIGURE_OPTS)
+
+# Even though menuselect is an autotools package, it is not an automake
+# package and does not have an 'install' rule, as asterisk does expect
+# it to be in a sub-directory of its source tree. We do so by copying
+# the full menuselect build tree as a pre-configure hook in the target
+# variant.
+# However, the sanity checks on host packages are not run on menuselect.
+# But we still want to catch that menuselect has the proper rpath set,
+# for example, as it uses host libraries that we do build, like
+# host-libxml2.
+# So we do manually install the menuselect tool.
 define HOST_ASTERISK_INSTALL_CMDS
-	@:
+	$(INSTALL) -D -m 0755 $(@D)/menuselect/menuselect \
+		$(HOST_DIR)/bin/asterisk-menuselect
 endef
 
 $(eval $(host-autotools-package))
-- 
2.11.0

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

* [Buildroot] [PATCH] package/asterisk: fix host build
  2017-09-24 16:33 [Buildroot] [PATCH] package/asterisk: fix host build Yann E. MORIN
@ 2017-09-24 16:51 ` Arnout Vandecappelle
  2017-09-24 17:04   ` Yann E. MORIN
  2017-09-26 22:41 ` Arnout Vandecappelle
  1 sibling, 1 reply; 5+ messages in thread
From: Arnout Vandecappelle @ 2017-09-24 16:51 UTC (permalink / raw)
  To: buildroot



On 24-09-17 18:33, Yann E. MORIN wrote:
> The host menuselect tool is linked to our host libxml2 library, but it
> is missing an RPATH to the host directory.
> 
> This is because menuselect does not use automake, so does not inherit
> the LDFLAGS from the configure run.
> 
> We fix that by simply passing $(HOST_CONFIGURE_OPTS) in the make
> environment.
> 
> At the same time, we also install the tool in the host directory, even
> if not used from there, so that the sanity checks we run are properly
> passed.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Arnout Vandecappelle <arnout@mind.be>
> ---
>  package/asterisk/asterisk.mk | 21 ++++++++++++++++-----
>  1 file changed, 16 insertions(+), 5 deletions(-)
> 
> diff --git a/package/asterisk/asterisk.mk b/package/asterisk/asterisk.mk
> index a6801a006d..50512c0b3a 100644
> --- a/package/asterisk/asterisk.mk
> +++ b/package/asterisk/asterisk.mk
> @@ -294,12 +294,23 @@ HOST_ASTERISK_CONF_OPTS = \
>  	--without-curses \
>  	--with-ncurses=$(HOST_DIR)/usr
>  
> -# Even though menuselect is an autotools package, it is *not* installed,
> -# as asterisk does expect it to be in a sub-directory of its source tree,
> -# which do by copying the full menuselect build tree as a pre-configure
> -# hook in the target variant.
> +# Not an automake package, so does not inherit LDFLAGS et al. from
> +# the configure run.
> +HOST_ASTERISK_MAKE_ENV = $(HOST_CONFIGURE_OPTS)
> +
> +# Even though menuselect is an autotools package, it is not an automake
> +# package and does not have an 'install' rule, as asterisk does expect
> +# it to be in a sub-directory of its source tree. We do so by copying
> +# the full menuselect build tree as a pre-configure hook in the target
> +# variant.
> +# However, the sanity checks on host packages are not run on menuselect.
> +# But we still want to catch that menuselect has the proper rpath set,
> +# for example, as it uses host libraries that we do build, like
> +# host-libxml2.
> +# So we do manually install the menuselect tool.
>  define HOST_ASTERISK_INSTALL_CMDS
> -	@:
> +	$(INSTALL) -D -m 0755 $(@D)/menuselect/menuselect \
> +		$(HOST_DIR)/bin/asterisk-menuselect

 So then could you symlink to this instead of copying the entire tree?

 Regards,
 Arnout

>  endef
>  
>  $(eval $(host-autotools-package))
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

* [Buildroot] [PATCH] package/asterisk: fix host build
  2017-09-24 16:51 ` Arnout Vandecappelle
@ 2017-09-24 17:04   ` Yann E. MORIN
  2017-09-24 17:08     ` Yann E. MORIN
  0 siblings, 1 reply; 5+ messages in thread
From: Yann E. MORIN @ 2017-09-24 17:04 UTC (permalink / raw)
  To: buildroot

On 2017-09-24 18:51 +0200, Arnout Vandecappelle spake thusly:
> 
> 
> On 24-09-17 18:33, Yann E. MORIN wrote:
> > The host menuselect tool is linked to our host libxml2 library, but it
> > is missing an RPATH to the host directory.
> > 
> > This is because menuselect does not use automake, so does not inherit
> > the LDFLAGS from the configure run.
> > 
> > We fix that by simply passing $(HOST_CONFIGURE_OPTS) in the make
> > environment.
> > 
> > At the same time, we also install the tool in the host directory, even
> > if not used from there, so that the sanity checks we run are properly
> > passed.
> > 
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > Cc: Arnout Vandecappelle <arnout@mind.be>
> > ---
> >  package/asterisk/asterisk.mk | 21 ++++++++++++++++-----
> >  1 file changed, 16 insertions(+), 5 deletions(-)
> > 
> > diff --git a/package/asterisk/asterisk.mk b/package/asterisk/asterisk.mk
> > index a6801a006d..50512c0b3a 100644
> > --- a/package/asterisk/asterisk.mk
> > +++ b/package/asterisk/asterisk.mk
> > @@ -294,12 +294,23 @@ HOST_ASTERISK_CONF_OPTS = \
> >  	--without-curses \
> >  	--with-ncurses=$(HOST_DIR)/usr
> >  
> > -# Even though menuselect is an autotools package, it is *not* installed,
> > -# as asterisk does expect it to be in a sub-directory of its source tree,
> > -# which do by copying the full menuselect build tree as a pre-configure
> > -# hook in the target variant.
> > +# Not an automake package, so does not inherit LDFLAGS et al. from
> > +# the configure run.
> > +HOST_ASTERISK_MAKE_ENV = $(HOST_CONFIGURE_OPTS)
> > +
> > +# Even though menuselect is an autotools package, it is not an automake
> > +# package and does not have an 'install' rule, as asterisk does expect
> > +# it to be in a sub-directory of its source tree. We do so by copying
> > +# the full menuselect build tree as a pre-configure hook in the target
> > +# variant.
> > +# However, the sanity checks on host packages are not run on menuselect.
> > +# But we still want to catch that menuselect has the proper rpath set,
> > +# for example, as it uses host libraries that we do build, like
> > +# host-libxml2.
> > +# So we do manually install the menuselect tool.
> >  define HOST_ASTERISK_INSTALL_CMDS
> > -	@:
> > +	$(INSTALL) -D -m 0755 $(@D)/menuselect/menuselect \
> > +		$(HOST_DIR)/bin/asterisk-menuselect
> 
>  So then could you symlink to this instead of copying the entire tree?

Nope, because all the intermediate object files would missing, so the
Makefile would try to build them, and would then rebuild menuseclect as
well, and all those efforts would have been in vain...

And anyway, this would have been a topic different from this patch.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH] package/asterisk: fix host build
  2017-09-24 17:04   ` Yann E. MORIN
@ 2017-09-24 17:08     ` Yann E. MORIN
  0 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2017-09-24 17:08 UTC (permalink / raw)
  To: buildroot

Arnout, All,

On 2017-09-24 19:04 +0200, Yann E. MORIN spake thusly:
> On 2017-09-24 18:51 +0200, Arnout Vandecappelle spake thusly:
> > On 24-09-17 18:33, Yann E. MORIN wrote:
[--SNIP--]
> > > +# Even though menuselect is an autotools package, it is not an automake
> > > +# package and does not have an 'install' rule, as asterisk does expect
> > > +# it to be in a sub-directory of its source tree. We do so by copying
> > > +# the full menuselect build tree as a pre-configure hook in the target
> > > +# variant.
> > > +# However, the sanity checks on host packages are not run on menuselect.
> > > +# But we still want to catch that menuselect has the proper rpath set,
> > > +# for example, as it uses host libraries that we do build, like
> > > +# host-libxml2.
> > > +# So we do manually install the menuselect tool.
> > >  define HOST_ASTERISK_INSTALL_CMDS
> > > -	@:
> > > +	$(INSTALL) -D -m 0755 $(@D)/menuselect/menuselect \
> > > +		$(HOST_DIR)/bin/asterisk-menuselect
> > 
> >  So then could you symlink to this instead of copying the entire tree?
> 
> Nope, because all the intermediate object files would missing, so the
> Makefile would try to build them, and would then rebuild menuseclect as
> well, and all those efforts would have been in vain...

Oh, and I forgot: it needs a file, makeopts, generated by configure, but
running menuselect's configure in the target variant is the things we
want to avoid in the first place.

And to be sure, I tried what you suggest, and it does not work (build
failure).

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH] package/asterisk: fix host build
  2017-09-24 16:33 [Buildroot] [PATCH] package/asterisk: fix host build Yann E. MORIN
  2017-09-24 16:51 ` Arnout Vandecappelle
@ 2017-09-26 22:41 ` Arnout Vandecappelle
  1 sibling, 0 replies; 5+ messages in thread
From: Arnout Vandecappelle @ 2017-09-26 22:41 UTC (permalink / raw)
  To: buildroot



On 24-09-17 18:33, Yann E. MORIN wrote:
> The host menuselect tool is linked to our host libxml2 library, but it
> is missing an RPATH to the host directory.
> 
> This is because menuselect does not use automake, so does not inherit
> the LDFLAGS from the configure run.
> 
> We fix that by simply passing $(HOST_CONFIGURE_OPTS) in the make
> environment.
> 
> At the same time, we also install the tool in the host directory, even
> if not used from there, so that the sanity checks we run are properly
> passed.

 I think this is a bit over the top, but oh well.

> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Arnout Vandecappelle <arnout@mind.be>

 Applied to master, thanks.

 Regards,
 Arnout


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

end of thread, other threads:[~2017-09-26 22:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-24 16:33 [Buildroot] [PATCH] package/asterisk: fix host build Yann E. MORIN
2017-09-24 16:51 ` Arnout Vandecappelle
2017-09-24 17:04   ` Yann E. MORIN
2017-09-24 17:08     ` Yann E. MORIN
2017-09-26 22:41 ` Arnout Vandecappelle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.