# [OmniOS-discuss] Hello bloody folks! Check out preliminary gcc5.1 support

Eric Sproul eric.sproul at circonus.com
Wed Jun 10 14:00:08 UTC 2015

- Previous message: [OmniOS-discuss] Hello bloody folks! Check out preliminary gcc5.1 support
- Next message: [OmniOS-discuss] Hello bloody folks! Check out preliminary gcc5.1 support
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

    On Wed, Jun 10, 2015 at 8:46 AM, Dan McDonald <danmcd at omniti.com> wrote:
    >
    >> On Jun 8, 2015, at 10:46 AM, Eric Sproul <eric.sproul at circonus.com> wrote:
    >>
    >> On Fri, Jun 5, 2015 at 3:46 PM, Dan McDonald <danmcd at omniti.com> wrote:
    >>> Any code-minded people in the community should have a look at the above webrev, and tell me what you think. Unlike the last compiler change done for r151008, this is a jump from 4 to 5, so "g{cc,++}-N-runtime" has a new value of N, namely 5.  The prior versions of gcc runtime are in place (.so.6.0.XX), but the package name has been changed.  I've use the "renamed" attribute for gcc/++-4-runtime to aid in this regard.
    >>
    >> Dan,
    >> Great work so far.  Mostly looks good to me, though I'm curious if
    >> pkglint is/will be complaining about redundant require dependencies.
    >
    > Remember -- we don't run pkglint by default.  (Some existing package naming schemes make that difficult/impossible.)

    Ah, I just looked at the make_package() function.  Out of (perhaps
    morbid) curiosity, what are the obstacles?

    > The whole DEPENDS_IPS/BUILD_DEPENDS_IPS/PKG_DEPENDS_IPS is screwy to me.  A bit of history, and a suggested what's-right course of action may be in order.

    OK, so to go _really_ far back into the Dark Ages, our build system
    was originally created to make SVR4 packages for Solaris 10 in
    OmniTI's hosting environments.  No fancy auto-dependency tools there,
    so the build had to declare all runtime dependencies manually.  That
    persisted through the transition to SXCE, which was still SVR4.
    Fast-forward to IPS and OmniOS, which grew organically from the SVR4
    builds, and the habit of specifying all deps manually was already
    deeply ingrained.

    In The Beginning, it was just "BUILD_DEPENDS" and "DEPENDS".  The
    former obviously being build-time, the latter run-time.  But for a
    while, as we started developing OmniOS, we had a hybrid build system
    (what would eventually become ms.omniti.com)  that could build either
    SVR4 or IPS packages, depending on the desired target.  That's where
    the "_IPS" variants came in, to distinguish from the (now defunct)
    "_SVR4" ones.  We didn't really know about or grok pkgdepend in the
    beginning.

    So now, in the all-IPS world, with pkgdepend, we generally don't need
    to specify run-time dependencies.  pkgdepend can handle ELF, Java, and
    some scripts (Python, Perl, shell), and maybe a few other minor
    things.  It can't do Perl modules, that's one glaring issue that comes
    to mind, so there are still cases where you need to specify *some*
    runtime deps. BUT, since we don't run pkglint, we haven't been good
    about cleaning up the unnecessary DEPENDS_IPS items, and our packages
    will end up with either duplicate deps or unnecessary ones, e.g.

    $ pkg contents -t depend -o type,fmri bash
    TYPE    FMRI
    require pkg:/SUNWcs at 0.5.11-0.151014
    require pkg:/system/library at 0.5.11-0.151014
    require system/library/gcc-4-runtime

    The first two came from pkgdepend, but bash doesn't actually need
    gcc-4-runtime (verified with ldd).  It may have at one time, or
    someone was just over-zealous in applying an assumed dependency
    without validation.

    This is mostly harmless, but as in your case here, it's creating
    unnecessary work for you to change to gcc5.

    >
    >> Also, NSPR: there's version changes for the package along with the
    >> compiler change.  Was that intentional?  I don't much care either way,
    >> just curious if something slipped in by mistake.
    >
    > Threw in the update to see if it was gcc51 ready, it wasn't, but I kept the updates in anyway.

    Understood.

    Eric

- Previous message: [OmniOS-discuss] Hello bloody folks! Check out preliminary gcc5.1 support
- Next message: [OmniOS-discuss] Hello bloody folks! Check out preliminary gcc5.1 support
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

More information about the OmniOS-discuss mailing list