"Nick B. (lists)" <nick.netbsd%nowindows.net@localhost> writes:
I had a working pkgsrc-2016Q3 on my system. I decided to upgrade this
to pkgsrc-2017Q3.
Various packages fail to build. Can I define a later version of gcc
(gcc48) in /usr/pkg/etc/mk.conf so it gets built and is then used to
build everything else from pkgsrc? From reading the pkgsrc guide it
appears that I need to add
GCC_REQD=4.8
to mk.conf to force this. If this isn't the best way to get up and
running I'd be grateful for some guidance.
The right way is to finish the compiler selection logic we've been
discussing :-) See https://wiki.netbsd.org/pkgsrc/gcc/ for some
discussion of where we are.
2) Do as you say, but I'd choose 4.9, since you have to build a new
version anyway, and at least firefox needs 4.9, so if you want that and
you used 4.8, you'd end up with both.
In general, you should be building all C++ stuff with the same
compiler. GCC_REQD=4.9 probably does not play well with building gcc
4.9. Assuming you are using pkg_rolling-replace, I would:
cd /var/db/pkg && pkg_admin set rebuild=YES *
# or, if you are more adventurous, only do this for packages that use
# c++. Or skip it and look for trouble later.
without GCC_REQD=4.9 in mk.conf
[perhaps set the gcc-inplace-math option to avoid two dependencies
with a different compiler than the rest]
build/install the gcc 4.9 package
put GCC_REQD=4.9 in mk.conf
start "pkg_rolling-replace -uvk", or leave off the -k and think about
each problem
3) live dangerously by just "make GCC_REQD=4.9 package replace" for each
package that fails, but then you end up with mixed 4.5/4.9 for C++. But
if it's only a few usual-suspect packages like harfbuzz that get used by
only pango, you can perhaps get away with this, even though it's in
general unsound.