caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Robert Roessler <roessler@rftp.com>
To: Caml-list <caml-list@inria.fr>
Subject: Re: [Caml-list] Undefined symbols error (Was: ocamlc vs ocamlc.opt?)
Date: Sat, 03 Feb 2007 01:13:13 -0800	[thread overview]
Message-ID: <45C45229.5030208@rftp.com> (raw)
In-Reply-To: <aee06c9e0702021451j4be0a7bch9076be8d4753c9cd@mail.gmail.com>

Nathaniel Gray wrote:
> On 1/31/07, Robert Roessler <roessler@rftp.com> wrote:
>> I just ran into a problem where building a bytecode executable failed
>> with findlib ("ocamlfind ocamlc ...") but the equivalent non-findlib
>> command worked.  Then I saw that I could force the same error message
>> in my non-findlib build by just matching findlib's ocamlc.opt, while I
>> had used ocamlc.
>>
>> The command line is:
>> ocamlc -o bait -I +lablgtk2 -I +lablscintilla -thread threads.cma
>> lablgtk.cma gtkInit.cmo scintilla.cma bait.ml
>>
>> which works fine.  Changing ocamlc to ocamlc.opt yields:
>> Error on dynamically loaded library:
>> /usr/lib/ocaml/stublibs/dlllablscintilla.so: undefined symbol:
>> caml_names_of_builtin_cprim
>>
>> This is on FC6, with a Yum-installed OCaml 3.09.3 package.  Both of
>> the versions of the compiler identify themselves as 3.09.3 with the
>> same standard library location, and both were built on Dec 2 of 2006.
>>
>> So should the versions of ocamlc behave the same excepting performance
>> issues, or ?
> 
> I'm getting this error on a g++ build step:

I am more inclined to believe that there is something weird about the 
ocamlc.opt build or packaging in the FC6 Yum repo, since my problem 
clears up if I keep what I am trying to build constant and just change 
which version of the OCaml compiler I invoke.

> g++ -L/sw/lib/ -o dlllablscintilla.so  ml_scintilla.o
> liblablscintilla.a "/usr/local/godi/lib/ocaml/std-lib"/libcamlrun.a
> "/usr/local/godi/lib/ocaml/std-lib"/lablgtk2/liblablgtk2.a
> -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm
> -lpangoft2-1.0 -lpango-1.0 -lfreetype.6 -lgobject-2.0 -lgmodule-2.0
> -ldl -lglib-2.0 -lgthread-2.0
> /usr/bin/ld: Undefined symbols:
> _caml_names_of_builtin_cprim
> _caml_builtin_cprim
> 
> It may or may not be a coincidence, but I'm trying to build your
> lablscintilla package.  This is on OS X 10.4 with godi-installed OCaml
> 3.09.3.  FWIW, these symbol references appear to come from
> libcamlrun.a.  They don't appear in libasmrun.

And libcamlrun.a is sitting right there on the command line - or at 
least an instance of this library is... OTOH, are you sure you want to 
build the DLL this way?  I build the static lib with libasmrun, but 
supply the ocamlrun lib to the DLL build.  Check the 
lib$(PACKAGE).$(A) and dll$(PACKAGE).$(SO) targets in the Makefile.

> [n8gray@golux n8gray]$ nm -a
> /usr/local/godi/lib/ocaml/std-lib/libcamlrun.a | grep builtin_cprim
>         U _caml_names_of_builtin_cprim
>         U _caml_builtin_cprim
>         U _caml_names_of_builtin_cprim
> [n8gray@golux n8gray]$ nm -a
> /usr/local/godi/lib/ocaml/std-lib/libasmrun.a | grep builtin_cprim
> 
> Building the native-code version works fine.

So you had to build on the platform I can't test on. ;)  When you get 
something going, I would like to integrate it into my Makefile as the 
"macosx" case.

Robert Roessler
roessler@rftp.com
http://www.rftp.com


  reply	other threads:[~2007-02-03  9:13 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-02 22:51 Nathaniel Gray
2007-02-03  9:13 ` Robert Roessler [this message]
2007-02-04 14:08   ` [Caml-list] " Robert Roessler

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=45C45229.5030208@rftp.com \
    --to=roessler@rftp.com \
    --cc=caml-list@inria.fr \
    /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).