[OpenIndiana-discuss] Could you update your sysroot, jclulow?
Hung Nguyen Gia
gh_origin at zohomail.com
Mon Jan 18 12:15:22 UTC 2021
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
>
More information about the openindiana-discuss
mailing list