Discussion:
Issues with gcc48, plans for gcc49
Jonathan Perkin
2014-07-21 13:45:23 UTC
Permalink
I've been looking at fixing gcc48 on SunOS, and believe that there are
a number of issues with the way it has been reworked since gcc47:

- We now need to perform a full build for the -libs package. On fast
hardware with MAKE_JOBS=8 this takes around 45 minutes. I prefer
the old method of simply taking the libraries from a successful gcc
build and repackaging them. It seems wasteful doing two full GCC
builds only to throw things away at the end.

- There has been an attempt to move to static PLISTs. Due to the
vast number of platform differences this is going to result in a
huge amount of .if .endif sections. For example on SunOS both
32-bit and 64-bit objects are built, so the entire do-install
section of gcc48-libs needs to be duplicated. Not only that but
the layout differs depending on the MACHINE_ARCH of the build host.
Again, I prefer the old method of simply generating dynamic PLISTs.

- My main concern is the huge number of completely undocumented
patches which are currently applied (75!). Some of them are
clearly toxic, such as the default setting of -fstack-protector.
Given the critical nature of this package, especially with
USE_PKGSRC_GCC, I would rather we limit the patching of it to an
absolute minimum, and ensure that any patches we do apply are very
clearly documented.

- gcc48-libs/buildlink.mk cannot have been tested, as it is still
using the library directory from gcc47-libs which is no longer
valid since the reworking of how the libraries are packaged.

- the full binutils dependency is now on the -libs package, which
doesn't really make sense, and pulls it in unnecessarily for binary
packages.

I started to produce a patch-set for it but I feel it is going to be
far too much effort, and I think it would be better spent integrating
cleaner gcc49 packages using the gcc47 layout, hence this email to
start discussion on that.

Thanks,
--
Jonathan Perkin - Joyent, Inc. - www.joyent.com
Richard PALO
2014-07-21 15:37:25 UTC
Permalink
Post by Jonathan Perkin
I started to produce a patch-set for it but I feel it is going to be
far too much effort, and I think it would be better spent integrating
cleaner gcc49 packages using the gcc47 layout, hence this email to
start discussion on that.
Thanks,
+1 to rollback to a gcc47-equivalent structure for gcc48, gcc49 ...
Ryo ONODERA
2014-07-22 04:05:47 UTC
Permalink
Post by Richard PALO
Post by Jonathan Perkin
I started to produce a patch-set for it but I feel it is going to be
far too much effort, and I think it would be better spent integrating
cleaner gcc49 packages using the gcc47 layout, hence this email to
start discussion on that.
Thanks,
+1 to rollback to a gcc47-equivalent structure for gcc48, gcc49 ...
I have no objection to rollback them.

--
Ryo ONODERA // ***@yk.rim.or.jp
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3
Matthias Ferdinand
2014-07-22 16:58:48 UTC
Permalink
Hi,

indeed gcc48 and gcc48-libs are broken on Linux.

On my Ubuntu Linux build hosts, I had to add
--disable-libquadmath --disable-libquadmath-support
as configure args to get gcc48-libs to build.

It did not even build on 64bit hosts, and on 32bit hosts the resulting
gcc could not compile (error message about missing crt0 or similar).

Recently tried again on a system without my local patches (the main one
adding "--enable-new-dtags" linker option in addition to "-R", so
LD_LIBRARY_PATH works again), but the build stopped halfways with a
message about missing "strlcmp".

I did not have the time to investigate, but I think there must be some
interference between libtool and the default "-R" (add DT_RUNPATH)
linker setting in mk/compiler/gcc.mk.

At least on 32bit hosts, the first few iterations of gcc48 packages
worked. Probably that was before gcc48-libs was required for gcc48. If
gcc48 can be made working again by restoring the previous gcc47-style
that would be a big gain.

Matthias
Aleksej Saushev
2014-07-23 06:57:38 UTC
Permalink
Post by Matthias Ferdinand
indeed gcc48 and gcc48-libs are broken on Linux.
I wonder if there is any platform where they are not broken.
Currently, gcc48-libs doesn't build on NetBSD/i386 at all,
and gcc48 packages conflict to themselves on FreeBSD.
--
HE CE3OH...
Ryo ONODERA
2014-07-26 00:22:20 UTC
Permalink
Hi,
Post by Aleksej Saushev
Post by Matthias Ferdinand
indeed gcc48 and gcc48-libs are broken on Linux.
I wonder if there is any platform where they are not broken.
Currently, gcc48-libs doesn't build on NetBSD/i386 at all,
and gcc48 packages conflict to themselves on FreeBSD.
I would like to revert splitted gcc48* to single gcc47 like package.
Any objection?

--
Ryo ONODERA // ***@yk.rim.or.jp
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3
Loading...