diff mbox

ARC: bump tools to 2014.12 release

Message ID 1422879584-18485-1-git-send-email-abrodkin@synopsys.com
State Accepted
Headers show

Commit Message

Alexey Brodkin Feb. 2, 2015, 12:19 p.m. UTC
Now when new shiny tools are released by Synopsys we're ready for
version update in Buildroot again.

More details about arc-2014.12 release are available here:
https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2014.12

Following patches were removed from GCC since they are a part of release
now:
 * 200-size_type_unsigned_int.patch
 * 300-ptrdiff_type_int.patch
 * 400-call-arc_hazard-before-branch-shortening.patch
 * 401-fix-length-attribute-for-casesi_load-pattern.patch
 * 402-fix-length-of-instructions-that-are-in-delay-slot-and-needs-to-be-predicated.patch
 * 403-update-casesi_compact_jump-instruction-length.patch

But since arc-2014.12 tools are still based on GCC 4.8 following patches
ar still relevant so moving to the new folder to match ARC gcc bump.
 * 100-libstdcxx-uclibc-c99.patch
 * 910-gcc-poison-system-directories.patch

Binutils are still based on 2.23 so following patch still makes sense:
 * 600-poison-system-directories.patch

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>

Cc: Anton Kolesov <akolesov@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
---
 package/binutils/Config.in.host                    |  2 +-
 .../600-poison-system-directories.patch            |  0
 package/gcc/Config.in.host                         |  2 +-
 .../arc-2014.08/200-size_type_unsigned_int.patch   | 24 ------
 package/gcc/arc-2014.08/300-ptrdiff_type_int.patch | 26 ------
 ...-call-arc_hazard-before-branch-shortening.patch | 96 ----------------------
 ...-length-attribute-for-casesi_load-pattern.patch | 44 ----------
 ...-in-delay-slot-and-needs-to-be-predicated.patch | 69 ----------------
 ...te-casesi_compact_jump-instruction-length.patch | 31 -------
 .../100-libstdcxx-uclibc-c99.patch                 |  0
 .../910-gcc-poison-system-directories.patch        |  0
 package/gdb/Config.in.host                         |  2 +-
 package/uclibc/Config.in                           |  2 +-
 13 files changed, 4 insertions(+), 294 deletions(-)
 rename package/binutils/{arc-2014.08 => arc-2014.12}/600-poison-system-directories.patch (100%)
 delete mode 100644 package/gcc/arc-2014.08/200-size_type_unsigned_int.patch
 delete mode 100644 package/gcc/arc-2014.08/300-ptrdiff_type_int.patch
 delete mode 100644 package/gcc/arc-2014.08/400-call-arc_hazard-before-branch-shortening.patch
 delete mode 100644 package/gcc/arc-2014.08/401-fix-length-attribute-for-casesi_load-pattern.patch
 delete mode 100644 package/gcc/arc-2014.08/402-fix-length-of-instructions-that-are-in-delay-slot-and-needs-to-be-predicated.patch
 delete mode 100644 package/gcc/arc-2014.08/403-update-casesi_compact_jump-instruction-length.patch
 rename package/gcc/{arc-2014.08 => arc-2014.12}/100-libstdcxx-uclibc-c99.patch (100%)
 rename package/gcc/{arc-2014.08 => arc-2014.12}/910-gcc-poison-system-directories.patch (100%)

Comments

Thomas Petazzoni Feb. 2, 2015, 8:28 p.m. UTC | #1
Dear Alexey Brodkin,

On Mon,  2 Feb 2015 15:19:44 +0300, Alexey Brodkin wrote:
> Now when new shiny tools are released by Synopsys we're ready for
> version update in Buildroot again.
> 
> More details about arc-2014.12 release are available here:
> https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2014.12
> 
> Following patches were removed from GCC since they are a part of release
> now:
>  * 200-size_type_unsigned_int.patch
>  * 300-ptrdiff_type_int.patch
>  * 400-call-arc_hazard-before-branch-shortening.patch
>  * 401-fix-length-attribute-for-casesi_load-pattern.patch
>  * 402-fix-length-of-instructions-that-are-in-delay-slot-and-needs-to-be-predicated.patch
>  * 403-update-casesi_compact_jump-instruction-length.patch
> 
> But since arc-2014.12 tools are still based on GCC 4.8 following patches
> ar still relevant so moving to the new folder to match ARC gcc bump.
>  * 100-libstdcxx-uclibc-c99.patch
>  * 910-gcc-poison-system-directories.patch
> 
> Binutils are still based on 2.23 so following patch still makes sense:
>  * 600-poison-system-directories.patch
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>

Applied, thanks!

Thomas
Thomas Petazzoni March 4, 2015, 11:03 a.m. UTC | #2
Dear Alexey Brodkin,

On Mon,  2 Feb 2015 15:19:44 +0300, Alexey Brodkin wrote:
> Now when new shiny tools are released by Synopsys we're ready for
> version update in Buildroot again.
> 
> More details about arc-2014.12 release are available here:
> https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2014.12
> 
> Following patches were removed from GCC since they are a part of release
> now:
>  * 200-size_type_unsigned_int.patch
>  * 300-ptrdiff_type_int.patch
>  * 400-call-arc_hazard-before-branch-shortening.patch
>  * 401-fix-length-attribute-for-casesi_load-pattern.patch
>  * 402-fix-length-of-instructions-that-are-in-delay-slot-and-needs-to-be-predicated.patch
>  * 403-update-casesi_compact_jump-instruction-length.patch
> 
> But since arc-2014.12 tools are still based on GCC 4.8 following patches
> ar still relevant so moving to the new folder to match ARC gcc bump.
>  * 100-libstdcxx-uclibc-c99.patch
>  * 910-gcc-poison-system-directories.patch
> 
> Binutils are still based on 2.23 so following patch still makes sense:
>  * 600-poison-system-directories.patch
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> 
> Cc: Anton Kolesov <akolesov@synopsys.com>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: Peter Korsgaard <peter@korsgaard.com>

It seems like the update of GDB for ARC is causing some build problems:

  http://autobuild.buildroot.org/results/d62/d62f472d70f60281dfe94cffc46a3e0566fd4a3d/build-end.log

It's trying to build a shared libbfd.so using a statically compiled
libiberty.a which wasn't built with -fPIC. I don't know if the problem
is specific to ARC GDB or not.

Can you have a look?

Thanks!

Thomas
Alexey Brodkin March 13, 2015, 7:18 a.m. UTC | #3
Hi Thomas,

On Wed, 2015-03-04 at 12:03 +0100, Thomas Petazzoni wrote:
> Dear Alexey Brodkin,
> 
> On Mon,  2 Feb 2015 15:19:44 +0300, Alexey Brodkin wrote:
> > Now when new shiny tools are released by Synopsys we're ready for
> > version update in Buildroot again.
> > 
> > More details about arc-2014.12 release are available here:
> > https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2014.12
> > 
> > Following patches were removed from GCC since they are a part of release
> > now:
> >  * 200-size_type_unsigned_int.patch
> >  * 300-ptrdiff_type_int.patch
> >  * 400-call-arc_hazard-before-branch-shortening.patch
> >  * 401-fix-length-attribute-for-casesi_load-pattern.patch
> >  * 402-fix-length-of-instructions-that-are-in-delay-slot-and-needs-to-be-predicated.patch
> >  * 403-update-casesi_compact_jump-instruction-length.patch
> > 
> > But since arc-2014.12 tools are still based on GCC 4.8 following patches
> > ar still relevant so moving to the new folder to match ARC gcc bump.
> >  * 100-libstdcxx-uclibc-c99.patch
> >  * 910-gcc-poison-system-directories.patch
> > 
> > Binutils are still based on 2.23 so following patch still makes sense:
> >  * 600-poison-system-directories.patch
> > 
> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> > 
> > Cc: Anton Kolesov <akolesov@synopsys.com>
> > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> > Cc: Peter Korsgaard <peter@korsgaard.com>
> 
> It seems like the update of GDB for ARC is causing some build problems:
> 
>   http://autobuild.buildroot.org/results/d62/d62f472d70f60281dfe94cffc46a3e0566fd4a3d/build-end.log
> 
> It's trying to build a shared libbfd.so using a statically compiled
> libiberty.a which wasn't built with -fPIC. I don't know if the problem
> is specific to ARC GDB or not.

Sorry for late reply.

I've just tried to re-build with defconfig from this autobuild and for
me it got successfully to the end.

I'm on master branch @ commit:
 --->8---
 commit 6a3a9784db170ec05b300f228cf8a4bc48d838ec
 Author: Michael Trimarchi <michael@amarulasolutions.com>
 Date:   Sun Mar 8 09:28:13 2015 +0100

    python-spidev: new package
 --->8---

I'll downgrade to the same commit as mentioned in autobuild:
 --->8---
 commit b9f39b2b389754bb53294311b938310283fda638
 Author: Gustavo Zacarias <gustavo@zacarias.com.ar>
 Date:   Tue Mar 3 15:43:09 2015 -0300

    whois: bump to version 5.2.5
 --->8---
and will give it another try, but frankly I don't expect any differences
because I didn't find any sensible commits in between these 2 snapshots.

-Alexey
Romain Naour March 13, 2015, 8:19 a.m. UTC | #4
Hi Alexey,

Le 13 mars 2015 08:18:48 UTC+01:00, Alexey Brodkin <Alexey.Brodkin@synopsys.com> a écrit :
>Hi Thomas,
>
>On Wed, 2015-03-04 at 12:03 +0100, Thomas Petazzoni wrote:
>> Dear Alexey Brodkin,
>> 
>> On Mon,  2 Feb 2015 15:19:44 +0300, Alexey Brodkin wrote:
>> > Now when new shiny tools are released by Synopsys we're ready for
>> > version update in Buildroot again.
>> > 
>> > More details about arc-2014.12 release are available here:
>> >
>https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2014.12
>> > 
>> > Following patches were removed from GCC since they are a part of
>release
>> > now:
>> >  * 200-size_type_unsigned_int.patch
>> >  * 300-ptrdiff_type_int.patch
>> >  * 400-call-arc_hazard-before-branch-shortening.patch
>> >  * 401-fix-length-attribute-for-casesi_load-pattern.patch
>> >  *
>402-fix-length-of-instructions-that-are-in-delay-slot-and-needs-to-be-predicated.patch
>> >  * 403-update-casesi_compact_jump-instruction-length.patch
>> > 
>> > But since arc-2014.12 tools are still based on GCC 4.8 following
>patches
>> > ar still relevant so moving to the new folder to match ARC gcc
>bump.
>> >  * 100-libstdcxx-uclibc-c99.patch
>> >  * 910-gcc-poison-system-directories.patch
>> > 
>> > Binutils are still based on 2.23 so following patch still makes
>sense:
>> >  * 600-poison-system-directories.patch
>> > 
>> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
>> > 
>> > Cc: Anton Kolesov <akolesov@synopsys.com>
>> > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
>> > Cc: Peter Korsgaard <peter@korsgaard.com>
>> 
>> It seems like the update of GDB for ARC is causing some build
>problems:
>> 
>>  
>http://autobuild.buildroot.org/results/d62/d62f472d70f60281dfe94cffc46a3e0566fd4a3d/build-end.log
>> 
>> It's trying to build a shared libbfd.so using a statically compiled
>> libiberty.a which wasn't built with -fPIC. I don't know if the
>problem
>> is specific to ARC GDB or not.
>
>Sorry for late reply.
>
>I've just tried to re-build with defconfig from this autobuild and for
>me it got successfully to the end.
>
>I'm on master branch @ commit:
> --->8---
> commit 6a3a9784db170ec05b300f228cf8a4bc48d838ec
> Author: Michael Trimarchi <michael@amarulasolutions.com>
> Date:   Sun Mar 8 09:28:13 2015 +0100
>
>    python-spidev: new package
> --->8---
>
>I'll downgrade to the same commit as mentioned in autobuild:
> --->8---
> commit b9f39b2b389754bb53294311b938310283fda638
> Author: Gustavo Zacarias <gustavo@zacarias.com.ar>
> Date:   Tue Mar 3 15:43:09 2015 -0300
>
>    whois: bump to version 5.2.5
> --->8---
>and will give it another try, but frankly I don't expect any
>differences
>because I didn't find any sensible commits in between these 2
>snapshots.
>

Can you have a look at this patch:
https://patchwork.ozlabs.org/patch/449686/

The issue seem to be related to avr32 removal.

Best regards,
Romain

>-Alexey
>_______________________________________________
>buildroot mailing list
>buildroot@busybox.net
>http://lists.busybox.net/mailman/listinfo/buildroot
Alexey Brodkin March 13, 2015, 9 a.m. UTC | #5
On Fri, 2015-03-13 at 09:19 +0100, Romain Naour wrote:
> Hi Alexey,
> Can you have a look at this patch:
> https://patchwork.ozlabs.org/patch/449686/
> 
> The issue seem to be related to avr32 removal.

Strange enough I got everything built even from the same git snapshot as
it was in autobuilder.

That means I cannot really test proposed patch - it won't fix anything
for me because everything works already.

The only reason I may think of for that difference in behavior is host
gcc version. I'm on 64-bit Fedora 21 with gcc 4.9.2:
 --->8---
 gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC)
 --->8---

Romain, Thomas what host gcc you/autobuilder use?

-Alexey
Romain Naour March 13, 2015, 9:10 a.m. UTC | #6
Hi Alexey,

----- Mail original -----
| De: "Alexey Brodkin" <Alexey.Brodkin@synopsys.com>
| À: "romain naour" <romain.naour@openwide.fr>, "thomas petazzoni" <thomas.petazzoni@free-electrons.com>
| Cc: buildroot@uclibc.org
| Envoyé: Vendredi 13 Mars 2015 10:00:34
| Objet: Re: [Buildroot] [PATCH] ARC: bump tools to 2014.12 release
| 
| On Fri, 2015-03-13 at 09:19 +0100, Romain Naour wrote:
| > Hi Alexey,
| > Can you have a look at this patch:
| > https://patchwork.ozlabs.org/patch/449686/
| > 
| > The issue seem to be related to avr32 removal.
| 
| Strange enough I got everything built even from the same git snapshot
| as
| it was in autobuilder.
| 
| That means I cannot really test proposed patch - it won't fix
| anything
| for me because everything works already.
| 
| The only reason I may think of for that difference in behavior is
| host
| gcc version. I'm on 64-bit Fedora 21 with gcc 4.9.2:
|  --->8---
|  gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC)
|  --->8---
| 
| Romain, Thomas what host gcc you/autobuilder use?

Same at home 64-bit Fedora 21 with gcc 4.9.2 :)
As I said in the patch comment, I can't reproduce the issue...

Best regards,
Romain
| 
| -Alexey
|
Alexey Brodkin March 24, 2015, 1:51 p.m. UTC | #7
Hi Thomas,

On Fri, 2015-03-13 at 10:10 +0100, Romain Naour wrote:
> Hi Alexey,
> 
> ----- Mail original -----
> | De: "Alexey Brodkin" <Alexey.Brodkin@synopsys.com>
> | À: "romain naour" <romain.naour@openwide.fr>, "thomas petazzoni" <thomas.petazzoni@free-electrons.com>
> | Cc: buildroot@uclibc.org
> | Envoyé: Vendredi 13 Mars 2015 10:00:34
> | Objet: Re: [Buildroot] [PATCH] ARC: bump tools to 2014.12 release
> | 
> | On Fri, 2015-03-13 at 09:19 +0100, Romain Naour wrote:
> | > Hi Alexey,
> | > Can you have a look at this patch:
> | > https://patchwork.ozlabs.org/patch/449686/

Do you think the patch Romain mentioned may fix
http://autobuild.buildroot.org/results/d62/d62f472d70f60281dfe94cffc46a3e0566fd4a3d ?

-Alexey
Thomas Petazzoni March 24, 2015, 3:31 p.m. UTC | #8
Dear Alexey Brodkin,

On Tue, 24 Mar 2015 13:51:08 +0000, Alexey Brodkin wrote:

> On Fri, 2015-03-13 at 10:10 +0100, Romain Naour wrote:
> > Hi Alexey,
> > 
> > ----- Mail original -----
> > | De: "Alexey Brodkin" <Alexey.Brodkin@synopsys.com>
> > | À: "romain naour" <romain.naour@openwide.fr>, "thomas petazzoni" <thomas.petazzoni@free-electrons.com>
> > | Cc: buildroot@uclibc.org
> > | Envoyé: Vendredi 13 Mars 2015 10:00:34
> > | Objet: Re: [Buildroot] [PATCH] ARC: bump tools to 2014.12 release
> > | 
> > | On Fri, 2015-03-13 at 09:19 +0100, Romain Naour wrote:
> > | > Hi Alexey,
> > | > Can you have a look at this patch:
> > | > https://patchwork.ozlabs.org/patch/449686/
> 
> Do you think the patch Romain mentioned may fix
> http://autobuild.buildroot.org/results/d62/d62f472d70f60281dfe94cffc46a3e0566fd4a3d ?

Yes, most likely it will fix this problem.

Thomas
Alexey Brodkin March 24, 2015, 4:03 p.m. UTC | #9
Hi Thomas,

On Tue, 2015-03-24 at 16:31 +0100, Thomas Petazzoni wrote:
> Dear Alexey Brodkin,
> 
> On Tue, 24 Mar 2015 13:51:08 +0000, Alexey Brodkin wrote:
> 
> > On Fri, 2015-03-13 at 10:10 +0100, Romain Naour wrote:
> > > Hi Alexey,
> > > 
> > > ----- Mail original -----
> > > | De: "Alexey Brodkin" <Alexey.Brodkin@synopsys.com>
> > > | À: "romain naour" <romain.naour@openwide.fr>, "thomas petazzoni" <thomas.petazzoni@free-electrons.com>
> > > | Cc: buildroot@uclibc.org
> > > | Envoyé: Vendredi 13 Mars 2015 10:00:34
> > > | Objet: Re: [Buildroot] [PATCH] ARC: bump tools to 2014.12 release
> > > | 
> > > | On Fri, 2015-03-13 at 09:19 +0100, Romain Naour wrote:
> > > | > Hi Alexey,
> > > | > Can you have a look at this patch:
> > > | > https://patchwork.ozlabs.org/patch/449686/
> > 
> > Do you think the patch Romain mentioned may fix
> > http://autobuild.buildroot.org/results/d62/d62f472d70f60281dfe94cffc46a3e0566fd4a3d ?
> 
> Yes, most likely it will fix this problem.

Are you going to apply it or we'll need to find somebody to try it
first?

-Alexey
Romain Naour April 5, 2015, 9:53 p.m. UTC | #10
Hi Alexey,

Le 24/03/2015 17:03, Alexey Brodkin a écrit :
> Hi Thomas,
> 
> On Tue, 2015-03-24 at 16:31 +0100, Thomas Petazzoni wrote:
>> Dear Alexey Brodkin,
>>
>> On Tue, 24 Mar 2015 13:51:08 +0000, Alexey Brodkin wrote:
>>
>>> On Fri, 2015-03-13 at 10:10 +0100, Romain Naour wrote:
>>>> Hi Alexey,
>>>>
>>>> ----- Mail original -----
>>>> | De: "Alexey Brodkin" <Alexey.Brodkin@synopsys.com>
>>>> | À: "romain naour" <romain.naour@openwide.fr>, "thomas petazzoni" <thomas.petazzoni@free-electrons.com>
>>>> | Cc: buildroot@uclibc.org
>>>> | Envoyé: Vendredi 13 Mars 2015 10:00:34
>>>> | Objet: Re: [Buildroot] [PATCH] ARC: bump tools to 2014.12 release
>>>> | 
>>>> | On Fri, 2015-03-13 at 09:19 +0100, Romain Naour wrote:
>>>> | > Hi Alexey,
>>>> | > Can you have a look at this patch:
>>>> | > https://patchwork.ozlabs.org/patch/449686/
>>>
>>> Do you think the patch Romain mentioned may fix
>>> http://autobuild.buildroot.org/results/d62/d62f472d70f60281dfe94cffc46a3e0566fd4a3d ?
>>
>> Yes, most likely it will fix this problem.
> 
> Are you going to apply it or we'll need to find somebody to try it
> first?
> 

I'm back on this issue and I found a way to reproduce it.

As you can see in the build.log, libiberty.a is located in host/usr/lib/libiberty.a
But on my machine libiberty.a is located in host/usr/lib64/libiberty.a

This is really weird because autobuilders are also 64bits machine
(x86_64-unknown-linux-gnu) and there is no reason that libiberty.a is not in the
same place...
So, I moved libiberty.a from host/usr/lib64/libiberty.a to
host/usr/lib/libiberty.a and now I have the very same build failure.

When gdb is build with shared libraries, it try to link with it own libiberty.a
(host-gdb-7.8.2/bfd/../libiberty/pic -liberty) but it take the one from
host/usr/lib/libiberty.a because -LPath/to/host/usr/lib/libiberty.a is before
-LPath/to/build/host-gdb-7.8.2/bfd/../libiberty/pic.

See the complete gcc line (verbose):
/bin/sh ./libtool --tag=CC   --mode=link /usr/bin/gcc -W -Wall
-Wstrict-prototypes -Wmissing-prototypes -Wshadow -O2
-I/home/naourr/git/buildroot/test/gdb/host/usr/include  -release `cat
libtool-soversion`  -L/home/naourr/git/buildroot/test/gdb/host/lib
-L/home/naourr/git/buildroot/test/gdb/host/usr/lib
-Wl,-rpath,/home/naourr/git/buildroot/test/gdb/host/usr/lib -o libbfd.la -rpath
/home/naourr/git/buildroot/test/gdb/host/usr/x86_64-unknown-linux-gnu/arm-buildroot-linux-uclibcgnueabi/lib
archive.lo archures.lo bfd.lo bfdio.lo bfdwin.lo cache.lo coffgen.lo corefile.lo
format.lo init.lo libbfd.lo opncls.lo reloc.lo section.lo syms.lo targets.lo
hash.lo linker.lo srec.lo binary.lo tekhex.lo ihex.lo stabs.lo stab-syms.lo
merge.lo dwarf2.lo simple.lo compress.lo verilog.lo `cat ofiles`
-L/home/naourr/git/buildroot/test/gdb/build/host-gdb-7.8.2/bfd/../libiberty/pic
-liberty -Wl,-lc,--as-needed,-lm,--no-as-needed  -lz

This line come from gdb/bfd/Makefile.in: l1239:
libbfd.la: $(libbfd_la_OBJECTS) $(libbfd_la_DEPENDENCIES)
	$(libbfd_la_LINK) $(am_libbfd_la_rpath) $(libbfd_la_OBJECTS)
$(libbfd_la_LIBADD) $(LIBS)

One solution is to disable shared libraries (preferred).

The second is to tweak LDFLAGS in gdb.mk like this:
HOST_GDB_CONF_OPTS = \
	[...]
	LDFLAGS="-L$(@D)/bfd/../libiberty/pic $(HOST_LDFLAGS)"

I don't see a better fix for gdb.

Best regards,
Romain
Romain Naour April 6, 2015, 8:29 p.m. UTC | #11
Hi Alexey,

Le 05/04/2015 23:53, Romain Naour a écrit :
> Hi Alexey,
> 
> Le 24/03/2015 17:03, Alexey Brodkin a écrit :
>> Hi Thomas,
>>
>> On Tue, 2015-03-24 at 16:31 +0100, Thomas Petazzoni wrote:
>>> Dear Alexey Brodkin,
>>>
>>> On Tue, 24 Mar 2015 13:51:08 +0000, Alexey Brodkin wrote:
>>>
>>>> On Fri, 2015-03-13 at 10:10 +0100, Romain Naour wrote:
>>>>> Hi Alexey,
>>>>>
>>>>> ----- Mail original -----
>>>>> | De: "Alexey Brodkin" <Alexey.Brodkin@synopsys.com>
>>>>> | À: "romain naour" <romain.naour@openwide.fr>, "thomas petazzoni" <thomas.petazzoni@free-electrons.com>
>>>>> | Cc: buildroot@uclibc.org
>>>>> | Envoyé: Vendredi 13 Mars 2015 10:00:34
>>>>> | Objet: Re: [Buildroot] [PATCH] ARC: bump tools to 2014.12 release
>>>>> | 
>>>>> | On Fri, 2015-03-13 at 09:19 +0100, Romain Naour wrote:
>>>>> | > Hi Alexey,
>>>>> | > Can you have a look at this patch:
>>>>> | > https://patchwork.ozlabs.org/patch/449686/
>>>>
>>>> Do you think the patch Romain mentioned may fix
>>>> http://autobuild.buildroot.org/results/d62/d62f472d70f60281dfe94cffc46a3e0566fd4a3d ?
>>>
>>> Yes, most likely it will fix this problem.
>>
>> Are you going to apply it or we'll need to find somebody to try it
>> first?
>>
> 
> I'm back on this issue and I found a way to reproduce it.
> 
> As you can see in the build.log, libiberty.a is located in host/usr/lib/libiberty.a
> But on my machine libiberty.a is located in host/usr/lib64/libiberty.a
> 
> This is really weird because autobuilders are also 64bits machine
> (x86_64-unknown-linux-gnu) and there is no reason that libiberty.a is not in the
> same place...
> So, I moved libiberty.a from host/usr/lib64/libiberty.a to
> host/usr/lib/libiberty.a and now I have the very same build failure.

This issue reminds me the issue related to config.site import while
cross-compiling...
See:
http://git.buildroot.net/buildroot/commit/?id=f8d4fe376cf65cc4e41423804869a79c2570f674

I think the CONFIG_SITE=/dev/null setting is not taken into account somewhere
(binutils or gcc) and the /usr/share/config.site file is sourced.
So the libdir value is changed lib64 and that is why libiberty.a is installed to
host/usr/lib64.

I'm able to reproduce easily the issue on a debian 64bits and not on a Fedora 21
64bits.

Best regards,
Romain

> 
> When gdb is build with shared libraries, it try to link with it own libiberty.a
> (host-gdb-7.8.2/bfd/../libiberty/pic -liberty) but it take the one from
> host/usr/lib/libiberty.a because -LPath/to/host/usr/lib/libiberty.a is before
> -LPath/to/build/host-gdb-7.8.2/bfd/../libiberty/pic.
> 
> See the complete gcc line (verbose):
> /bin/sh ./libtool --tag=CC   --mode=link /usr/bin/gcc -W -Wall
> -Wstrict-prototypes -Wmissing-prototypes -Wshadow -O2
> -I/home/naourr/git/buildroot/test/gdb/host/usr/include  -release `cat
> libtool-soversion`  -L/home/naourr/git/buildroot/test/gdb/host/lib
> -L/home/naourr/git/buildroot/test/gdb/host/usr/lib
> -Wl,-rpath,/home/naourr/git/buildroot/test/gdb/host/usr/lib -o libbfd.la -rpath
> /home/naourr/git/buildroot/test/gdb/host/usr/x86_64-unknown-linux-gnu/arm-buildroot-linux-uclibcgnueabi/lib
> archive.lo archures.lo bfd.lo bfdio.lo bfdwin.lo cache.lo coffgen.lo corefile.lo
> format.lo init.lo libbfd.lo opncls.lo reloc.lo section.lo syms.lo targets.lo
> hash.lo linker.lo srec.lo binary.lo tekhex.lo ihex.lo stabs.lo stab-syms.lo
> merge.lo dwarf2.lo simple.lo compress.lo verilog.lo `cat ofiles`
> -L/home/naourr/git/buildroot/test/gdb/build/host-gdb-7.8.2/bfd/../libiberty/pic
> -liberty -Wl,-lc,--as-needed,-lm,--no-as-needed  -lz
> 
> This line come from gdb/bfd/Makefile.in: l1239:
> libbfd.la: $(libbfd_la_OBJECTS) $(libbfd_la_DEPENDENCIES)
> 	$(libbfd_la_LINK) $(am_libbfd_la_rpath) $(libbfd_la_OBJECTS)
> $(libbfd_la_LIBADD) $(LIBS)
> 
> One solution is to disable shared libraries (preferred).
> 
> The second is to tweak LDFLAGS in gdb.mk like this:
> HOST_GDB_CONF_OPTS = \
> 	[...]
> 	LDFLAGS="-L$(@D)/bfd/../libiberty/pic $(HOST_LDFLAGS)"
> 
> I don't see a better fix for gdb.
> 
> Best regards,
> Romain
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
diff mbox

Patch

diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 6dac3c0..0739467 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -34,7 +34,7 @@  endchoice
 config BR2_BINUTILS_VERSION
 	string
 	default "2.18-avr32-1.0.1" if BR2_BINUTILS_VERSION_2_18_AVR32_1_0_1
-	default "arc-2014.08"	if BR2_arc
+	default "arc-2014.12"	if BR2_arc
 	default "2.22"		if BR2_BINUTILS_VERSION_2_22
 	default "2.23.2"	if BR2_BINUTILS_VERSION_2_23_2
 	default "2.24"		if BR2_BINUTILS_VERSION_2_24
diff --git a/package/binutils/arc-2014.08/600-poison-system-directories.patch b/package/binutils/arc-2014.12/600-poison-system-directories.patch
similarity index 100%
rename from package/binutils/arc-2014.08/600-poison-system-directories.patch
rename to package/binutils/arc-2014.12/600-poison-system-directories.patch
diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index 0750807..24004c4 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -97,7 +97,7 @@  config BR2_GCC_VERSION
 	default "4.7.4"     if BR2_GCC_VERSION_4_7_X
 	default "4.8.4"     if BR2_GCC_VERSION_4_8_X
 	default "4.9.2"     if BR2_GCC_VERSION_4_9_X
-	default "arc-2014.08" if BR2_GCC_VERSION_4_8_ARC
+	default "arc-2014.12" if BR2_GCC_VERSION_4_8_ARC
 
 config BR2_EXTRA_GCC_CONFIG_OPTIONS
 	string "Additional gcc options"
diff --git a/package/gcc/arc-2014.08/200-size_type_unsigned_int.patch b/package/gcc/arc-2014.08/200-size_type_unsigned_int.patch
deleted file mode 100644
index a6a0419..0000000
--- a/package/gcc/arc-2014.08/200-size_type_unsigned_int.patch
+++ /dev/null
@@ -1,24 +0,0 @@ 
-Fixes SIZE_TYPE to be "unsigned int" instead of "long unsigned int".
-
-This makes size_t to be "unsigned" ssize_t which makes happy compiler on data
-type checks.
-
-Fix is taken from current development branch of GCC for ARC and will be a
-part of the next release of ARC tools, so at that point patch should be dropped.
-
-https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/249f040299402647525c3f15b79d319fa7acddd3
-
-Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
----
-
---- a/gcc/config/arc/arc.h
-+++ b/gcc/config/arc/arc.h
-@@ -487,7 +487,7 @@ if (GET_MODE_CLASS (MODE) == MODE_INT		\
- /* Define this as 1 if `char' should by default be signed; else as 0.  */
- #define DEFAULT_SIGNED_CHAR 0
- 
--#define SIZE_TYPE "long unsigned int"
-+#define SIZE_TYPE "unsigned int"
- #define PTRDIFF_TYPE "long int"
- #define WCHAR_TYPE "int"
- #define WCHAR_TYPE_SIZE 32
diff --git a/package/gcc/arc-2014.08/300-ptrdiff_type_int.patch b/package/gcc/arc-2014.08/300-ptrdiff_type_int.patch
deleted file mode 100644
index 6ee765b..0000000
--- a/package/gcc/arc-2014.08/300-ptrdiff_type_int.patch
+++ /dev/null
@@ -1,26 +0,0 @@ 
-Redefine PTRDIFF_TYPE
-
-Change of SIZE_TYPE from "long unsigned int" to "unsigned int" introduced
-regression due to existing PTRDIFF_TYPE.
-
-Now to fix regression convert PTRDIFF_TYPE to simple "int".
-
-Fix is taken from current development branch of GCC for ARC and will be a
-part of the next release of ARC tools, so at that point patch should be dropped.
-
-https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/846e92167aa4f486259c9ff44bb4e6cce6097fa4
-
-Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
----
-
---- a/gcc/config/arc/arc.h
-+++ b/gcc/config/arc/arc.h
-@@ -488,7 +488,7 @@ if (GET_MODE_CLASS (MODE) == MODE_INT		\
- #define DEFAULT_SIGNED_CHAR 0
- 
- #define SIZE_TYPE "unsigned int"
--#define PTRDIFF_TYPE "long int"
-+#define PTRDIFF_TYPE "int"
- #define WCHAR_TYPE "int"
- #define WCHAR_TYPE_SIZE 32
- 
diff --git a/package/gcc/arc-2014.08/400-call-arc_hazard-before-branch-shortening.patch b/package/gcc/arc-2014.08/400-call-arc_hazard-before-branch-shortening.patch
deleted file mode 100644
index 7361e6b..0000000
--- a/package/gcc/arc-2014.08/400-call-arc_hazard-before-branch-shortening.patch
+++ /dev/null
@@ -1,96 +0,0 @@ 
-Call arc_hazard before branch shortening
-
-On attempt to compile busybox (1.22.1) from buildroot master following build
-error happened:
---->---
-$ arc-linux-gcc -Iinclude -Ilibbb  -include include/autoconf.h -D_FILE_OFFSET_BITS=64 -fstack-protector-all -fno-guess-branch-probability -Os -c -o libbb/xfuncs.o libbb/xfuncs.c
-xfuncs.s: Assembler messages:
-xfuncs.s:444: Error: operand out of range (128 is not between -128 and 127)
---->---
-
-Fix is taken from current development branch of GCC for ARC and will be a
-part of the next release of ARC tools, so at that point patch should be dropped.
-
-https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/37ba2006be0b8c629d2f8ba6c5ec2819bd0269e5
-
-Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
----
-
-diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
-index 7d64f69..30baae1 100644
---- a/gcc/config/arc/arc.c
-+++ b/gcc/config/arc/arc.c
-@@ -6520,6 +6520,16 @@ workaround_arc_anomaly (void)
- {
-   rtx insn, succ0, succ1;
- 
-+  /* For any architecture: call arc_hazard here. */
-+  for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
-+    {
-+      succ0 = next_real_insn(insn);
-+      if (arc_hazard (insn, succ0))
-+	{
-+	  emit_insn_before (gen_nopv (), succ0);
-+	}
-+    }
-+
-   if (!TARGET_ARC700)
-     return;
- 
-@@ -8710,7 +8720,7 @@ arc_loop_hazard (rtx pred, rtx succ)
- 	succ_bb = BLOCK_FOR_INSN (NEXT_INSN (label));
-     }
- 
--  if (succ_bb && REGNO_REG_SET_P (df_get_live_in (succ_bb), LP_COUNT))
-+  if (succ_bb && REGNO_REG_SET_P (df_get_live_out (succ_bb), LP_COUNT))
-     return true;
- 
-   return false;
-diff --git a/gcc/testsuite/gcc.target/arc/pr9000798619.c b/gcc/testsuite/gcc.target/arc/pr9000798619.c
-new file mode 100644
-index 0000000..b08b32d
---- /dev/null
-+++ b/gcc/testsuite/gcc.target/arc/pr9000798619.c
-@@ -0,0 +1,42 @@
-+/* { dg-do assemble } */
-+/* { dg-options "-Os -fstack-protector-all -fno-guess-branch-probability" } */
-+/* The arc_hazard introduces a NOP which is not taken into account by
-+   branch shortening step, resulting in an out of range branch
-+   offset (ARC700 architecture). */
-+
-+typedef unsigned char uint8_t;
-+extern int *const bb_errno;
-+
-+char* hex2bin(char *dst, const char *str, int count)
-+{
-+ (*bb_errno) = 22;
-+ while (*str && count) {
-+  uint8_t val;
-+  uint8_t c = *str++;
-+  if (((unsigned char)((c) - '0') <= 9))
-+   val = c - '0';
-+  else if ((c|0x20) >= 'a' && (c|0x20) <= 'f')
-+   val = (c|0x20) - ('a' - 10);
-+  else
-+   return ((void *)0);
-+  val <<= 4;
-+  c = *str;
-+  if (((unsigned char)((c) - '0') <= 9))
-+   val |= c - '0';
-+  else if ((c|0x20) >= 'a' && (c|0x20) <= 'f')
-+   val |= (c|0x20) - ('a' - 10);
-+  else if (c == ':' || c == '\0')
-+   val >>= 4;
-+  else
-+   return ((void *)0);
-+
-+  *dst++ = val;
-+  if (c != '\0')
-+   str++;
-+  if (*str == ':')
-+   str++;
-+  count--;
-+ }
-+ (*bb_errno) = (*str ? 34 : 0);
-+ return dst;
-+}
diff --git a/package/gcc/arc-2014.08/401-fix-length-attribute-for-casesi_load-pattern.patch b/package/gcc/arc-2014.08/401-fix-length-attribute-for-casesi_load-pattern.patch
deleted file mode 100644
index 959c1cc..0000000
--- a/package/gcc/arc-2014.08/401-fix-length-attribute-for-casesi_load-pattern.patch
+++ /dev/null
@@ -1,44 +0,0 @@ 
-Fix length attribute for casesi_load pattern.
-
-Perl compilation was broken:
---->---
-$ arc-linux-gcc -DPERL_CORE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -matomic -pipe -mdiv-rem -Os   -c -o perl.o perl.c
-perl.s: Assembler messages:
-perl.s:1271: Error: operand out of range (512 is not between -512 and 511)
---->---
-
-Fix is taken from current development branch of GCC for ARC and will be a
-part of the next release of ARC tools, so at that point patch should be dropped.
-
-https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/664ccd8d5ac8e047faac599309c9c2867af3a736
-
-Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
----
-
---- a/gcc/config/arc/arc.md
-+++ b/gcc/config/arc/arc.md
-@@ -3834,22 +3834,8 @@
-     }
- }"
-   [(set_attr "type" "load")
--   (set_attr_alternative "iscompact"
--     [(cond
--	[(ne (symbol_ref "GET_MODE (PATTERN (next_real_insn (operands[3])))")
--	     (symbol_ref "QImode"))
--	 (const_string "false")
--	 (match_test "!ADDR_DIFF_VEC_FLAGS (PATTERN (next_real_insn (operands[3]))).offset_unsigned")
--	 (const_string "false")]
--	(const_string "true"))
--      (const_string "false")
--      (const_string "false")])
--   (set_attr_alternative "length"
--     [(cond
--	[(eq_attr "iscompact" "false") (const_int 4)]
--	(const_int 2))
--      (const_int 4)
--      (const_int 8)])])
-+   (set_attr "iscompact" "false")
-+   (set_attr "length" "4,4,8")])
- 
- ; Unlike the canonical tablejump, this pattern always uses a jump address,
- ; even for CASE_VECTOR_PC_RELATIVE.
diff --git a/package/gcc/arc-2014.08/402-fix-length-of-instructions-that-are-in-delay-slot-and-needs-to-be-predicated.patch b/package/gcc/arc-2014.08/402-fix-length-of-instructions-that-are-in-delay-slot-and-needs-to-be-predicated.patch
deleted file mode 100644
index 7ceeada..0000000
--- a/package/gcc/arc-2014.08/402-fix-length-of-instructions-that-are-in-delay-slot-and-needs-to-be-predicated.patch
+++ /dev/null
@@ -1,69 +0,0 @@ 
-Fix length of instructions that are in delay slot and needs to be predicated
-
-Following problem was reported:
---->---
-arceb-linux-gcc -mq-class -g -O2 -c -o main.o main.i
-/tmp/ccudUc8y.s: Assembler messages:
-/tmp/ccudUc8y.s:18820: Error: operand out of range (256 is not between -256 and 255)
---->---
-
-Fix is taken from current development branch of GCC for ARC and will be a
-part of the next release of ARC tools, so at that point patch should be dropped.
-
-https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/5dfca5504d38293d5264f632c3090ac39c12f72b
-
-Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
----
-
-diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h
-index 908d002..212423b 100644
---- a/gcc/config/arc/arc-protos.h
-+++ b/gcc/config/arc/arc-protos.h
-@@ -126,4 +126,5 @@ extern void arc_expand_compare_and_swap (rtx *);
- 
- #ifdef  RTX_CODE
- extern void arc_expand_atomic_op (enum rtx_code, rtx, rtx, rtx, rtx, rtx);
-+extern bool arc_bdr_iscond (rtx);
- #endif
-diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
-index 68e5552..7d3ded3 100644
---- a/gcc/config/arc/arc.c
-+++ b/gcc/config/arc/arc.c
-@@ -9336,6 +9336,23 @@ arc_write_ext_corereg (rtx insn)
-   return for_each_rtx (&PATTERN (insn), write_ext_corereg_1, 0);
- }
- 
-+/* Return true if the insn is in a delay slot and needs to be executed
-+   conditionally. */
-+
-+bool
-+arc_bdr_iscond (rtx insn)
-+{
-+  rtx jump = prev_active_insn (insn);
-+
-+  if (!jump || !JUMP_P(jump))
-+    return false;
-+
-+  if (INSN_ANNULLED_BRANCH_P (jump) && INSN_FROM_TARGET_P (insn))
-+    return true;
-+
-+  return false;
-+}
-+
- /* This is like the hook, but returns NULL when it can't / won't generate
-    a legitimate address.  */
- 
-diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
-index e001659..88b2e37 100644
---- a/gcc/config/arc/arc.md
-+++ b/gcc/config/arc/arc.md
-@@ -377,7 +377,8 @@
- 	(cond [(match_test "GET_CODE (PATTERN (insn)) == COND_EXEC")
- 	       (const_int 12)]
- 	      (const_int 10))
--	(match_test "GET_CODE (PATTERN (insn)) == COND_EXEC") (const_int 4)]
-+	(match_test "GET_CODE (PATTERN (insn)) == COND_EXEC || arc_bdr_iscond (insn)")
-+	(const_int 4)]
-       (const_int 2))
- 
-     (eq_attr "iscompact" "true_limm")
diff --git a/package/gcc/arc-2014.08/403-update-casesi_compact_jump-instruction-length.patch b/package/gcc/arc-2014.08/403-update-casesi_compact_jump-instruction-length.patch
deleted file mode 100644
index dd188a4..0000000
--- a/package/gcc/arc-2014.08/403-update-casesi_compact_jump-instruction-length.patch
+++ /dev/null
@@ -1,31 +0,0 @@ 
-Update casesi_compact_jump instruction length
-
-Fixes autobuilder issue http://autobuild.buildroot.net/results/bc5/bc5100d6462af4e2805f2bc8d39c87a55d843e2b/
-
---->---
-$ arc-linux-gcc -c -o wps_attr_parse.o -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -pipe -Os  -I.../host/usr/arc-buildroot-linux-uclibc/sysroot/usr/include/libnl3/ -I.../build/hostapd-2.2/src -I.../build/hostapd-2.2/src/utils wps_attr_parse.c
-wps_attr_parse.s: Assembler messages:
-wps_attr_parse.s:860: Error: operand out of range (512 is not between -512 and 511)
---->---
-
-Fix is taken from current development branch of GCC for ARC and will be a
-part of the next release of ARC tools, so at that point patch should be dropped.
-
-https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/8e704c43cb50407ec79795f6f7459f09800b9f01
-
-Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
----
- 
-diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
-index 88b2e37..8e18703 100644
---- a/gcc/config/arc/arc.md
-+++ b/gcc/config/arc/arc.md
-@@ -3948,7 +3948,7 @@
-   output_asm_insn (s, xop);
-   return \"add_s %2,%2,pcl\n\tj_s%* [%2]\";
- }"
--  [(set_attr "length" "10")
-+  [(set_attr "length" "12")
-    (set_attr "type" "jump")
-    (set_attr "iscompact" "true")
-    (set_attr "cond" "nocond")])
diff --git a/package/gcc/arc-2014.08/100-libstdcxx-uclibc-c99.patch b/package/gcc/arc-2014.12/100-libstdcxx-uclibc-c99.patch
similarity index 100%
rename from package/gcc/arc-2014.08/100-libstdcxx-uclibc-c99.patch
rename to package/gcc/arc-2014.12/100-libstdcxx-uclibc-c99.patch
diff --git a/package/gcc/arc-2014.08/910-gcc-poison-system-directories.patch b/package/gcc/arc-2014.12/910-gcc-poison-system-directories.patch
similarity index 100%
rename from package/gcc/arc-2014.08/910-gcc-poison-system-directories.patch
rename to package/gcc/arc-2014.12/910-gcc-poison-system-directories.patch
diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
index 7f9df3a..c8d6a94 100644
--- a/package/gdb/Config.in.host
+++ b/package/gdb/Config.in.host
@@ -52,7 +52,7 @@  config BR2_GDB_VERSION
 	depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
 	default "6.7.1-avr32-2.1.5" if BR2_GDB_VERSION_6_7_1_AVR32_2_1_5 || \
                                    (!BR2_PACKAGE_HOST_GDB && BR2_avr32)
-	default "arc-2014.08-gdb" if BR2_arc
+	default "arc-2014.12-gdb" if BR2_arc
 	default "6be65fb56ea6694a9260733a536a023a1e2d4d57" if BR2_microblaze
 	default "7.7.1"    if BR2_GDB_VERSION_7_7 || !BR2_PACKAGE_HOST_GDB
 	default "7.8.2"	   if BR2_GDB_VERSION_7_8
diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
index 290f19b..020c47c 100644
--- a/package/uclibc/Config.in
+++ b/package/uclibc/Config.in
@@ -42,7 +42,7 @@  config BR2_UCLIBC_VERSION_STRING
 	string
 	default 0.9.31.1	if BR2_UCLIBC_VERSION_0_9_31
 	default 0.9.33.2	if BR2_UCLIBC_VERSION_0_9_33
-	default "arc-2014.08" if BR2_arc
+	default "arc-2014.12" if BR2_arc
 	default "7bf35c8b7d4a1f97174eb49f47f33946b282114c" if BR2_UCLIBC_VERSION_XTENSA_GIT
 	default BR2_USE_UCLIBC_SNAPSHOT	if BR2_UCLIBC_VERSION_SNAPSHOT