[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