pkgsrc-Users archive

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

Re: pkgsrc-2017Q3 installation on 6.1.5 i386



On 12/17/17 10:51, Nick B. wrote:
On 16/12/17 16:50, Greg Troxel wrote:

"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.

Useful resource, thanks. Since I originally posted I found the discussion relating to this in tech-pkg. I've also been looking at pkgsrc-bulk and the failures for 6.0 i386 which was enlightening whe I saw the amount of failed packages in 2017Q3


But seriously....

What I would do is one of:

1) upgrade to netbsd-7.  This has gcc 4.8, and most things are ok.  If
you can do this, you take a lot of pain off the table.  Part of the
problem is that most people who work on NetBSD have moved beyond -6 on
most systems.


Have tried that but on the (old) machine in question I ran up against problems with Xorg with the graphics card and mouse.

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.


I did try but using 4.8. I was getting errors with some packages not linking correctly and other failures. I've gone back to 2016Q4 which seems to have solved most of my problems. I'll have another try with 2017Q3 on a different install with your hints and see if I can make any progress.

Thanks & best regards,

auto-pkgsrc-setup (http://acadix.biz/pkgsrc.php) contains the logic you need to use pkgsrc gcc48 for most packages on systems with an older compiler.

Basically you need to exempt gcc48 and all its dependencies to avoid a circular dependency issue.

The logic is enabled only for Linux in the current version of the script and tested on CentOS.  You could either study it or patch it to work with your platform. Please share the patch if you do the latter.

I'm also considering using a slightly modified approach on Darwin and FreeBSD to avoid mixing clang and gcc, which is causing issues with some important builds (e.g. math/R).  At least until flang is viable for supporting Fortran packages...

Cheers,

    Jason

--
Earth is a beta site.


Home | Main Index | Thread Index | Old Index