Thanks for all of your help.
I tried, and it works fine until the require of "json-static". It breaks when loading "pcre.cma".
Now we can say that pcre package has some problem, but dynlink is loaded successfully.
Test1
$ ocaml
Objective Caml version 3.11.1
# #load "dynlink.cma";;
# let x = Dynlink.is_native;;
val x : bool = false
Test 2
$ocaml
#use "topfind";;
#load "dynlink.cma";;
#require "json-static";;
/home/conglun/godi/lib/ocaml/std-lib/dynlink.cma: loaded
/home/conglun/godi/lib/ocaml/std-lib/camlp4: added to search path
/home/conglun/godi/lib/ocaml/pkg-lib/pcre: added to search path
/home/conglun/godi/lib/ocaml/pkg-lib/pcre/pcre.cma: loaded
47721 [main] ocaml 2136 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack)
Segmentation fault (core dumped)
Test 3
ocamlfind ocamlmktop -package dynlink -o dtop -custom -linkall
$./dtop
#use "topfind";;
#require "dynlink";;
/home/conglun/godi/lib/ocaml/std-lib/dynlink.cma: loaded
# let x = Dynlink.is_native;;
val x : bool = false
> Ah but wait, your META file has that patch incorporated already!What happens if you run ocaml and then enter #load "dynlink.cma";; ??
>
> I don't know -- the cygwin distribution of OCaml is broken somehow.
David