By ids1024
on Saturday, July 8, 2017

As previously reported, I am working on making Redox self hosting for the Google Summer of Code.

Cargo

Based on how far I was at the time of my last report, I was hoping cargo would be working on Redox by now. But that is not yet the case.

It took a while to find one bug that was interfering with cargo; an issue with the implementation of Convdar on Redox. The remaining issue seems to be in jobserver-rs; the modifications I made to it to run on Redox were incorrect. It should be possible to port that properly once Redox has full support for signals and signal handlers.

Cargo also is unable to fetch the registry; I’m not sure why, but hopefully it will work better once Redox switches to a network stack based on smoltcp.

Other libc functions

I added the getppid() system call (which was trivial), and sent a PR adding that function to Redox’s newlib, along with inet_pton() and inet_ntop(). And later I added gethostname(). The goal here is mainly to reduce the amount of patching needed for C programs.

Git

One issue with git was caused by a bug in Redox’s pipe scheme. With some dificulty, I managed to create a recipe for git that includes support for http(s) via curl; it was somewhat dificult tricking it into finding the dependencies and linking correctly. I added a way to specify build dependencies for static libraries needed by C programs in the cookbook, which helps with git since it depends on several libraries.

Git still doesn’t work yet.

Python

I’ve created an initial patch and recipe for python, which now runs although it is not fully functional. This was partially because LLVM and Rust require Python to build, so it should be available for full self-hosting; although it looks like they require Python 2… but I makes a good screenshot anyway.