Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] Error during partial linking
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2002-10-22 (19:30)
From: Sven Luther <luther@d...>
Subject: Re: [Caml-list] on the -pack option
On Tue, Oct 22, 2002 at 07:14:24PM +0200, Xavier Leroy wrote:
> > Is there a particular reason why ocamlmklib does not support the pack
> > option ?
> Well, basically because I think it wouldn't make much sense.
> The job of ocamlmklib is to build a mixed C/Caml library, that is:
> - a ".cma" Caml library
> - a ".a" and/or ".so" C library
> - the necessary annotations in the ".cma" so that the C part is
>   automatically linked.
> I feel that packing a set of Caml object files (.cmo) into
> substructures of a single Caml object file (which is what -pack does)
> is best done by a separate invocation of ocamlc -pack.  That is,
> you can always do
>         ocamlc -pack -o mylib.cmo a.cmo b.cmo c.cmo
>         ocamlmklib -o mylib ... mylib.cmo

Well, one more step in the makefile, it would be no problem, but since
ocamlmklib is a wrapper anyway, what about making :

ocamlmklib -pack -o mylib a.cmo b.cmo c.cmo 

To just be a shortcut for the above two ?

This would seem more logical from a user perspective point, and you
would be able to simply use ocamlmklib for doing libraries, and to
simply specify -pack if you want the .cmos packed.

> > [about not linking unused code]
> > BTW, if you pack the .cmos into a single .cmo and then put this one in a
> > .cma, you should get the same benefit as what you describe, isn't it ?
> Unfortunately not.  The .cma contains only one .cmo, which is either
> not linked at all or linked in full.  For the bytecode compiler, it
> could be possible to eliminate unused code with a finer grain.  But

Would it make sense doing this for bytecode and not native code ?

> for the native-code, we are severely constrained by what the Unix and
> Win32 linkers know how to do, and they can only eliminate whole object
> files, not parts of them.
> For some libraries, this isn't really a problem: by design, you'll
> generally use most of their modules.  For other libraries (e.g. Baire :-)

So you suggest Shouxun should better forget about using -pack in the
Baire makefile ?

> > BTW, advi build fails on ia64
> Yes, your bug report is in the database and will be addressed in due time.

Err, sorry, i forgot i had filled a bugreport.

BTW, like i said, maybe i am spoiled by the debian BTS, but should the
ocaml BTS not give some feedback when a bug report you submit is being
processed ? Maybe you could request this feature by setting a flag that
your bug report processor will recognize and trigger feedback mails ?


Sven Luther
To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: