* [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