From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] autotools-package: also handle pre-installed external toolchain in .la fixup
Date: Sun, 03 May 2015 18:38:40 +0200 [thread overview]
Message-ID: <55464F10.3080909@mind.be> (raw)
In-Reply-To: <CAD7j7Q-nUjYrYJtw9oCXdTop2-xpJzLb-V0_-87VC492THpviw@mail.gmail.com>
On 03/05/15 18:37, Carlos Soto wrote:
> 2015-05-03 18:26 GMT+02:00 Arnout Vandecappelle <arnout@mind.be
> <mailto:arnout@mind.be>>:
>
> On 03/05/15 18:11, Carlos Soto wrote:
> > 2015-05-02 23:50 GMT+02:00 Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be <mailto:arnout@mind.be>
> > <mailto:arnout at mind.be <mailto:arnout@mind.be>>>:
> >
> > The .la fixup handling looks for paths starting with /usr and assumes
> > that they are missing the installation prefix (i.e. $(STAGING_DIR)). It
> > already handles the cases that $(STAGING_DIR) itself and $(BASE_DIR)
> > are under /usr, but it does not yet handle the case that a
> > pre-installed external toolchain is under /usr (and tracks that fact
> > in some .la file). For instance, if you use buildroot to generate a
> > toolchain with HOST_DIR=/usr/local/some_path, this problem will occur.
> >
> > Fix this in the same way as $(STAGING_DIR) and $(BASE_DIR), but in
> > addition check that TOOLCHAIN_EXTERNAL_INSTALL_DIR is non-empty. For
> > internal toolchains, it is empty and the sed expression would fail.
> >
> > Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be <mailto:arnout@mind.be>
> > <mailto:arnout at mind.be <mailto:arnout@mind.be>>>
> > Reported-by: Carlos Soto <csotoalonso@gmail.com
> <mailto:csotoalonso@gmail.com> <mailto:csotoalonso@gmail.com
> <mailto:csotoalonso@gmail.com>>>
> > Cc: Carlos Soto <csotoalonso at gmail.com <mailto:csotoalonso@gmail.com>
> <mailto:csotoalonso at gmail.com <mailto:csotoalonso@gmail.com>>>
> > ---
> > I haven't been able to test this very extensively because it's not so
> > easy to find .la files where it goes wrong.
> >
> > Carlos, can you check if this patch solves the problem for you?
> >
> >
> > Hi Arnout,
> > I'm afraid it does not work. I've tried patching buildroot but it gave me
> > errors. So I've applied manually the changes to pkg-autotools.mk <http://pkg-autotools.mk>
> > <http://pkg-autotools.mk> and that's what happened after a make clean && make
> > find
> > /home/starsl/iMX6/buildroot/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/lib*
> > -name "*.la" | xargs --no-run-if-empty /bin/sed -i -e
> > "s:/home/starsl/iMX6/buildroot/output:@BASE_DIR@:g" -e
> > "s:/home/starsl/iMX6/buildroot/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot:@STAGING_DIR@:g"
> > -e
> > "s:/usr/local/xtools/arm-cortexa9_neon-linux-gnueabihf:@TOOLCHAIN_EXTERNAL_INSTALL_DIR@:g"
> > -e "s:\(['= ]\)/usr:\\1 at STAGING_DIR@/usr:g" -e
> > "s:@TOOLCHAIN_EXTERNAL_INSTALL_DIR@:/usr/local/xtools/arm-cortexa9_neon-linux-gnueabihf:g"
> > \
>
> You did something wrong when manually applying the patch: there's a spurious \
> at the end. At least, I think that that's the problem. Can you post the relevant
> part of pkg-autotools.mk <http://pkg-autotools.mk> to be sure?
>
> Regards,
> Arnout
>
>
> Sure, here it is:
> # or the pre-installed external toolchain themselves are under /usr,
> # we first substitute away any occurrences of these directories as
> # @BASE_DIR@, @STAGING_DIR@ and @TOOLCHAIN_EXTERNAL_INSTALL_DIR@ respectively.
> # Note that STAGING_DIR can be outside BASE_DIR when the user sets
> # BR2_HOST_DIR to a custom value. Note that TOOLCHAIN_EXTERNAL_INSTALL_DIR
> # can be under @BASE_DIR@ when it's a downloaded toolchain, and can be empty
> # when we use an internal toolchain.
> #
> ifndef $(2)_INSTALL_STAGING_CMDS
> define $(2)_INSTALL_STAGING_CMDS
> $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE)
> $$($$(PKG)_INSTALL_STAGING_OPTS) -C $$($$(PKG)_SRCDIR)
> find $$(STAGING_DIR)/usr/lib* -name "*.la" | xargs --no-run-if-empty \
> $$(SED) "s:$$(BASE_DIR):@BASE_DIR@:g" \
> -e "s:$$(STAGING_DIR):@STAGING_DIR@:g" \
> $$(if $$(TOOLCHAIN_EXTERNAL_INSTALL_DIR),\
> -e
> "s:$$(TOOLCHAIN_EXTERNAL_INSTALL_DIR):@TOOLCHAIN_EXTERNAL_INSTALL_DIR@:g") \
> -e "s:\(['= ]\)/usr:\\1 at STAGING_DIR@/usr:g" \
> $$(if $$(TOOLCHAIN_EXTERNAL_INSTALL_DIR),\
> -e
> "s:@TOOLCHAIN_EXTERNAL_INSTALL_DIR@:$$(TOOLCHAIN_EXTERNAL_INSTALL_DIR):g") \
>
Can you double-check that there is no space behind the \ here?
Regards,
Arnout
> -e "s:@STAGING_DIR@:$$(STAGING_DIR):g" \
> -e "s:@BASE_DIR@:$$(BASE_DIR):g"
> endef
> endif
>
>
>
>
>
> [snip]
>
> --
> 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: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
>
>
--
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: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
next prev parent reply other threads:[~2015-05-03 16:38 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-02 21:50 [Buildroot] [PATCH] autotools-package: also handle pre-installed external toolchain in .la fixup Arnout Vandecappelle
2015-05-02 22:34 ` Yann E. MORIN
2015-05-03 9:43 ` Arnout Vandecappelle
2015-05-03 14:52 ` Yann E. MORIN
2015-05-03 16:11 ` Carlos Soto
2015-05-03 16:26 ` Arnout Vandecappelle
2015-05-03 16:37 ` Carlos Soto
2015-05-03 16:38 ` Arnout Vandecappelle [this message]
2015-05-03 17:34 ` Carlos Soto
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=55464F10.3080909@mind.be \
--to=arnout@mind.be \
--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.