From: Stephane Glondu Date: Tue, 8 Jun 2010 09:58:31 +0000 (+0200) Subject: Remove ocaml{byte,plugin}info, merged upstream into ocamlobjinfo X-Git-Tag: archive/raspbian/4.08.1-4+rpi1~3^2~340 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3cfa7906ee0c2f0168ff01083f95ac6780795aec;p=ocaml.git Remove ocaml{byte,plugin}info, merged upstream into ocamlobjinfo --- diff --git a/debian/control b/debian/control index 4fb9b7a2..48628479 100644 --- a/debian/control +++ b/debian/control @@ -12,6 +12,7 @@ Uploaders: Build-Depends: debhelper (>= 7.1.0~), autotools-dev, + binutils-dev, tcl8.5-dev, tk8.5-dev, libncurses5-dev, diff --git a/debian/man/ocamlbyteinfo.1 b/debian/man/ocamlbyteinfo.1 deleted file mode 100644 index d0912922..00000000 --- a/debian/man/ocamlbyteinfo.1 +++ /dev/null @@ -1,26 +0,0 @@ -.TH OCAMLBYTEINFO 1 "July 21, 2009" -.SH NAME -ocamlbyteinfo \- dump an OCaml bytecode binary description -.SH SYNOPSIS -.B ocamlbyteinfo -.RI file -.SH DESCRIPTION -Dump information contained in OCaml bytecode binary. -.sp 2 -.B ocamlbyteinfo -is able to show information regarding: -.br -.IP -CRC of implementation -.sp 2 -unsafe features -.SH SEE ALSO -.BR ocamlc (1), -.BR ocamlopt (1), -.BR ocamlobjinfo (1), -.BR ocamlplugininfo (1), -.BR ocamldumpapprox (1) -.br -.SH AUTHOR -This manual page was written by Mehdi Dogguy , -for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/man/ocamldumpapprox.1 b/debian/man/ocamldumpapprox.1 deleted file mode 100644 index 54dadf00..00000000 --- a/debian/man/ocamldumpapprox.1 +++ /dev/null @@ -1,29 +0,0 @@ -.TH OCAMLDUMPAPPROX 1 "February 15, 2009" -.SH NAME -ocamldumpapprox \- dump an OCaml native compilation unit description -.SH SYNOPSIS -.B ocamldumpapprox -.RI file\ ... -.SH DESCRIPTION -Dump information contained in OCaml native compilation units. -It works on .cmx and .cmxa files. -.sp 2 -.B ocamldumpapprox -is able to show information regarding: -.br -.IP -CRC of implementation -.sp 2 -CRC of imported interfaces and implementations -.sp 2 -implementation assumptions -.PP -depending on its invocation on .cmx or .cmxa arguments. -.SH SEE ALSO -.BR ocamlc (1), -.BR ocamlopt (1), -.BR ocamlobjinfo (1) -.br -.SH AUTHOR -This manual page was written by Stéphane Glondu , -for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/man/ocamlobjinfo.1 b/debian/man/ocamlobjinfo.1 index b12f7a1d..b728e80a 100644 --- a/debian/man/ocamlobjinfo.1 +++ b/debian/man/ocamlobjinfo.1 @@ -1,12 +1,13 @@ -.TH OCAMLOBJINFO 1 "October 26, 2002" +.TH OCAMLOBJINFO 1 "June 9, 2010" .SH NAME -ocamlobjinfo \- dump an OCaml compilation unit description +ocamlobjinfo \- dump information about OCaml compiled objects .SH SYNOPSIS .B ocamlobjinfo .RI file\ ... .SH DESCRIPTION -Dump information contained in OCaml compilation units. -Currently it works on .cmi, .cmo and .cma files. +Dump information contained in OCaml compiled objects. It works +on .cmi, .cmo, .cma, .cmx, .cmxa, .cmxs files and pure bytecode +executables. .sp 2 .B ocamlobjinfo is able to show information regarding: @@ -14,7 +15,7 @@ is able to show information regarding: .IP module names .sp 2 -unit name +unit names .sp 2 declared primitives .sp 2 @@ -30,11 +31,12 @@ extra C flags needed .sp 2 use of unsafe features .PP -depending on its invocation on .cmi, .cmo or .cma arguments. +depending on its arguments. .SH SEE ALSO .BR ocamlc (1), .BR ocamlopt (1) .br .SH AUTHOR -This manual page was written by Stefano Zacchiroli , -for the Debian GNU/Linux system (but may be used by others). +This manual page was written by Stefano Zacchiroli +and Stéphane Glondu , for the Debian GNU/Linux +system (but may be used by others). diff --git a/debian/man/ocamlplugininfo.1 b/debian/man/ocamlplugininfo.1 deleted file mode 100644 index 45ff30cb..00000000 --- a/debian/man/ocamlplugininfo.1 +++ /dev/null @@ -1,27 +0,0 @@ -.TH OCAMLPLUGININFO 1 "July 21, 2009" -.SH NAME -ocamlplugininfo \- dump an OCaml native shared object file description -.SH SYNOPSIS -.B ocamlplugininfo -.RI file -.SH DESCRIPTION -Dump information contained in OCaml native sahred object. -It works on .cmxs files. -.sp 2 -.B ocamlplugininfo -is able to show information regarding: -.br -.IP -CRC of implementation -.sp 2 -CRC of imported interfaces and implementations -.SH SEE ALSO -.BR ocamlc (1), -.BR ocamlopt (1), -.BR ocamlobjinfo (1), -.BR ocamlbyteinfo (1), -.BR ocamldumpapprox (1) -.br -.SH AUTHOR -This manual page was written by Mehdi Dogguy , -for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/ocaml-nox.install.in b/debian/ocaml-nox.install.in index df89d288..1fa3ac63 100644 --- a/debian/ocaml-nox.install.in +++ b/debian/ocaml-nox.install.in @@ -10,6 +10,8 @@ usr/bin/ocamlmktop usr/bin/ocamlprof usr/bin/ocamlyacc + usr/bin/ocamlobjinfo + @OCamlStdlibDir@/objinfo_helper debian/native-archs @OCamlStdlibDir@ OPT: usr/bin/ocamlbuild.native OPT: usr/bin/ocamlopt diff --git a/debian/ocaml-nox.manpages.in b/debian/ocaml-nox.manpages.in index 041b8bc7..5ed39617 100644 --- a/debian/ocaml-nox.manpages.in +++ b/debian/ocaml-nox.manpages.in @@ -1,6 +1,3 @@ debian/man/ocamlmklib.1 debian/man/ocamldumpobj.1 debian/man/ocamlobjinfo.1 -debian/man/ocamlbyteinfo.1 -OPT: debian/man/ocamldumpapprox.1 -OPT: debian/man/ocamlplugininfo.1 diff --git a/debian/ocamlbyteinfo/Makefile b/debian/ocamlbyteinfo/Makefile deleted file mode 100644 index 9f5bf625..00000000 --- a/debian/ocamlbyteinfo/Makefile +++ /dev/null @@ -1,34 +0,0 @@ - -DIR=debian/ocamlbyteinfo -BEXE=ocamlbyteinfo -NEXE=ocamlplugininfo -OCAMLC=./boot/ocamlrun ./ocamlc -OCAMLOPT=./boot/ocamlrun ./ocamlopt -OCAMLLEX=./boot/ocamlrun ./lex/ocamllex - -GENERATED=$(BEXE) $(NEXE) *.cm* natdynlink.* *.a *.o - -BDEPS=otherlibs/dynlink/dynlinkaux.cmo -NDEPS=$(DIR)/natdynlink.cmxa -INCLUDES= -I stdlib -I utils -I typing -I bytecomp -I $(DIR) \ - -I otherlibs/dynlink -I otherlibs/unix -I otherlibs/str - -all: $(BEXE) $(NEXE) - -$(DIR)/natdynlink.ml: - cp otherlibs/dynlink/natdynlink.ml $(DIR)/ - -$(DIR)/natdynlink.cmx: $(DIR)/natdynlink.ml - $(OCAMLOPT) -c $(INCLUDES) $(DIR)/natdynlink.ml - -$(DIR)/natdynlink.cmxa: $(DIR)/natdynlink.cmx - $(OCAMLOPT) $(INCLUDES) -ccopt "-Wl,-E" $^ -a -o $@ - -$(NEXE): $(NDEPS) - $(OCAMLOPT) unix.cmxa str.cmxa -o $(DIR)/$(NEXE) $(INCLUDES) $(NDEPS) $(DIR)/$(NEXE).ml - -$(BEXE): $(BDEPS) - $(OCAMLC) -o $(DIR)/$(BEXE) $(INCLUDES) $(BDEPS) $(DIR)/$(BEXE).ml - -clean: - rm -f $(addprefix $(DIR)/, $(GENERATED)) diff --git a/debian/ocamlbyteinfo/ocamlbyteinfo.ml b/debian/ocamlbyteinfo/ocamlbyteinfo.ml deleted file mode 100644 index eb9a293e..00000000 --- a/debian/ocamlbyteinfo/ocamlbyteinfo.ml +++ /dev/null @@ -1,101 +0,0 @@ -(***********************************************************************) -(* *) -(* Objective Caml *) -(* *) -(* Xavier Leroy, projet Gallium, INRIA Rocquencourt *) -(* *) -(* Copyright 2009 Institut National de Recherche en Informatique et *) -(* en Automatique. All rights reserved. This file is distributed *) -(* under the terms of the GNU Library General Public License, with *) -(* the special exception on linking described in file ../../LICENSE. *) -(* *) -(***********************************************************************) - -(* $Id$ *) - -(* Dumps a bytecode binary file *) - -open Sys -open Dynlinkaux - -let input_stringlist ic len = - let get_string_list sect len = - let rec fold s e acc = - if e != len then - if sect.[e] = '\000' then - fold (e+1) (e+1) (String.sub sect s (e-s) :: acc) - else fold s (e+1) acc - else acc - in fold 0 0 [] - in - let sect = String.create len in - let _ = really_input ic sect 0 len in - get_string_list sect len - -let print = Printf.printf -let perr s = - Printf.eprintf "%s\n" s; - exit(1) -let p_title title = print "%s:\n" title - -let p_section title format pdata = function - | [] -> () - | l -> - p_title title; - List.iter - (fun (name, data) -> print format (pdata data) name) - l - -let p_list title format = function - | [] -> () - | l -> - p_title title; - List.iter - (fun name -> print format name) - l - -let _ = - try - let input_name = Sys.argv.(1) in - let ic = open_in_bin input_name in - Bytesections.read_toc ic; - List.iter - (fun section -> - try - let len = Bytesections.seek_section ic section in - if len > 0 then match section with - | "CRCS" -> - p_section - "Imported Units" - "\t%s\t%s\n" - Digest.to_hex - (input_value ic : (string * Digest.t) list) - | "DLLS" -> - p_list - "Used Dlls" "\t%s\n" - (input_stringlist ic len) - | "DLPT" -> - p_list - "Additional Dll paths" - "\t%s\n" - (input_stringlist ic len) - | "PRIM" -> - let prims = (input_stringlist ic len) in - print "Uses unsafe features: "; - begin match prims with - [] -> print "no\n" - | l -> print "YES\n"; - p_list "Primitives declared in this module" - "\t%s\n" - l - end - | _ -> () - with Not_found | Failure _ | Invalid_argument _ -> () - ) - ["CRCS"; "DLLS"; "DLPT"; "PRIM"]; - close_in ic - with - | Sys_error msg -> - perr msg - | Invalid_argument("index out of bounds") -> - perr (Printf.sprintf "Usage: %s filename" Sys.argv.(0)) diff --git a/debian/ocamlbyteinfo/ocamlplugininfo.ml b/debian/ocamlbyteinfo/ocamlplugininfo.ml deleted file mode 100644 index e28800f3..00000000 --- a/debian/ocamlbyteinfo/ocamlplugininfo.ml +++ /dev/null @@ -1,109 +0,0 @@ -(***********************************************************************) -(* *) -(* Objective Caml *) -(* *) -(* Xavier Leroy, projet Gallium, INRIA Rocquencourt *) -(* *) -(* Copyright 2009 Institut National de Recherche en Informatique et *) -(* en Automatique. All rights reserved. This file is distributed *) -(* under the terms of the GNU Library General Public License, with *) -(* the special exception on linking described in file ../../LICENSE. *) -(* *) -(***********************************************************************) - -(* $Id$ *) - -(* Dumps a .cmxs file *) - -open Natdynlink -open Format - -let file = - try - Sys.argv.(1) - with _ -> begin - Printf.eprintf "Usage: %s file.cmxs\n" Sys.argv.(0); - exit(1) - end - -exception Abnormal_exit - -let error s e = - let eprint = Printf.eprintf in - let print_exc s = function - | End_of_file -> - eprint "%s: %s\n" s file - | Abnormal_exit -> - eprint "%s\n" s - | e -> eprint "%s\n" (Printexc.to_string e) - in - print_exc s e; - exit(1) - -let read_in command = - let cmd = Printf.sprintf command file in - let ic = Unix.open_process_in cmd in - try - let line = input_line ic in - begin match (Unix.close_process_in ic) with - | Unix.WEXITED 0 -> Str.split (Str.regexp "[ ]+") line - | Unix.WEXITED _ | Unix.WSIGNALED _ | Unix.WSTOPPED _ -> - error - (Printf.sprintf - "Command \"%s\" exited abnormally" - cmd - ) - Abnormal_exit - end - with e -> error "File is empty" e - -let get_offset adr_off adr_sec = - try - let adr = List.nth adr_off 4 in - let off = List.nth adr_off 5 in - let sec = List.hd adr_sec in - - let (!) x = Int64.of_string ("0x" ^ x) in - let (+) = Int64.add in - let (-) = Int64.sub in - - Int64.to_int (!off + !sec - !adr) - - with Failure _ | Invalid_argument _ -> - error - "Command output doesn't have the expected format" - Abnormal_exit - -let print_infos name crc defines cmi cmx = - let print_name_crc (name, crc) = - printf "@ %s (%s)" name (Digest.to_hex crc) - in - let pr_imports ppf imps = List.iter print_name_crc imps in - printf "Name: %s@." name; - printf "CRC of implementation: %s@." (Digest.to_hex crc); - printf "@[Globals defined:"; - List.iter (fun s -> printf "@ %s" s) defines; - printf "@]@."; - printf "@[Interfaces imported:%a@]@." pr_imports cmi; - printf "@[Implementations imported:%a@]@." pr_imports cmx - -let _ = - let adr_off = read_in "objdump -h %s | grep ' .data '" in - let adr_sec = read_in "objdump -T %s | grep ' caml_plugin_header$'" in - - let ic = open_in file in - let _ = seek_in ic (get_offset adr_off adr_sec) in - let header = (input_value ic : Natdynlink.dynheader) in - if header.magic <> Natdynlink.dyn_magic_number then - raise(Error(Natdynlink.Not_a_bytecode_file file)) - else begin - List.iter - (fun ui -> - print_infos - ui.name - ui.crc - ui.defines - ui.imports_cmi - ui.imports_cmx) - header.units - end diff --git a/debian/rules b/debian/rules index da7531d7..5d28c904 100755 --- a/debian/rules +++ b/debian/rules @@ -26,14 +26,7 @@ DISTDIR = $(PACKAGE)-$(OCAML_ABI) SRCTARBALL = $(PACKAGE)-source-$(OCAML_ABI).tar.bz2 # Environment variable for dh_ocaml -OCAMLBYTEINFO = boot/ocamlrun debian/ocamlbyteinfo/ocamlbyteinfo -OCAMLPLUGININFO = debian/ocamlbyteinfo/ocamlplugininfo -OCAMLDUMPAPPROX = boot/ocamlrun tools/dumpapprox -OCAMLOBJINFO = boot/ocamlrun tools/objinfo -export OCAMLBYTEINFO -export OCAMLPLUGININFO -export OCAMLDUMPAPPROX -export OCAMLOBJINFO +export OCAMLOBJINFO = OCAMLLIB=tools boot/ocamlrun tools/objinfo # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 @@ -117,23 +110,18 @@ build-stamp: config-stamp ifeq ($(BUILDCACHE),) $(MAKE) world $(MAKE) bootstrap - $(MAKE) -C tools objinfo dumpobj ifeq (,$(OCAML_OPT_ARCH)) # As of 3.11.0, manpages are made only in `make opt.opt' make -C ocamldoc manpages \ OCAMLDOC_RUN="../boot/ocamlrun -I ../otherlibs/unix -I ../otherlibs/str ./ocamldoc" - $(MAKE) -f debian/ocamlbyteinfo/Makefile ocamlbyteinfo else @echo "Building native compilers" $(MAKE) opt opt.opt - $(MAKE) -C tools dumpapprox - $(MAKE) -f debian/ocamlbyteinfo/Makefile touch opt-built-stamp endif else @echo "===> WARNING: $(BUILDCACHE) detected, compilation skipped! <===" rsync -a --exclude=debian --exclude=.git $(BUILDCACHE)/ . - rsync -a $(BUILDCACHE)/debian/ocamlbyteinfo/ debian/ocamlbyteinfo/ rm -f build-stamp install-stamp endif touch $@ @@ -159,7 +147,6 @@ endif fi # Remaining stuff -rm -Rf debian/$(SRCTARBALL) debian/examples - $(MAKE) -f debian/ocamlbyteinfo/Makefile clean .PHONY: override_dh_auto_install override_dh_auto_install: install-stamp @@ -194,16 +181,6 @@ endif # Install additional files not handled by dh_install # Beware: dh_install does not handle renamings, please pay attention cp otherlibs/labltk/README debian/ocaml/usr/share/doc/ocaml/README.labltk - for u in dumpobj objinfo dumpapprox; do \ - if [ -f tools/$$u ]; then \ - cp tools/$$u debian/ocaml-nox/usr/bin/ocaml$$u; \ - fi \ - done - for u in ocamlbyteinfo ocamlplugininfo; do \ - if [ -f debian/ocamlbyteinfo/$$u ]; then \ - cp debian/ocamlbyteinfo/$$u debian/ocaml-nox/usr/bin/$$u; \ - fi \ - done for mli in `find camlp4 -name '*.mli'` ; do \ cp --parents $$mli debian/camlp4$(OCAML_STDLIB_DIR); \ done