tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NetBSD-6 firefox requires gcc 4.6, why not build 4.8?



* On 2014-11-05 at 21:09 GMT, David Brownlee wrote:

> On 22 October 2014 20:03, Jonathan Perkin <jperkin%joyent.com@localhost> wrote:
> > * On 2014-10-22 at 11:48 PDT, David Brownlee wrote:
> >
> >> In order to build firefox on netbsd-6 gcc 4.6 or later is required.
> >>
> >> Currently gcc 4.6 does not build on netbsd-6
> >>
> >> /var/obj/pkg/lang/gcc46/work/gcc-4.6.4/libiberty/alloca.c: In function
> >> 'C_alloca':
> >> /var/obj/pkg/lang/gcc46/work/gcc-4.6.4/libiberty/alloca.c:200:5:
> >> warning: implicit declaration of function 'XNEWVEC'
> >> [-Wimplicit-function-declaration]
> >> /var/obj/pkg/lang/gcc46/work/gcc-4.6.4/libiberty/alloca.c:200:43:
> >> error: expected expression before 'char'
> >> Makefile:504: recipe for target 'alloca.o' failed
> >>
> >> However, that does raise an interesting point - if an application
> >> requires a version of gcc newer than that shipped with a given system,
> >> why not default to building the highest supported gcc version, rather
> >> than the lowest?
> >>
> >> If I'm going to have to build a gcc on netbsd-6, it probably makes
> >> more sense to build 4.8 rather than 4.6, on the grounds that something
> >> else I build later might need 4.8, and one would hope 4.8 would be
> >> generating at least a good code as 4.6...
> >>
> >> What do people think?
> >
> > There are a few things in gcc.mk we need to cleanup, so it may make
> > sense to add support for this at the same time - it seems reasonable
> > as something we should support, a GCC_REQD_DEFAULT user var which is
> > unset by default or something.
> 
> That would definitely also be a useful feature - what do you think of
> changing the behaviour to build the most recent gcc version (if the
> system determines that a gcc version needs to be built at all)

If done correctly then I'd be in favour, i.e. it needs to not break
the existing use case where a user can set USE_PKGSRC_GCC and GCC_REQD
and have a specific version used unless a package sets GCC_REQD to a
higher version.

We use this to build all our packages using lang/gcc47, unless a
package sets GCC_REQD to 4.8 or 4.9, in which case a newer gcc is
pulled in and used instead (on the basis that it is better to have a
package build and possibly fail than not build at all).

-- 
Jonathan Perkin  -  Joyent, Inc.  -  www.joyent.com


Home | Main Index | Thread Index | Old Index