[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MirageOS-devel] Compiling gmp-xen with nixpkgs

Hi all,

After getting acquainted with some of the sample applications, I've
been trying to get the server component of a relatively small project
of mine[0] running under mirage.

After refactoring the server code to use the mirage interfaces rather
than Unix & friends directly, I've got it compiling to the xen

I've been using nix[1] to build my project, so while getting stuff
working I have been using opam instead to maximise my chance of it
working. But now that it does, I'd like to get it working under `nix`
as well. Most of it is just grunt work, as the mirage libraries &
dependencies seem to build without issue (yay!), but when it comes to
linking stub libraries I'm having some trouble.

As I understand it, some (most?) c stubs will need cross-compilation
for a xen (minios?) target before they can be linked into a xen
unikernel. You've made *-xen opam package variants for the libraries
needed for nocrypto - zarith, gmp, etc.

In trying to recreate these I feel like I'm doing just the same as the
opam packages - based on the opam repo I'm applying the exact same
patches, running the same build script (modulo $PKG_CONFIG_PATH), etc.
But I still can't get gmp to build. It gets to the linking stage, and
I get a screenful of undefined symbols, primarily "_ctype" and
"printk". I've uploaded the full log[2]. if that helps.

I can't really tell which side of the problem this is - should gmp not
be referencing these symbols (maybe I'm missing some compile flags)?
or should the symbols be found somewhere, and I'm failing to link in
some important library?

In either case it's hard to tell where to go from here, since I can't
see anything too suspicious in the logs, and I'm trying my best to do
the same thing as `opam` would. Any pointers?

 - Tim.

[0]: https://github.com/gfxmonk/passe
[1]: http://nixos.org/nix/
[2]: https://gist.github.com/gfxmonk/e981bfb381328cb11af8

MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.