In that case, try listing dynlink explicitly, like:
ocamlfind ocamlc dynlink.cma -package json-static [etc]
$ ocamlfind ocamlc dynlink.cma -package json-static -syntax camlp4o -c test.ml
$ ocamlfind ocamlc -I /home/conglun/godi/lib/ocaml/pkg-lib/camlp4 dynlink.cma -package json-static -syntax camlp4o -c t.ml
Error: Error while linking /home/conglun/godi/lib/ocaml/std-lib/camlp4/camlp4lib.cma(Camlp4):
Reference to undefined global `Dynlink'
Anyhow, it sounds like a bug in the META files that are supplied with
your cygwin OCaml distribution.
I think you are right, the problem happens on the camlp4o or cygwin, which can't load dynlink. But I can't find problem in the camlp4's META (in the attachment)
Thanks,
Conglun