On Fri, Oct 21, 2022 at 12:10:43AM +0800, guiHua wrote:
Hello
When I compile libgustfs, it will throw exception: undefined reference to
'caml_local_roots' when adding pie link option.
Why is that? The command is like this:
./configure CFLAGS="-O2 -fPIC" LDFLAGS="-pie -Wl".
Is that LDFLAGS actually valid? You might try putting -pie into
CFLAGS, and I don't know if -Wl has any effect at all.
I look forward to hearing from you.
I'm not certain why, but I can tell you that caml_local_roots is a
symbol in the OCaml runtime:
$ cat > hello.ml
print_endline "hello, world"
$ ocamlopt hello.ml -o hello
$ ./hello
hello, world
$ nm hello | grep caml_local_roots
0000000000000024 a domain_field_caml_local_roots
It's actually defined here:
https://github.com/ocaml/ocaml/blob/trunk/runtime/caml/memory.h#L238
(The "domain_field_" prefix is something to do with multicore, it used
to be a global variable, but now is stored per-thread.)
What distro is this?
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW