* [Buildroot] [PATCH] binutils: gdb: Support unified binutils-gdb git repository
@ 2014-07-28 14:57 Anton Kolesov
2014-07-28 16:58 ` Thomas Petazzoni
0 siblings, 1 reply; 6+ messages in thread
From: Anton Kolesov @ 2014-07-28 14:57 UTC (permalink / raw)
To: buildroot
If Binutils and/or GDB are fetched from the unified bintuils-gdb repository,
then tarball will contain both Binutils and GDB sources, unlike the "normal"
tarballs that contain only the titular package. To keep packages separated
in Buildroot we need to disable undesired components when configuring.
Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
---
package/binutils/binutils.mk | 2 ++
package/gdb/gdb.mk | 6 ++++++
2 files changed, 8 insertions(+)
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
index 77d0751..2beb5e0 100644
--- a/package/binutils/binutils.mk
+++ b/package/binutils/binutils.mk
@@ -47,6 +47,7 @@ BINUTILS_CONF_OPT = --disable-multilib --disable-werror \
--host=$(GNU_TARGET_NAME) \
--target=$(GNU_TARGET_NAME) \
--enable-install-libiberty \
+ --disable-sim --disable-gdb \
$(BINUTILS_EXTRA_CONFIG_OPTIONS)
# Don't build documentation. It takes up extra space / build time,
@@ -65,6 +66,7 @@ HOST_BINUTILS_CONF_OPT = --disable-multilib --disable-werror \
--target=$(GNU_TARGET_NAME) \
--disable-shared --enable-static \
--with-sysroot=$(STAGING_DIR) \
+ --disable-sim --disable-gdb \
$(BINUTILS_EXTRA_CONFIG_OPTIONS)
# We just want libbfd and libiberty, not the full-blown binutils in staging
diff --git a/package/gdb/gdb.mk b/package/gdb/gdb.mk
index 6640d2c..c58ad21 100644
--- a/package/gdb/gdb.mk
+++ b/package/gdb/gdb.mk
@@ -67,6 +67,9 @@ GDB_CONF_OPT = \
--disable-gdbtk \
--without-x \
--disable-sim \
+ --disable-binutils \
+ --disable-ld \
+ --disable-gas \
$(if $(BR2_PACKAGE_GDB_SERVER),--enable-gdbserver) \
--with-curses \
--without-included-gettext \
@@ -111,6 +114,9 @@ HOST_GDB_CONF_OPT = \
--enable-threads \
--disable-werror \
--without-included-gettext \
+ --disable-binutils \
+ --disable-ld \
+ --disable-gas \
--disable-sim
ifeq ($(GDB_FROM_GIT),y)
--
1.8.4.1
ARC GNU Toolchain will use a unified binutils-gdb repository starting from the
August release. I'm sending this patch in advance to ensure that it will be
sorted out before our release.
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] binutils: gdb: Support unified binutils-gdb git repository
2014-07-28 14:57 [Buildroot] [PATCH] binutils: gdb: Support unified binutils-gdb git repository Anton Kolesov
@ 2014-07-28 16:58 ` Thomas Petazzoni
2014-07-28 17:32 ` Anton Kolesov
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2014-07-28 16:58 UTC (permalink / raw)
To: buildroot
Dear Anton Kolesov,
On Mon, 28 Jul 2014 18:57:04 +0400, Anton Kolesov wrote:
> ARC GNU Toolchain will use a unified binutils-gdb repository starting
> from the August release. I'm sending this patch in advance to ensure
> that it will be sorted out before our release.
Is this a general movement? What is the motivation behind such a change?
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] binutils: gdb: Support unified binutils-gdb git repository
2014-07-28 16:58 ` Thomas Petazzoni
@ 2014-07-28 17:32 ` Anton Kolesov
2014-07-28 18:05 ` Thomas De Schampheleire
0 siblings, 1 reply; 6+ messages in thread
From: Anton Kolesov @ 2014-07-28 17:32 UTC (permalink / raw)
To: buildroot
Hi Thomas,
> -----Original Message-----
> From: Thomas Petazzoni [mailto:thomas.petazzoni at free-electrons.com]
> Sent: 28 July 2014 20:59
> To: Anton Kolesov
> Cc: buildroot at uclibc.org; Alexey Brodkin
> Subject: Re: [Buildroot] [PATCH] binutils: gdb: Support unified binutils-gdb git
> repository
>
> Dear Anton Kolesov,
>
> On Mon, 28 Jul 2014 18:57:04 +0400, Anton Kolesov wrote:
>
> > ARC GNU Toolchain will use a unified binutils-gdb repository starting
> > from the August release. I'm sending this patch in advance to ensure
> > that it will be sorted out before our release.
>
> Is this a general movement? What is the motivation behind such a change?
>
Binutils and GDB migrated to a common Git repository in the October 2013. [1]
Previous Git repositories were incomplete copies of CVS repository which copied
only the relevant files (no binutils files in GDB, and vice versa). In the new
binutils-gdb repository there is no such separation and a result all files
exist in directory after checkout. So if "configure" and "make" are used
without explicit targets, all projects will be built: binutils, ld, gas, bfd,
opcodes, gdb, etc. In case of Buildroot this would mean that selecting Binutils
only, still will build both Binutils and GDB. And if GDB is selected as well,
then both packages will be built two times, and Binutils from GDB directory
will overwrite initial build of Binutils (or vice versa if Binutils will be
built after the GDB). Not only this is a waste of build time, but also binutils
and GDB use separate branches in this common repository: GDB is in master and
gdb-7.* branches, while binutils is in binutils_master and binutils_2_*
branches). I hope that will be merged later on. So in case of Buildroot this means
that separate Git commits (or tags) should be used when downloading source
from Git.
So obviously ARC GNU tools team wants to be in sync with upstream work, thus we
moved to the unified binutils-gdb repository and rebased our patches on top of
it.
As far as I understand this affects only Git repositories, because GNU release
tarballs still contain only relevant packages, but when we download file from
Git over HTTP there is no way to specify custom filter of what
files/directories should be in the tarball, or at least I'm not aware of such
feature.
This change is backward compatible, because if "normal" tarball is used
(without extra directories), than those --disable-* options are just ignored by
configure.
[1] https://sourceware.org/ml/gdb/2013-10/msg00071.html
Anton
> Thanks,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] binutils: gdb: Support unified binutils-gdb git repository
2014-07-28 17:32 ` Anton Kolesov
@ 2014-07-28 18:05 ` Thomas De Schampheleire
2014-07-29 12:54 ` [Buildroot] [PATCH v2] " Anton Kolesov
0 siblings, 1 reply; 6+ messages in thread
From: Thomas De Schampheleire @ 2014-07-28 18:05 UTC (permalink / raw)
To: buildroot
Anton Kolesov <Anton.Kolesov@synopsys.com> schreef:
>Hi Thomas,
>
>> -----Original Message-----
>> From: Thomas Petazzoni [mailto:thomas.petazzoni at free-electrons.com]
>> Sent: 28 July 2014 20:59
>> To: Anton Kolesov
>> Cc: buildroot at uclibc.org; Alexey Brodkin
>> Subject: Re: [Buildroot] [PATCH] binutils: gdb: Support unified binutils-gdb git
>> repository
>>
>> Dear Anton Kolesov,
>>
>> On Mon, 28 Jul 2014 18:57:04 +0400, Anton Kolesov wrote:
>>
>> > ARC GNU Toolchain will use a unified binutils-gdb repository starting
>> > from the August release. I'm sending this patch in advance to ensure
>> > that it will be sorted out before our release.
>>
>> Is this a general movement? What is the motivation behind such a change?
>>
>
>Binutils and GDB migrated to a common Git repository in the October 2013. [1]
>Previous Git repositories were incomplete copies of CVS repository which copied
>only the relevant files (no binutils files in GDB, and vice versa). In the new
>binutils-gdb repository there is no such separation and a result all files
>exist in directory after checkout. So if "configure" and "make" are used
>without explicit targets, all projects will be built: binutils, ld, gas, bfd,
>opcodes, gdb, etc. In case of Buildroot this would mean that selecting Binutils
>only, still will build both Binutils and GDB. And if GDB is selected as well,
>then both packages will be built two times, and Binutils from GDB directory
>will overwrite initial build of Binutils (or vice versa if Binutils will be
>built after the GDB). Not only this is a waste of build time, but also binutils
>and GDB use separate branches in this common repository: GDB is in master and
>gdb-7.* branches, while binutils is in binutils_master and binutils_2_*
>branches). I hope that will be merged later on. So in case of Buildroot this means
>that separate Git commits (or tags) should be used when downloading source
>from Git.
>
>So obviously ARC GNU tools team wants to be in sync with upstream work, thus we
>moved to the unified binutils-gdb repository and rebased our patches on top of
>it.
>
>As far as I understand this affects only Git repositories, because GNU release
>tarballs still contain only relevant packages, but when we download file from
>Git over HTTP there is no way to specify custom filter of what
>files/directories should be in the tarball, or at least I'm not aware of such
>feature.
>
>This change is backward compatible, because if "normal" tarball is used
>(without extra directories), than those --disable-* options are just ignored by
>configure.
>
>[1] https://sourceware.org/ml/gdb/2013-10/msg00071.html
>
I think it would be good to add some of this info to the commit message.
Best regards,
Thomas
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v2] binutils: gdb: Support unified binutils-gdb git repository
2014-07-28 18:05 ` Thomas De Schampheleire
@ 2014-07-29 12:54 ` Anton Kolesov
2014-07-30 17:25 ` Thomas Petazzoni
0 siblings, 1 reply; 6+ messages in thread
From: Anton Kolesov @ 2014-07-29 12:54 UTC (permalink / raw)
To: buildroot
If Binutils and/or GDB are fetched from the unified bintuils-gdb repository,
then tarball will contain both Binutils and GDB sources, unlike the "normal"
tarballs that contain only the titular package. To keep packages separated
in Buildroot we need to disable undesired components when configuring.
Binutils and GDB migrated to a common Git repository in the October 2013
[1]. Previous Git repositories were incomplete copies of CVS repository
which copied only the relevant files (no binutils files in GDB, and vice
versa). In the new binutils-gdb repository there is no such separation and
a result all files exist in directory after checkout. So if "configure" and
"make" are used without explicit targets, all projects will be built:
binutils, ld, gas, bfd, opcodes, gdb, etc. In case of Buildroot this would
mean that selecting Binutils only, still will build both Binutils and GDB.
And if GDB is selected as well, then both packages will be built two times,
and Binutils from GDB directory will overwrite initial build of Binutils (or
vice versa if Binutils will be built after the GDB). This is a serious
problem, because binutils and GDB use separate branches in this common
repository. In case of Buildroot this means that separate Git commits (or
tags) should be used when downloading source from Git.
This affects only Git repositories, because GNU release tarballs still
contain only relevant packages.
This change is backward compatible, because if "normal" tarball is used
(without extra directories), than --disable-* configure options are just
ignored by configure.
[1] https://sourceware.org/ml/gdb/2013-10/msg00071.html
Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
---
package/binutils/binutils.mk | 2 ++
package/gdb/gdb.mk | 6 ++++++
2 files changed, 8 insertions(+)
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
index 77d0751..2beb5e0 100644
--- a/package/binutils/binutils.mk
+++ b/package/binutils/binutils.mk
@@ -47,6 +47,7 @@ BINUTILS_CONF_OPT = --disable-multilib --disable-werror \
--host=$(GNU_TARGET_NAME) \
--target=$(GNU_TARGET_NAME) \
--enable-install-libiberty \
+ --disable-sim --disable-gdb \
$(BINUTILS_EXTRA_CONFIG_OPTIONS)
# Don't build documentation. It takes up extra space / build time,
@@ -65,6 +66,7 @@ HOST_BINUTILS_CONF_OPT = --disable-multilib --disable-werror \
--target=$(GNU_TARGET_NAME) \
--disable-shared --enable-static \
--with-sysroot=$(STAGING_DIR) \
+ --disable-sim --disable-gdb \
$(BINUTILS_EXTRA_CONFIG_OPTIONS)
# We just want libbfd and libiberty, not the full-blown binutils in staging
diff --git a/package/gdb/gdb.mk b/package/gdb/gdb.mk
index 6640d2c..c58ad21 100644
--- a/package/gdb/gdb.mk
+++ b/package/gdb/gdb.mk
@@ -67,6 +67,9 @@ GDB_CONF_OPT = \
--disable-gdbtk \
--without-x \
--disable-sim \
+ --disable-binutils \
+ --disable-ld \
+ --disable-gas \
$(if $(BR2_PACKAGE_GDB_SERVER),--enable-gdbserver) \
--with-curses \
--without-included-gettext \
@@ -111,6 +114,9 @@ HOST_GDB_CONF_OPT = \
--enable-threads \
--disable-werror \
--without-included-gettext \
+ --disable-binutils \
+ --disable-ld \
+ --disable-gas \
--disable-sim
ifeq ($(GDB_FROM_GIT),y)
--
1.8.4.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v2] binutils: gdb: Support unified binutils-gdb git repository
2014-07-29 12:54 ` [Buildroot] [PATCH v2] " Anton Kolesov
@ 2014-07-30 17:25 ` Thomas Petazzoni
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2014-07-30 17:25 UTC (permalink / raw)
To: buildroot
Dear Anton Kolesov,
On Tue, 29 Jul 2014 16:54:37 +0400, Anton Kolesov wrote:
> If Binutils and/or GDB are fetched from the unified bintuils-gdb repository,
> then tarball will contain both Binutils and GDB sources, unlike the "normal"
> tarballs that contain only the titular package. To keep packages separated
> in Buildroot we need to disable undesired components when configuring.
>
> Binutils and GDB migrated to a common Git repository in the October 2013
> [1]. Previous Git repositories were incomplete copies of CVS repository
> which copied only the relevant files (no binutils files in GDB, and vice
> versa). In the new binutils-gdb repository there is no such separation and
> a result all files exist in directory after checkout. So if "configure" and
> "make" are used without explicit targets, all projects will be built:
> binutils, ld, gas, bfd, opcodes, gdb, etc. In case of Buildroot this would
> mean that selecting Binutils only, still will build both Binutils and GDB.
> And if GDB is selected as well, then both packages will be built two times,
> and Binutils from GDB directory will overwrite initial build of Binutils (or
> vice versa if Binutils will be built after the GDB). This is a serious
> problem, because binutils and GDB use separate branches in this common
> repository. In case of Buildroot this means that separate Git commits (or
> tags) should be used when downloading source from Git.
>
> This affects only Git repositories, because GNU release tarballs still
> contain only relevant packages.
>
> This change is backward compatible, because if "normal" tarball is used
> (without extra directories), than --disable-* configure options are just
> ignored by configure.
>
> [1] https://sourceware.org/ml/gdb/2013-10/msg00071.html
>
> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> ---
> package/binutils/binutils.mk | 2 ++
> package/gdb/gdb.mk | 6 ++++++
> 2 files changed, 8 insertions(+)
Thanks, I've committed this patch, after changing it slightly to use a
variable inside gdb.mk and inside binutils.mk to avoid repeating the
options, and add an explanation comment.
See
http://git.buildroot.net/buildroot/commit/?id=b737b12dadd321858f20efcb6b504c8ccbd21fcf.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-07-30 17:25 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-28 14:57 [Buildroot] [PATCH] binutils: gdb: Support unified binutils-gdb git repository Anton Kolesov
2014-07-28 16:58 ` Thomas Petazzoni
2014-07-28 17:32 ` Anton Kolesov
2014-07-28 18:05 ` Thomas De Schampheleire
2014-07-29 12:54 ` [Buildroot] [PATCH v2] " Anton Kolesov
2014-07-30 17:25 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox