From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH next v2 1/2] package/apr-util: fix build with per-package folders
Date: Tue, 20 Nov 2018 21:09:44 +0100 [thread overview]
Message-ID: <20181120200944.GF2601@scaer> (raw)
In-Reply-To: <20181120163853.5040-2-thomas.petazzoni@bootlin.com>
Thomas, All,
On 2018-11-20 17:38 +0100, Thomas Petazzoni spake thusly:
> With per-package folder support enable, the build of apr-util fails,
> for two reasons:
>
> - The rules.mk file is generated by the 'apr' package, and then
> copied into the 'apr-util' source directory. This is done by the
> 'apr-util' build process. Unfortunately, this rules.mk file has a
> number of hardcoded paths: to the compiler and to the libtool
> script.
>
> Due to this, the compiler from the 'apr' per-package folder gets
> used. But this compiler uses the 'apr' package sysroot, which does
> not have all the dependencies of the 'apr-util' package, causing
> the build to fail because <expat.h> is not found.
>
> - Similarly, the libtool script itself has some hardcoded paths,
> which make it use the compiler/linker from the 'apr' per-package
> folder, so it does not find the expat library.
>
> We fix both issues by doing the necessary replacement in both rules.mk
> and libtool.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
> Changes since v1:
> - Drop the useless logic to copy the libtool script before doing the
> replacement: as noted by Yann E. Morin, sed is properly breaking
> hardlinks when doing an in-place replacement.
> ---
> package/apr-util/apr-util.mk | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/package/apr-util/apr-util.mk b/package/apr-util/apr-util.mk
> index b006964ccb..379dfa692e 100644
> --- a/package/apr-util/apr-util.mk
> +++ b/package/apr-util/apr-util.mk
> @@ -15,6 +15,13 @@ APR_UTIL_CONF_OPTS = \
> --with-apr=$(STAGING_DIR)/usr/bin/apr-1-config
> APR_UTIL_CONFIG_SCRIPTS = apu-1-config
>
> +define APR_UTIL_FIX_RULES_MK_LIBTOOL
> + $(SED) 's,$(PER_PACKAGE_DIR)/apr/,$(PER_PACKAGE_DIR)/apr-util/,g' $(@D)/build/rules.mk
> + $(SED) 's,$(PER_PACKAGE_DIR)/apr/,$(PER_PACKAGE_DIR)/apr-util/,g' \
I know we do not have a strong policy on this, but can you use '@' as
the separator, instead of the comma ',' as we are sure that the build
directory will not contain any '@':
https://git.buildroot.org/buildroot/commit/Makefile?id=7007dc2bc99ad191c418c468707cdc3980273cda
> + $(STAGING_DIR)/usr/build-1/libtool
So, you're patching a file in STAGING_DIR in a post-configure hook?
Also, PER_PACKAGE_DIR does yet exist in master (or next, for that
matters), so this patch will have to leave in your branch for a little
while still, I'm afraid.. :-/
> +endef
> +APR_UTIL_POST_CONFIGURE_HOOKS += APR_UTIL_FIX_RULES_MK_LIBTOOL
> +
> # When iconv is available, then use it to provide charset conversion
> # features.
> APR_UTIL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv)
> --
> 2.19.1
>
--
.-----------------.--------------------.------------------.--------------------.
| 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. |
'------------------------------^-------^------------------^--------------------'
next prev parent reply other threads:[~2018-11-20 20:09 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-20 16:38 [Buildroot] [PATCH next v2 0/2] apr-util/apache fixes for per-package folders Thomas Petazzoni
2018-11-20 16:38 ` [Buildroot] [PATCH next v2 1/2] package/apr-util: fix build with " Thomas Petazzoni
2018-11-20 20:09 ` Yann E. MORIN [this message]
2018-11-21 8:42 ` Thomas Petazzoni
2018-11-20 16:38 ` [Buildroot] [PATCH next v2 2/2] package/apache: add patch to fix per-package folder build Thomas Petazzoni
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=20181120200944.GF2601@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.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 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.