caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Gerd Stolpmann <info@gerd-stolpmann.de>
To: Hans Ole Rafaelsen <hans@simula.no>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Problem with findlib and threads
Date: Mon, 14 Oct 2002 23:59:27 +0200	[thread overview]
Message-ID: <20021014215927.GK1002@ice.gerd-stolpmann.de> (raw)
In-Reply-To: <3az4rbpm89e.fsf@itherther.simula.no>; from hans@simula.no on Mon, Okt 14, 2002 at 15:59:09 +0200


Am 2002.10.14 15:59 schrieb(en) Hans Ole Rafaelsen:
> Hello,
> 
> I'm having trouble linking a library which uses threads, using
> ocamlfind.  The library I'm having trouble with, is the xmlrpc
> library.  (I have added a module which handles xmlrpc requests, and
> this module uses threads.)
> 
> ocamlfind ocamlopt -linkpkg  -package "stew xmlrpc threads" -o server.opt   application_impl.cmx application_skeleton.cmx main_server.cmx
> No implementations provided for the following modules:
>   Thread referenced from /usr/local//lib/ocaml/site-lib/xmlrpc/xmlrpc.cmxa(XmlRPCServer)
> 
> If I remove threads form the package list, I get the same error,

Maybe -thread is missing? Selecting the package "threads" without -thread does
not have any effect.

> ocamlfind ocamlopt -linkpkg  -package "stew xmlrpc" -o server.opt   application_impl.cmx application_skeleton.cmx main_server.cmx
> No implementations provided for the following modules:
> Thread referenced from
> /usr/local//lib/ocaml/site-lib/xmlrpc/xmlrpc.cmxa(XmlRPCServer)
> 
> but removing another package, results in errors related to modules
> defined in that package, and which is what you would expect.
> 
> ocamlfind ocamlopt -linkpkg  -package "xmlrpc threads" -o server.opt   application_impl.cmx application_skeleton.cmx main_server.cmx
> No implementations provided for the following modules:
>   Time referenced from /usr/local//lib/ocaml/site-lib/xmlrpc/xmlrpc.cmxa(XmlRPCServer)
>   Thread referenced from /usr/local//lib/ocaml/site-lib/xmlrpc/xmlrpc.cmxa(XmlRPCServer)
> 
> Thus, it seems that trying to link with the threads library have no
> effect.

As explained.

> 
> I have a similar problem with the byte-code version, but I was able to
> get round the problem by linking in the thread library while linking
> the xmlrpc library.
> 
> ocamlfind ocamlc -cclib '-lstew' -thread -package "xstr threads netclient netstring equeue pxp pcre stew " -a -o xmlrpc.cma \
>         -predicates "" threads.cma xmlRPCTypes.cmo xmlRPCDtd.cmo
> xmlRPCNet.cmo xmlRPCClient.cmo xmlRPCServerMethods.cmo
> xmlRPCServer.cmo
> 
> This is probably not the right way to do this, and trying the same
> approach with the native-code version does not work.
> 
> ocamlfind ocamlopt -cclib '-lstew' -thread -package "xstr threads netclient netstring equeue pxp pcre stew " -a  -o xmlrpc.cmxa \
>         -predicates "" threads.cmxa xmlRPCTypes.cmx xmlRPCDtd.cmx xmlRPCNet.cmx xmlRPCClient.cmx xmlRPCServerMethods.cmx xmlRPCServer.cmx  
> /usr/local//lib/ocaml//threads/threads.cmxa
> is not a compilation unit description.

Linking a library with libraries does not work for native code. Btw, your approach
would also not work if ocaml had been configured for bytecode threads, because the
-thread option has a special effect in this case (selects a different version of the
standard library). This is why ocamlfind demands -thread always, even if the
ocaml compiler sometimes does not need it (when linking executables for POSIX threads).

Simply follow the rule: Give both -thread and -package threads for compiling
and linking.

I hope this helps,

Gerd

------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany 
gerd@gerd-stolpmann.de          http://www.gerd-stolpmann.de
------------------------------------------------------------
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


  reply	other threads:[~2002-10-14 21:59 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-14 13:59 Hans Ole Rafaelsen
2002-10-14 21:59 ` Gerd Stolpmann [this message]
2002-10-15  8:08   ` Hans Ole Rafaelsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20021014215927.GK1002@ice.gerd-stolpmann.de \
    --to=info@gerd-stolpmann.de \
    --cc=caml-list@inria.fr \
    --cc=hans@simula.no \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).