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?

Loading...