Discussion:
[arch-dev-public] Test repository with gcc7
Add Reply
Hao Zhang via arch-general
2017-05-12 01:22:16 UTC
Reply
Permalink
Raw Message
I found some time today to make a test build of the latest GCC. I tested
some "simple" projects like nginx and libtorrent-rasterbar and they do
build, while MariaDB fails on linking for me.
Let me know if you encounter any problems, I'd rather not break too much
by pushing it to repos.
[gcc7]
SigLevel = Required
Server = https://pkgbuild.com/~bpiotrowski/gcc7
No i686, embrace the future!
Bartłomiej
Hi Bartłomiej,

I found MariaDB fails on linking because /usr/bin/gcc-ar segfaults whenever
it runs with absolute path. I have filed an upstream bug report:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80717

Hao
Carsten Mattner via arch-general
2017-05-12 02:10:00 UTC
Reply
Permalink
Raw Message
On Fri, May 12, 2017 at 1:22 AM, Hao Zhang via arch-general
Post by Hao Zhang via arch-general
I found some time today to make a test build of the latest GCC. I tested
some "simple" projects like nginx and libtorrent-rasterbar and they do
build, while MariaDB fails on linking for me.
Let me know if you encounter any problems, I'd rather not break too much
by pushing it to repos.
[gcc7]
SigLevel = Required
Server = https://pkgbuild.com/~bpiotrowski/gcc7
No i686, embrace the future!
Bartłomiej
Hi Bartłomiej,
I found MariaDB fails on linking because /usr/bin/gcc-ar segfaults whenever
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80717
I'm not testing or complaining, to be clear, but have a simple
question.

I can't find it now but when the new gcc version scheme was
decided I remember that .0 releases were meant to be RC, but
there's one thing I don't remember.

Will 7.1 be the first tested and stable gcc7 release or is
it 7.0.1 under the new scheme?
Bruno Pagani via arch-general
2017-05-12 16:33:35 UTC
Reply
Permalink
Raw Message
Post by Carsten Mattner via arch-general
On Fri, May 12, 2017 at 1:22 AM, Hao Zhang via arch-general
I found some time today to make a test build of the latest GCC. I tested
some "simple" projects like nginx and libtorrent-rasterbar and they do
build, while MariaDB fails on linking for me.
Let me know if you encounter any problems, I'd rather not break too much
by pushing it to repos.
[gcc7]
SigLevel = Required
Server = https://pkgbuild.com/~bpiotrowski/gcc7
No i686, embrace the future!
Bartłomiej
Hi Bartłomiej,
I found MariaDB fails on linking because /usr/bin/gcc-ar segfaults whenever
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80717
I'm not testing or complaining, to be clear, but have a simple
question.
I can't find it now but when the new gcc version scheme was
decided I remember that .0 releases were meant to be RC, but
there's one thing I don't remember.
Will 7.1 be the first tested and stable gcc7 release or is
it 7.0.1 under the new scheme?
7.1 normally.
Bartłomiej Piotrowski
2017-05-15 11:33:05 UTC
Reply
Permalink
Raw Message
I found some time today to make a test build of the latest GCC. I tested
some "simple" projects like nginx and libtorrent-rasterbar and they do
build, while MariaDB fails on linking for me.
Let me know if you encounter any problems, I'd rather not break too much
by pushing it to repos.
[gcc7]
SigLevel = Required
Server = https://pkgbuild.com/~bpiotrowski/gcc7
No i686, embrace the future!
Bartłomiej
Hi Bartłomiej,
I found MariaDB fails on linking because /usr/bin/gcc-ar segfaults whenever
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80717
Hao
Thanks for spending time on it and reporting upstream! Really appreciate it.

I also heard that retroarch fails, but I couldn't reproduce it locally.
I will push new gcc to [testing] this week.

Bartłomiej
Hao Zhang via arch-general
2017-05-15 19:30:42 UTC
Reply
Permalink
Raw Message
Post by Bartłomiej Piotrowski
Post by Hao Zhang via arch-general
I found some time today to make a test build of the latest GCC. I tested
some "simple" projects like nginx and libtorrent-rasterbar and they do
build, while MariaDB fails on linking for me.
Let me know if you encounter any problems, I'd rather not break too much
by pushing it to repos.
[gcc7]
SigLevel = Required
Server = https://pkgbuild.com/~bpiotrowski/gcc7
No i686, embrace the future!
Bartłomiej
Hi Bartłomiej,
I found MariaDB fails on linking because /usr/bin/gcc-ar segfaults whenever
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80717
Hao
Thanks for spending time on it and reporting upstream! Really appreciate it.
I also heard that retroarch fails, but I couldn't reproduce it locally.
I will push new gcc to [testing] this week.
Bartłomiej
Hi Bartłomiej,

Thank you very much! I also tried building retroarch and have no problem
building it with GCC 7. Now we found the reason why MariaDB fails to build,
there are two ways of fixing it and I have verified both methods work:
1) patch gcc to remove line 197-203 from gcc-ar.c (these lines are not present
in gcc 6.3.1)
2) make a symlink of the files ar, nm and ranlib in /usr/local/bin.

A more serious problem with GCC 7 is the ABI changes in libgfortran (major
version bumped from 3 to 4). Many packages depending on libgfortran such as
python-numpy needs to be recompiled. Some binary packages such as MATLAB just
refuse to run with libgfortran7 and these binary packages cannot be
recompiled...

Hao
Jan Alexander Steffens via arch-general
2017-05-15 19:53:11 UTC
Reply
Permalink
Raw Message
On Mon, May 15, 2017 at 9:30 PM Hao Zhang via arch-general <
Post by Hao Zhang via arch-general
Thank you very much! I also tried building retroarch and have no problem
building it with GCC 7. Now we found the reason why MariaDB fails to build,
1) patch gcc to remove line 197-203 from gcc-ar.c (these lines are not present
in gcc 6.3.1)
2) make a symlink of the files ar, nm and ranlib in /usr/local/bin.
These lines were introduced in this commit:
https://github.com/gcc-mirror/gcc/commit/eeb6872bfdfd1e71b27de6f62a5f5c08a2efb015

What a weird bug. This looks like the MariaDB compilation uses gcc-ar
instead of binutils ar. Based on what I can tell from the code, gcc-ar here
expects to be in a non-standard path and named "ar" in order to wrap the
binutils ar, similar to how ccache works. But gcc-ar is named "gcc-ar" and
located in the same dir as the binutils ar, so things break.

Is MariaDB using LTO?
Jan Alexander Steffens via arch-general
2017-05-23 20:04:05 UTC
Reply
Permalink
Raw Message
On Tue, May 23, 2017 at 9:42 PM Eli Schwartz via arch-general <
Post by Bartłomiej Piotrowski
I will push new gcc to [testing] this week.
Terrible things happened to my firefox and thunderbird-gtk2 builds when
I used what turned out to be a testing-enabled build chroot to build them.
The builds succeeded but the UI elements blinked in and out constantly
and it was uncooperative switching tabs... basically everything fritzed.
No idea why... but disabling testing and `pacman -Syuu` allowed the
rebuilds to work as expected.
https://bugzilla.redhat.com/show_bug.cgi?id=1422532
No, this particular bug should have been fixed since 52.0...

In any case, you can try CXXFLAGS+=" -fno-lifetime-dse
-fno-delete-null-pointer-checks -fno-schedule-insns2" ; these were the
optimization steps that used to cause trouble with GCC 6.
Eli Schwartz via arch-general
2017-05-23 22:36:10 UTC
Reply
Permalink
Raw Message
Post by Jan Alexander Steffens via arch-general
No, this particular bug should have been fixed since 52.0...
In any case, you can try CXXFLAGS+=" -fno-lifetime-dse
-fno-delete-null-pointer-checks -fno-schedule-insns2" ; these were the
optimization steps that used to cause trouble with GCC 6.
I did say it was only a quick google, so probably it's a totally
different issue that also causes the general category of UI brokenness.

I'll try this when I get a chance then.

...

There and on bugzilla.mozilla.org and on the LFS firefox page, I've seen
the suggestion that firefox 53 still breaks on gcc7 with -O3 though, and
should be fixed with ac_add_options --enable-optimize="-O2".
--
Eli Schwartz
Eli Schwartz via arch-general
2017-05-25 13:35:09 UTC
Reply
Permalink
Raw Message
Post by Eli Schwartz via arch-general
Post by Jan Alexander Steffens via arch-general
No, this particular bug should have been fixed since 52.0...
In any case, you can try CXXFLAGS+=" -fno-lifetime-dse
-fno-delete-null-pointer-checks -fno-schedule-insns2" ; these were the
optimization steps that used to cause trouble with GCC 6.
I did say it was only a quick google, so probably it's a totally
different issue that also causes the general category of UI brokenness.
I'll try this when I get a chance then.
...
There and on bugzilla.mozilla.org and on the LFS firefox page, I've seen
the suggestion that firefox 53 still breaks on gcc7 with -O3 though, and
should be fixed with ac_add_options --enable-optimize="-O2".
Yeah, -fno-lifetime-dse -fno-delete-null-pointer-checks
-fno-schedule-insns2 did nothing, but ac_add_options
--enable-optimize="-O2" fixed it at the cost of a 13 MB bigger install
footprint and I suppose general lack of optimization.
--
Eli Schwartz
David C. Rankin
2017-05-24 17:23:14 UTC
Reply
Permalink
Raw Message
Terrible things happened to my firefox and thunderbird-gtk2 builds when
I used what turned out to be a testing-enabled build chroot to build them.
The builds succeeded but the UI elements blinked in and out constantly
and it was uncooperative switching tabs... basically everything fritzed.
No idea why... but disabling testing and `pacman -Syuu` allowed the
rebuilds to work as expected.
https://bugzilla.redhat.com/show_bug.cgi?id=1422532
Hopefully this will get resolved. I filed a bug with mozilla against the
failure to respect GTK+2 themes in the 45.8esr to 52 move. (they won't fix).
I'll stick with 45.8esr until this is worked out, 52 and GTK+3 on my laptop
simply looks horrible (despite trying every dark GTK+3 theme I could find).
--
David C. Rankin, J.D.,P.E.
Loading...