Building a cross-compiling ocaml

From: Matthew S. Harris (mharris@cs.cornell.edu)
Date: Mon Mar 06 2000 - 22:30:35 MET

  • Next message: Simon Peyton-Jones: "RE: Interpreter vs hardware threads"

    I am trying to get ocaml to produce code that can be linked against
    the libc of a different operating system (the University of Utah's
    OSKit project, for those who may know it). The key facts are:

      - The target architecture is the same, so all the normal build tools
        and commands work; I just need to add some compile-time and
        link-time options so gcc will use the proper header files and
        libraries.

      - I'm using a different libc than the native (Linux) one, so the
        ocamlrun produced in this manner cannot be run locally. In other
        words, the normal build process gives me a broken ocamlc.

    I am not very familiar with the OCaml architecture because I am only
    trying to link with some functions written in OCaml. I tried
    following the directions given by Xavier a year ago
    <http://pauillac.inria.fr/caml/caml-list/1160.html>, which involved
    changing NATIVECCCOMPOPTS and NATIVECCLINKOPTS in config/Makefile, but
    the make procedure for stdlib/ involves running ocamlrun, which was
    linked with the byterun/* files produced with these options.

    My understanding is that bytecode files are entirely
    system-independent, so I should just need to get the byterun/* files
    built with the alternate library. But since ocamlrun, which is used
    by ocamlc, is built from these files, I have a circular dependency: I
    need to run an ocamlc under Linux to produce the files that I will
    link with the alternate libc. What is the best way to resolve this?

    Matthew



    This archive was generated by hypermail 2b29 : Mon Mar 06 2000 - 23:02:17 MET