Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   ArchLinux Development (http://www.linux-archive.org/archlinux-development/)
-   -   gcc-4.7.1-5 rebuild (http://www.linux-archive.org/archlinux-development/686087-gcc-4-7-1-5-rebuild.html)

Allan McRae 07-22-2012 05:21 AM

gcc-4.7.1-5 rebuild
 
Hi all,

gcc-4.7 introduced some c++11 support, but unfortunately this resulted
in a changed ABI for files compiled with c++98/03 support and those
complied with c++11. So, if a library used c++11 but linked to a
library using c++98, there could be crashes due to incompatibilities
between these.

The gcc-4.7.1-5 package uses a snapshot with the needed patches to fix
this issue. However, c++11 code compiled with any earlier 4.7.x version
possibly be incompatible with c++11 code compiled with gcc-4.7.1-5 and
above and anything compiled with c++98/03.

I have created a TODO list that includes everything linking to
libstdc++.so and that was built since gcc-4.7.0 entered the repos. It
is a big list, but only software that used --std=c++11 when compiling
need recompiled. Look at your build output (you do keep the logs for
future reference...) and decide if your package needs recompiled or not.

More details:
http://jaegerandi.blogspot.com.au/2012/07/gcc-47-c-abi-changes-and-opensuse-122.html
http://gcc.gnu.org/gcc-4.7/changes.html
http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=a245605f
http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=74ca4097

Allan

Eric Bélanger 07-22-2012 07:17 AM

gcc-4.7.1-5 rebuild
 
On Sun, Jul 22, 2012 at 1:21 AM, Allan McRae <allan@archlinux.org> wrote:
> Hi all,
>
> gcc-4.7 introduced some c++11 support, but unfortunately this resulted
> in a changed ABI for files compiled with c++98/03 support and those
> complied with c++11. So, if a library used c++11 but linked to a
> library using c++98, there could be crashes due to incompatibilities
> between these.
>
> The gcc-4.7.1-5 package uses a snapshot with the needed patches to fix
> this issue. However, c++11 code compiled with any earlier 4.7.x version
> possibly be incompatible with c++11 code compiled with gcc-4.7.1-5 and
> above and anything compiled with c++98/03.
>
> I have created a TODO list that includes everything linking to
> libstdc++.so and that was built since gcc-4.7.0 entered the repos. It
> is a big list, but only software that used --std=c++11 when compiling
> need recompiled. Look at your build output (you do keep the logs for
> future reference...) and decide if your package needs recompiled or not.
>
> More details:
> http://jaegerandi.blogspot.com.au/2012/07/gcc-47-c-abi-changes-and-opensuse-122.html
> http://gcc.gnu.org/gcc-4.7/changes.html
> http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=a245605f
> http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=74ca4097
>
> Allan

I noticed that you pushed the new gcc in the [testing] repo whereas
rebuilds are usually done in [staging]. Is that wanted? If so, does
the rebuilded packages go in [testing] repo?

Eric

Allan McRae 07-22-2012 07:24 AM

gcc-4.7.1-5 rebuild
 
On 22/07/12 17:17, Eric Bélanger wrote:
> On Sun, Jul 22, 2012 at 1:21 AM, Allan McRae <allan@archlinux.org> wrote:
>> Hi all,
>>
>> gcc-4.7 introduced some c++11 support, but unfortunately this resulted
>> in a changed ABI for files compiled with c++98/03 support and those
>> complied with c++11. So, if a library used c++11 but linked to a
>> library using c++98, there could be crashes due to incompatibilities
>> between these.
>>
>> The gcc-4.7.1-5 package uses a snapshot with the needed patches to fix
>> this issue. However, c++11 code compiled with any earlier 4.7.x version
>> possibly be incompatible with c++11 code compiled with gcc-4.7.1-5 and
>> above and anything compiled with c++98/03.
>>
>> I have created a TODO list that includes everything linking to
>> libstdc++.so and that was built since gcc-4.7.0 entered the repos. It
>> is a big list, but only software that used --std=c++11 when compiling
>> need recompiled. Look at your build output (you do keep the logs for
>> future reference...) and decide if your package needs recompiled or not.
>>
>> More details:
>> http://jaegerandi.blogspot.com.au/2012/07/gcc-47-c-abi-changes-and-opensuse-122.html
>> http://gcc.gnu.org/gcc-4.7/changes.html
>> http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=a245605f
>> http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=74ca4097
>
> I noticed that you pushed the new gcc in the [testing] repo whereas
> rebuilds are usually done in [staging]. Is that wanted? If so, does
> the rebuilded packages go in [testing] repo?
>

Packages that are broken are already broken... I don't even intend to
wait for the rebuild to be finished to move gcc to [core].

Allan

Allan McRae 07-22-2012 07:25 AM

gcc-4.7.1-5 rebuild
 
On 22/07/12 17:24, Allan McRae wrote:
> On 22/07/12 17:17, Eric Bélanger wrote:
>> On Sun, Jul 22, 2012 at 1:21 AM, Allan McRae <allan@archlinux.org> wrote:
>>> Hi all,
>>>
>>> gcc-4.7 introduced some c++11 support, but unfortunately this resulted
>>> in a changed ABI for files compiled with c++98/03 support and those
>>> complied with c++11. So, if a library used c++11 but linked to a
>>> library using c++98, there could be crashes due to incompatibilities
>>> between these.
>>>
>>> The gcc-4.7.1-5 package uses a snapshot with the needed patches to fix
>>> this issue. However, c++11 code compiled with any earlier 4.7.x version
>>> possibly be incompatible with c++11 code compiled with gcc-4.7.1-5 and
>>> above and anything compiled with c++98/03.
>>>
>>> I have created a TODO list that includes everything linking to
>>> libstdc++.so and that was built since gcc-4.7.0 entered the repos. It
>>> is a big list, but only software that used --std=c++11 when compiling
>>> need recompiled. Look at your build output (you do keep the logs for
>>> future reference...) and decide if your package needs recompiled or not.
>>>
>>> More details:
>>> http://jaegerandi.blogspot.com.au/2012/07/gcc-47-c-abi-changes-and-opensuse-122.html
>>> http://gcc.gnu.org/gcc-4.7/changes.html
>>> http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=a245605f
>>> http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=74ca4097
>>
>> I noticed that you pushed the new gcc in the [testing] repo whereas
>> rebuilds are usually done in [staging]. Is that wanted? If so, does
>> the rebuilded packages go in [testing] repo?
>>
>
> Packages that are broken are already broken... I don't even intend to
> wait for the rebuild to be finished to move gcc to [core].
>

Just to clarify, rebuilt packages should go in [testing] until gcc is
signed off and moved.

Allan

Allan McRae 07-23-2012 03:10 AM

gcc-4.7.1-5 rebuild
 
On 22/07/12 17:25, Allan McRae wrote:
> On 22/07/12 17:24, Allan McRae wrote:
>> On 22/07/12 17:17, Eric Bélanger wrote:
>>> On Sun, Jul 22, 2012 at 1:21 AM, Allan McRae <allan@archlinux.org> wrote:
>>>> Hi all,
>>>>
>>>> gcc-4.7 introduced some c++11 support, but unfortunately this resulted
>>>> in a changed ABI for files compiled with c++98/03 support and those
>>>> complied with c++11. So, if a library used c++11 but linked to a
>>>> library using c++98, there could be crashes due to incompatibilities
>>>> between these.
>>>>
>>>> The gcc-4.7.1-5 package uses a snapshot with the needed patches to fix
>>>> this issue. However, c++11 code compiled with any earlier 4.7.x version
>>>> possibly be incompatible with c++11 code compiled with gcc-4.7.1-5 and
>>>> above and anything compiled with c++98/03.
>>>>
>>>> I have created a TODO list that includes everything linking to
>>>> libstdc++.so and that was built since gcc-4.7.0 entered the repos. It
>>>> is a big list, but only software that used --std=c++11 when compiling
>>>> need recompiled. Look at your build output (you do keep the logs for
>>>> future reference...) and decide if your package needs recompiled or not.
>>>>
>>>> More details:
>>>> http://jaegerandi.blogspot.com.au/2012/07/gcc-47-c-abi-changes-and-opensuse-122.html
>>>> http://gcc.gnu.org/gcc-4.7/changes.html
>>>> http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=a245605f
>>>> http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=74ca4097
>>>
>>> I noticed that you pushed the new gcc in the [testing] repo whereas
>>> rebuilds are usually done in [staging]. Is that wanted? If so, does
>>> the rebuilded packages go in [testing] repo?
>>>
>>
>> Packages that are broken are already broken... I don't even intend to
>> wait for the rebuild to be finished to move gcc to [core].
>>
>
> Just to clarify, rebuilt packages should go in [testing] until gcc is
> signed off and moved.
>

And gcc-4.7.1-5 is now in [core]. I did not wait for the rebuild to
finish to push this as the situation get no worse in terms of what is
broken (in fact with the rebuilds completed already, things get less
broken...). And it also stops the situation getting worse with packages
being compiled with the old gcc.

I think I moved all the relevant rebuilds out of the testing repos at
the same time. If I missed anything, move it...

Allan


All times are GMT. The time now is 04:16 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.