| 13 Jan 2025 |
artemis | i dont know of any normal command to actually get a built illumos package as a tarfile. the way i was doing it is i have a script (not included, its part of my general utility script i use on illumos which is not public) that lists all the files, tars them up, and walks the dependency tree doing that for the package | 00:01:37 |
artemis | part of why i never released the blog post was i wanted to extract that into something public but i never did | 00:01:53 |
John Ericson | gotcha | 00:02:01 |
John Ericson | that is all fine, because we'll just use the normal nixpkgs stuff for that part | 00:02:09 |
artemis | yeah | 00:02:26 |
artemis | from that post, the gcc stuff is probably the most relevant to you | 00:02:59 |
John Ericson | for FreeBSD and OpenBSD we used Clang, but for NetBSD that never worked so we did use GCC for that | 00:03:51 |
John Ericson | slipped in the headers for libgcc as needed | 00:04:00 |
artemis | i dont remember if i used the gnu linker or lld when i cross-built the rust project in this process | 00:04:46 |
artemis | but lld is known to be able to link for illumos iirc | 00:05:03 |
John Ericson | oh sweat | 00:05:27 |
John Ericson | the bootstrapping latency with the LLVM stuff is better | 00:05:44 |
John Ericson | so if mixing LLD and GCC works, that is good | 00:05:57 |
artemis | some folks at work (including me) have also managed to convince mold to link succesfully but it hasn't been useful enough to get into a working state and the steps needed seemed to change over time because mold was (is?) developing rapidly | 00:07:19 |
artemis | gentoo's crossdev tool is very gcc-specific, so i cant speak to what bootstrapping with clang only looks like. and i may be wrong about lld, you'll need to find out for yourself with that one | 00:08:27 |
artemis | In reply to @artemis:arty.chat gentoo's crossdev tool is very gcc-specific, so i cant speak to what bootstrapping with clang only looks like. and i may be wrong about lld, you'll need to find out for yourself with that one it technically has a -L to do llvm/clang but i have never tried it, even for linux, so im not sure if it works | 00:09:24 |
artemis | oh i have something else that will probably help | 00:10:41 |
artemis | Download illumos-solaris-crossdev-conf.tar.gz | 00:12:13 |
artemis | John Ericson ^ particularly the env folder is probably interesting here | 00:12:34 |
artemis | these environment variables are set during the build, so you dont need to go through crossdev to get it to generate them for you (and in case i added any manually and forgot...) | 00:13:07 |
artemis | and EXTRA_ECONF is a gentoo specific variable, which tells portage, this is extra stuff to pass to ./configure | 00:14:02 |
John Ericson | ah ok cool | 00:14:23 |
John Ericson | the Makefile.native I saw in illumos almost did look like something that ought to come from a configure script | 00:14:44 |
artemis | i still dont know anything about the illumos-gate build system | 00:15:10 |
artemis | it is utterly impenetrable to me | 00:15:16 |
John Ericson | haha yeah it is a lot; I have my scars from BSD to help me that's it | 00:15:55 |
John Ericson | the doc on makefile layout did not help me too much | 00:16:04 |
John Ericson | OK built illumos.install! | 03:56:19 |
John Ericson | nix-build --arg crossSystem '{ system = "x86_64-illumos"; }' -A illumos.include
| 06:42:47 |
John Ericson | marching along! | 06:42:52 |