$NetBSD: patch-tools_ocamlmklib,v 1.6 2016/05/05 08:12:01 jaapb Exp $ Add ELF mode support to ocamlmklib --- tools/ocamlmklib.ml.orig 2016-04-01 12:53:41.000000000 +0000 +++ tools/ocamlmklib.ml @@ -28,6 +28,7 @@ and c_objs = ref [] (* .o, .a, . and caml_libs = ref [] (* -cclib to pass to ocamlc, ocamlopt *) and caml_opts = ref [] (* -ccopt to pass to ocamlc, ocamlopt *) and dynlink = ref supports_shared_libraries +and elfmode = ref false (* do not add C link lib path to run-time path *) and failsafe = ref false (* whether to fall back on static build only *) and c_libs = ref [] (* libs to pass to mksharedlib and ocamlc -cclib *) and c_Lopts = ref [] (* options to pass to mksharedlib and ocamlc -cclib *) @@ -104,8 +105,9 @@ let parse_arguments argv = c_libs := s :: !c_libs else if starts_with s "-L" then (c_Lopts := s :: !c_Lopts; - let l = chop_prefix s "-L" in - if not (Filename.is_relative l) then rpath := l :: !rpath) + if not !elfmode then + (let l = chop_prefix s "-L" in + if not (Filename.is_relative l) then rpath := l :: !rpath)) else if s = "-ocamlcflags" then ocamlc_opts := next_arg () :: !ocamlc_opts else if s = "-ocamlc" then @@ -120,6 +122,8 @@ let parse_arguments argv = output_c := next_arg() else if s = "-dllpath" || s = "-R" || s = "-rpath" then rpath := next_arg() :: !rpath + else if s = "-elfmode" then + elfmode := true else if starts_with s "-R" then rpath := chop_prefix s "-R" :: !rpath else if s = "-Wl,-rpath" then @@ -165,6 +169,7 @@ Usage: ocamlmklib [options] <.cmo|.cma|. \n -custom Disable dynamic loading\ \n -g Build with debug information\ \n -dllpath Add to the run-time search path for DLLs\ +\n -elfmode Do not add link-time search path to run-time path\ \n -F Specify a framework directory (MacOSX)\ \n -framework Use framework (MacOSX)\ \n -help Print this help message and exit\