[OpenIndiana-discuss] Could you update your sysroot, jclulow?
Hung Nguyen Gia
gh_origin at zohomail.com
Tue Jan 19 03:44:12 UTC 2021
Thank you. I have do this for a long time.
I'm trying to cross compile Pale Moon for OI from Linux, which is a very different story, though.
---- On Mon, 18 Jan 2021 19:37:00 +0700 Stephan Althaus <Stephan.Althaus at Duedinghausen.eu> wrote ----
> Hi!
>
> Building PaleMoon for your private use is easy on OI with this
> informations, tried it yesterday:
>
> http://developer.palemoon.org/build/sunos/
>
> Greetings,
> Stephan
>
>
> On 01/18/21 13:15, Hung Nguyen Gia via openindiana-discuss wrote:
> > I ended up make my own sysroot using tar on a minimal OI installation with gcc-10 installed.
> >
> > Now I have a working cross compiler, even for C++.
> >
> > The key is also include /usr/gcc/10/include and /usr/gcc/10/lib in the tarball.
> >
> > But I don't think I could cross compile Pale Moon for OI from Linux at all.
> >
> > I think I still have to mess with distribution constructor.
> >
> >
> > ---- On Mon, 18 Jan 2021 05:04:59 +0700 Joshua M. Clulow via openindiana-discuss <openindiana-discuss at openindiana.org> wrote ----
> >
> > > On Sun, 17 Jan 2021 at 05:24, Peter Tribble <peter.tribble at gmail.com> wrote:
> > > > On Sun, Jan 17, 2021 at 11:15 AM Hung Nguyen Gia via openindiana-discuss <
> > > > openindiana-discuss at openindiana.org> wrote:
> > > > > I wanted to use your sysroot here to build a cross compiler for OI from
> > > > > Linux:
> > > > >
> > > > > https://github.com/illumos/sysroot
> > > > >
> > > > > But it seemed you didn't include the C++ part. I couldn't find them. There
> > > > > is no C++ headers, e.g: cmath, iostream,... nor the C++ standard library
> > > > > itself.
> > > > Those are supplied by the toolchain, in our case usually gcc. And you would
> > > > normally
> > > > need to ensure that the versions in the sysroot are compatible (for
> > > > whatever definition of
> > > > compatible you're interested in) with the toolchain you're using.
> > >
> > > Right. The official illumos sysroot contains, as much as possible,
> > > only things that are delivered directly from illumos-gate. A small
> > > exception is made for libssp and libgcc_s, after an extensive survey
> > > was undertaken to determine if compatible versions of those libraries
> > > were available in basically all shipping distributions. As described
> > > in the release notes, the copies of these libraries included within
> > > the archive are stubs: they contain no executable code, and would not
> > > actually _work_ if you attempted to use them on an illumos system.
> > > They're just for cross-compilation.
> > >
> > > Unlike libgcc_s and libssp, there aren't sufficiently strong backwards
> > > compatibility guarantees made about any of the C++ runtimes, or
> > > OpenSSL, or many other commonly used components. On that basis,
> > > they're not good candidates for an illumos sysroot.
> > >
> > > You could, on the other hand, select a specific distribution (and
> > > presumably a specific version) to create a different sort of sysroot.
> > > That sysroot archive could then include anything that was guaranteed
> > > to be available within the distribution; a process of selection that
> > > would depend a lot on the policies of that specific distribution and
> > > on your goals.
> > >
> > > > > This sysroot is also a bit old, too.
> > > > A sysroot can be used for a variety of uses. This one is targetted at
> > > > building software on
> > > > a current host that will still run correctly on an older system.
> > >
> > > More specifically than that, it was built almost exclusively at the
> > > time with Rust in mind. The Rust project uses this sysroot archive
> > > within a Linux docker container to cross-compile the Rust toolchain
> > > (including Cargo, etc) for illumos. Selecting the specific version
> > > here was a balance between the widest possible audience (thus, the
> > > oldest contents) and the inclusion of the getrandom(2) public API.
> > > More details on our choice are in the release notes:
> > >
> > > https://github.com/illumos/sysroot/releases/tag/20181213-de6af22ae73b-v1
> > >
> > > We will likely at some point select a new version of the gate to
> > > create a new sysroot. This will probably not happen until we need to
> > > use a new interface of some kind that was added some time after
> > > December 2018. When we get there, it will likely _still_ seem to be
> > > an old version -- the 20181213 sysroot was, after all, created in
> > > April 2020.
> > >
> > > If we were to create a new sysroot in April 2021, it may well be from
> > > gate bits towards the end of 2019 or very early 2020. Any newer and
> > > it is unlikely to result in binaries that can be used on, as much as
> > > possible, all supported distribution releases. You can see from the
> > > release schedule at OmniOS that some of their LTS releases are
> > > supported for a long time, and we want the sysroot to produce binaries
> > > that can be used there:
> > >
> > > https://omniosce.org/schedule
> > >
> > > The current LTS release is r151030, which was released in May 2019 and
> > > will be supported until May 2022. That makes it unlikely that the
> > > released sysroot would advance past May 2019 until 2022, unless we
> > > could find a way around the problem.
> > >
> > > > Generally I would expect anyone using a sysroot to have a pretty specific
> > > > target in mind.
> > > > It's not that hard to create, either simply copying an existing system that
> > > > has the bits you
> > > > want, or using packaging - pkg has the image-create functionality designed
> > > > for exactly
> > > > this purpose.
> > >
> > > Yes, you could definitely use "pkg image-create" to install any set of
> > > OpenIndiana packages into a directory tree. This is, as it happens,
> > > basically what the Distribution Constructor does today to create the
> > > install media. The OmniOS folks also use this approach to build cloud
> > > images in their Kayak tools.
> > >
> > > You could also use the tools we included in the "illumos/sysroot"
> > > repository, with minor configuration or modification, to make your own
> > > sysroot from any built copy of illumos.
> > >
> > >
> > > Cheers.
> > >
> > > --
> > > Joshua M. Clulow
> > > http://blog.sysmgr.org
> > >
> > > _______________________________________________
> > > openindiana-discuss mailing list
> > > openindiana-discuss at openindiana.org
> > > https://openindiana.org/mailman/listinfo/openindiana-discuss
> > >
> >
> > _______________________________________________
> > openindiana-discuss mailing list
> > openindiana-discuss at openindiana.org
> > https://openindiana.org/mailman/listinfo/openindiana-discuss
>
>
>
> _______________________________________________
> openindiana-discuss mailing list
> openindiana-discuss at openindiana.org
> https://openindiana.org/mailman/listinfo/openindiana-discuss
>
More information about the openindiana-discuss
mailing list