[Pkg-ocaml-maint-commits] [SCM] OCaml packaging branch, master, updated. debian/3.12.1-3-3-g560bdc6
Stephane Glondu
steph at glondu.net
Tue Jun 26 20:02:07 UTC 2012
The following commit has been merged in the master branch:
commit b3ebb2f24f8af804d4eedde62af5b296cd6808d0
Author: Stephane Glondu <steph at glondu.net>
Date: Tue Jun 26 07:25:56 2012 +0200
Make the Debian-specific behaviour of -custom opt-in (Closes: #678577)
diff --git a/debian/README.Debian b/debian/README.Debian
index 872a07a..7a63ebc 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -6,9 +6,10 @@ be stripped (more precisely, the bytecode, which is not part of the
ELF data, is removed by strip). This Debian version is patched (and
the patch has been rejected by upstream [1], but is available
separately in debian/patches) so that the bytecode is embedded in the
-executable and can be stripped. The original behaviour is restored if
-the OCAML_COMPAT environment variable contains the letter “c”.
+executable and can be stripped. This new behaviour is optional, and
+can be enabled by setting the OCAML_CUSTOM_EMBED environment variable
+to “y”.
[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=49;bug=256900
- -- Stéphane Glondu <glondu at debian.org>, Tue, 24 May 2011 12:02:51 +0200
+ -- Stéphane Glondu <glondu at debian.org>, Tue, 26 Jun 2012 07:27:05 +0200
diff --git a/debian/patches/0011-Embed-bytecode-in-C-object-when-using-custom.patch b/debian/patches/0011-Embed-bytecode-in-C-object-when-using-custom.patch
index 3f17f1d..ccb5635 100644
--- a/debian/patches/0011-Embed-bytecode-in-C-object-when-using-custom.patch
+++ b/debian/patches/0011-Embed-bytecode-in-C-object-when-using-custom.patch
@@ -3,19 +3,20 @@ Date: Sun, 17 Aug 2008 17:10:03 +0200
Subject: Embed bytecode in C object when using -custom
This patch fixes non-strippability of bytecode executables linked with
-custom runtime. Having "c" in OCAML_COMPAT environment variable
-restores the original behaviour.
+custom runtime. The new behaviour is enabled when OCAML_CUSTOM_EMBED
+is set to "y", or when DEB_HOST_ARCH is non-empty.
Forwarded: not-needed
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=256900
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=627761
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=678577
Signed-off-by: Stephane Glondu <steph at glondu.net>
---
- bytecomp/bytelink.ml | 36 ++++++++++++++++++++++++++++++++----
- 1 files changed, 32 insertions(+), 4 deletions(-)
+ bytecomp/bytelink.ml | 42 ++++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 38 insertions(+), 4 deletions(-)
diff --git a/bytecomp/bytelink.ml b/bytecomp/bytelink.ml
-index 9d62fc6..a3aee28 100644
+index 9d62fc6..c6d558f 100644
--- a/bytecomp/bytelink.ml
+++ b/bytecomp/bytelink.ml
@@ -415,7 +415,7 @@ let mlvalues_primitives = [
@@ -57,23 +58,29 @@ index 9d62fc6..a3aee28 100644
\n#ifdef __cplusplus\
\n}\
\n#endif\n";
-@@ -501,6 +514,11 @@ let fix_exec_name name =
+@@ -501,6 +514,17 @@ let fix_exec_name name =
if String.contains name '.' then name else name ^ ".exe"
| _ -> name
-+(* Legacy custom behaviour (Debian-specific) *)
++(* Debian-specific -custom behaviour:
++ - if DEB_HOST_ARCH is non-empty, it is activated by default
++ - can be enabled/disabled by setting OCAML_CUSTOM_EMBED to y/n
++*)
+
-+let legacy_custom =
-+ try String.contains (Sys.getenv "OCAML_COMPAT") 'c' with Not_found -> false
++let custom_embed =
++ try Sys.getenv "OCAML_CUSTOM_EMBED" = "y"
++ with Not_found ->
++ try Sys.getenv "DEB_HOST_ARCH" <> ""
++ with Not_found -> false
+
(* Main entry point (build a custom runtime if needed) *)
let link objfiles output_name =
-@@ -514,6 +532,16 @@ let link objfiles output_name =
+@@ -514,6 +538,16 @@ let link objfiles output_name =
Clflags.dllibs := !lib_dllibs @ !Clflags.dllibs; (* put user's DLLs first *)
if not !Clflags.custom_runtime then
link_bytecode tolink output_name true
-+ else if not legacy_custom && not !Clflags.output_c_object && not !Clflags.make_runtime then
++ else if custom_embed && not !Clflags.output_c_object && not !Clflags.make_runtime then
+ let c_file = Filename.temp_file "camlobj" ".c" in
+ try
+ link_bytecode_as_c tolink c_file true;
@@ -86,7 +93,7 @@ index 9d62fc6..a3aee28 100644
else if not !Clflags.output_c_object then begin
let bytecode_name = Filename.temp_file "camlcode" "" in
let prim_name = Filename.temp_file "camlprim" ".c" in
-@@ -552,7 +580,7 @@ let link objfiles output_name =
+@@ -552,7 +586,7 @@ let link objfiles output_name =
if Sys.file_exists c_file then raise(Error(File_exists c_file));
let temps = ref [] in
try
--
OCaml packaging
More information about the Pkg-ocaml-maint-commits
mailing list