Google Groupes n'accepte plus les nouveaux posts ni abonnements Usenet. Les contenus de l'historique resteront visibles.

[Caml-list] Module dependencies of bytecode executables

4 vues
Accéder directement au premier message non lu

Samuel Mimram

non lue,
21 sept. 2006, 03:43:2821/09/2006
à Caml List
Hi list,

Is it somehow possible to extract the list of modules used by a bytecode
executable? "ocamldumpobj a.out | grep SETGLOBAL" seems to be a good
starting point but I don't know if it's reliable. Are the md5sums of the
imported interfaces still available?

Also, how can I determine which *.so will be dlopened by the executable?

Thanks!

Cheers,

Samuel.

_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Xavier Leroy

non lue,
21 sept. 2006, 05:29:4221/09/2006
à Samuel Mimram
> Is it somehow possible to extract the list of modules used by a bytecode
> executable? "ocamldumpobj a.out | grep SETGLOBAL" seems to be a good
> starting point but I don't know if it's reliable.

It is reliable.

> Are the md5sums of the imported interfaces still available?

Yes, these are saved in the bytecode executable, section "CRCS",
but there are no tools in the distrib that will list this info for you.

> Also, how can I determine which *.so will be dlopened by the executable?

Run the executable with OCAMLRUNPARAM=v=256, this will print debug
messages during shared library loading, including names and
locations of these libraries.

- Xavier Leroy

Stefano Zacchiroli

non lue,
21 sept. 2006, 06:11:1721/09/2006
à Caml List
On Thu, Sep 21, 2006 at 11:26:11AM +0200, Xavier Leroy wrote:
> > Are the md5sums of the imported interfaces still available?
> Yes, these are saved in the bytecode executable, section "CRCS",
> but there are no tools in the distrib that will list this info for you.

Any pointer to where to look in the code to write such a tool, or some
alternative hack?

> > Also, how can I determine which *.so will be dlopened by the executable?
> Run the executable with OCAMLRUNPARAM=v=256, this will print debug
> messages during shared library loading, including names and
> locations of these libraries.

That's bad, we were hoping to extract the information statically,
without having to run the executable. As above, any pointer?

The rationale for all of this is that we are trying to come up with a
mechanism for automatically compute (tight) dependencies among debian
packages on the basis of the information stored inside bytecode
executables and objects.

Many thanks for your answer.

--
Stefano Zacchiroli -*- Computer Science PhD student @ Uny Bologna, Italy
zack@{cs.unibo.it,debian.org,bononia.it} -%- http://www.bononia.it/zack/
If there's any real truth it's that the entire multidimensional infinity
of the Universe is almost certainly being run by a bunch of maniacs. -!-

0 nouveau message