* [Buildroot] [PATCH] toolchain-external: fix gdbserver copying for ARC GNU tools @ 2015-03-16 21:02 Alexey Brodkin 2015-03-16 23:01 ` Yann E. MORIN 0 siblings, 1 reply; 4+ messages in thread From: Alexey Brodkin @ 2015-03-16 21:02 UTC (permalink / raw) To: buildroot Historically in pre-built ARC GNU tools gdbserver is located in top-level "target-bin" folder. Because of that fact if BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY is selected Buildroot won't find gdbserver (it looks within SYSROOT/ARCH_SYSROOT folder). Simplest solution is to use TOOLCHAIN_EXTERNAL_FIXUP_CMDS where copy everything from "target-bin" foler into SYSROOT/usr/bin. Reason to copy everything from "target-bin" is to enable possibility in the future to copy more pre-built target binaries onto target. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Yann E. MORIN <yann.morin.1998@free.fr> --- toolchain/toolchain-external/toolchain-external.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk index c0429bb..d55b6de 100644 --- a/toolchain/toolchain-external/toolchain-external.mk +++ b/toolchain/toolchain-external/toolchain-external.mk @@ -396,6 +396,11 @@ else TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS = be endif TOOLCHAIN_EXTERNAL_SOURCE = arc_gnu_2014.12_prebuilt_uclibc_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS)_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_CORE)_linux_install.tar.gz +define TOOLCHAIN_EXTERNAL_FIXUP_CMDS + $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \ + mkdir -p $${SYSROOT_DIR}/usr/bin ; \ + cp $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/target-bin/* $${SYSROOT_DIR}/usr/bin +endef else # Custom toolchain TOOLCHAIN_EXTERNAL_SITE = $(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL))) -- 2.1.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] toolchain-external: fix gdbserver copying for ARC GNU tools 2015-03-16 21:02 [Buildroot] [PATCH] toolchain-external: fix gdbserver copying for ARC GNU tools Alexey Brodkin @ 2015-03-16 23:01 ` Yann E. MORIN 2015-03-24 10:09 ` Alexey Brodkin 0 siblings, 1 reply; 4+ messages in thread From: Yann E. MORIN @ 2015-03-16 23:01 UTC (permalink / raw) To: buildroot Alexey, All, On 2015-03-17 00:02 +0300, Alexey Brodkin spake thusly: > Historically in pre-built ARC GNU tools gdbserver is located in > top-level "target-bin" folder. > > Because of that fact if BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY is > selected Buildroot won't find gdbserver (it looks within > SYSROOT/ARCH_SYSROOT folder). > > Simplest solution is to use TOOLCHAIN_EXTERNAL_FIXUP_CMDS where copy > everything from "target-bin" foler into SYSROOT/usr/bin. > > Reason to copy everything from "target-bin" is to enable possibility in > the future to copy more pre-built target binaries onto target. > > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > Cc: Yann E. MORIN <yann.morin.1998@free.fr> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> However, a small suggestion (more of a question, in fact) below... > --- > toolchain/toolchain-external/toolchain-external.mk | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk > index c0429bb..d55b6de 100644 > --- a/toolchain/toolchain-external/toolchain-external.mk > +++ b/toolchain/toolchain-external/toolchain-external.mk > @@ -396,6 +396,11 @@ else > TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS = be > endif > TOOLCHAIN_EXTERNAL_SOURCE = arc_gnu_2014.12_prebuilt_uclibc_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS)_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_CORE)_linux_install.tar.gz > +define TOOLCHAIN_EXTERNAL_FIXUP_CMDS > + $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \ > + mkdir -p $${SYSROOT_DIR}/usr/bin ; \ > + cp $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/target-bin/* $${SYSROOT_DIR}/usr/bin Waht about using 'cp -l' instead? That would create hardlinks instead of actual copies. I guess we do not really support building on a filesystem that does not support hard links, do we? Still, this should not be a blocker for inclusion. Regards, Yann E. MORIN. > +endef > else > # Custom toolchain > TOOLCHAIN_EXTERNAL_SITE = $(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL))) > -- > 2.1.0 > -- .-----------------.--------------------.------------------.--------------------. | 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] 4+ messages in thread
* [Buildroot] [PATCH] toolchain-external: fix gdbserver copying for ARC GNU tools 2015-03-16 23:01 ` Yann E. MORIN @ 2015-03-24 10:09 ` Alexey Brodkin 2015-03-24 17:40 ` Yann E. MORIN 0 siblings, 1 reply; 4+ messages in thread From: Alexey Brodkin @ 2015-03-24 10:09 UTC (permalink / raw) To: buildroot Hi Yann, On Tue, 2015-03-17 at 00:01 +0100, Yann E. MORIN wrote: > Alexey, All, > > On 2015-03-17 00:02 +0300, Alexey Brodkin spake thusly: > > Historically in pre-built ARC GNU tools gdbserver is located in > > top-level "target-bin" folder. > > > > Because of that fact if BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY is > > selected Buildroot won't find gdbserver (it looks within > > SYSROOT/ARCH_SYSROOT folder). > > > > Simplest solution is to use TOOLCHAIN_EXTERNAL_FIXUP_CMDS where copy > > everything from "target-bin" foler into SYSROOT/usr/bin. > > > > Reason to copy everything from "target-bin" is to enable possibility in > > the future to copy more pre-built target binaries onto target. > > > > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> > > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > > Cc: Yann E. MORIN <yann.morin.1998@free.fr> > > Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> > > However, a small suggestion (more of a question, in fact) below... > > > --- > > toolchain/toolchain-external/toolchain-external.mk | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk > > index c0429bb..d55b6de 100644 > > --- a/toolchain/toolchain-external/toolchain-external.mk > > +++ b/toolchain/toolchain-external/toolchain-external.mk > > @@ -396,6 +396,11 @@ else > > TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS = be > > endif > > TOOLCHAIN_EXTERNAL_SOURCE = arc_gnu_2014.12_prebuilt_uclibc_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS)_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_CORE)_linux_install.tar.gz > > +define TOOLCHAIN_EXTERNAL_FIXUP_CMDS > > + $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \ > > + mkdir -p $${SYSROOT_DIR}/usr/bin ; \ > > + cp $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/target-bin/* $${SYSROOT_DIR}/usr/bin > > Waht about using 'cp -l' instead? That would create hardlinks instead of > actual copies. > > I guess we do not really support building on a filesystem that does not > support hard links, do we? > > Still, this should not be a blocker for inclusion. Even though we may indeed create both hard- or synmlink, what do you think about use of "install" command? Something like that: --->8--- install -m 0755 -D $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/target-bin/gdbserver $${SYSROOT_DIR}/usr/bin/gdbserver --->8--- Compared to "cp" install with "-D" may create leading path itself, so we won't need additional "mkdir -p". -Alexey ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] toolchain-external: fix gdbserver copying for ARC GNU tools 2015-03-24 10:09 ` Alexey Brodkin @ 2015-03-24 17:40 ` Yann E. MORIN 0 siblings, 0 replies; 4+ messages in thread From: Yann E. MORIN @ 2015-03-24 17:40 UTC (permalink / raw) To: buildroot Alexey, All, On 2015-03-24 10:09 +0000, Alexey Brodkin spake thusly: > On Tue, 2015-03-17 at 00:01 +0100, Yann E. MORIN wrote: > > Alexey, All, > > > > On 2015-03-17 00:02 +0300, Alexey Brodkin spake thusly: > > > Historically in pre-built ARC GNU tools gdbserver is located in > > > top-level "target-bin" folder. > > > > > > Because of that fact if BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY is > > > selected Buildroot won't find gdbserver (it looks within > > > SYSROOT/ARCH_SYSROOT folder). > > > > > > Simplest solution is to use TOOLCHAIN_EXTERNAL_FIXUP_CMDS where copy > > > everything from "target-bin" foler into SYSROOT/usr/bin. > > > > > > Reason to copy everything from "target-bin" is to enable possibility in > > > the future to copy more pre-built target binaries onto target. > > > > > > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> > > > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > > > Cc: Yann E. MORIN <yann.morin.1998@free.fr> > > > > Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> > > > > However, a small suggestion (more of a question, in fact) below... > > > > > --- > > > toolchain/toolchain-external/toolchain-external.mk | 5 +++++ > > > 1 file changed, 5 insertions(+) > > > > > > diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk > > > index c0429bb..d55b6de 100644 > > > --- a/toolchain/toolchain-external/toolchain-external.mk > > > +++ b/toolchain/toolchain-external/toolchain-external.mk > > > @@ -396,6 +396,11 @@ else > > > TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS = be > > > endif > > > TOOLCHAIN_EXTERNAL_SOURCE = arc_gnu_2014.12_prebuilt_uclibc_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS)_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_CORE)_linux_install.tar.gz > > > +define TOOLCHAIN_EXTERNAL_FIXUP_CMDS > > > + $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \ > > > + mkdir -p $${SYSROOT_DIR}/usr/bin ; \ > > > + cp $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/target-bin/* $${SYSROOT_DIR}/usr/bin > > > > Waht about using 'cp -l' instead? That would create hardlinks instead of > > actual copies. > > > > I guess we do not really support building on a filesystem that does not > > support hard links, do we? > > > > Still, this should not be a blocker for inclusion. > > Even though we may indeed create both hard- or synmlink, what do you > think about use of "install" command? > > Something like that: > --->8--- > install -m 0755 -D > $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/target-bin/gdbserver > $${SYSROOT_DIR}/usr/bin/gdbserver > --->8--- > > Compared to "cp" install with "-D" may create leading path itself, so we > won't need additional "mkdir -p". I rev-ed the patch, because it was copying with a glob, and thus doing the mkdir+cp dance is OK in taht case. However, if gdbserver is the only thing we need to copy, then using install -D is indeed much better. So, consider my rev-tag to still be valid if you resubmit with the install -D dance instead. Thank you! :-) 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] 4+ messages in thread
end of thread, other threads:[~2015-03-24 17:40 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-03-16 21:02 [Buildroot] [PATCH] toolchain-external: fix gdbserver copying for ARC GNU tools Alexey Brodkin 2015-03-16 23:01 ` Yann E. MORIN 2015-03-24 10:09 ` Alexey Brodkin 2015-03-24 17:40 ` Yann E. MORIN
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox