Hello community,

here is the log from the commit of package ocaml for openSUSE:Leap:15.2 checked 
in at 2020-03-13 10:55:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/ocaml (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.ocaml.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ocaml"

Fri Mar 13 10:55:44 2020 rev:23 rq:783330 version:4.05.0

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/ocaml/ocaml.changes    2020-01-15 
15:34:18.386896844 +0100
+++ /work/SRC/openSUSE:Leap:15.2/.ocaml.new.3160/ocaml.changes  2020-03-13 
10:55:47.308366800 +0100
@@ -1,0 +2,51 @@
+Thu Feb 20 20:20:20 UTC 2020 - [email protected]
+
+- Require current ocaml-rpm-macros
+- Update options for ocaml() Provides/Requires to specify also
+  OCAMLLIB, which is required for ocamlobjinfo and cmx (bsc#1154874)
+- Remove disabling of _lto_cflags, RPM_OPT_FLAGS are not used
+- Use ocaml_standard_library macro instead of _libdir/ocaml
+- Actually make use of 
ocaml-configure-Allow-user-defined-C-compiler-flags.patch
+  and use '-Werror=implicit-function-declaration -Werror=return-type'
+  in built-in CFLAGS for libraries and applications.
+- Add ocaml-assert.patch, backport from 4.06, found by new CFLAGS
+- Add a few desirable patches from 4.05 branch:
+  ocaml-Fixes-for-out-of-range-Ialloc.patch
+  ocaml-In-caml_executable_name-wrong-test-on-the-return-cod.patch
+  ocaml-MPR-7591-frametable-not-8-aligned-on-x86-64-port.patch
+  ocaml-byterun-do-not-alias-function-arguments-to-sigprocma.patch
+- Remove backup files from ocaml-fix_aarch64_build.patch
+- Record absolute path to gcc, cmdline is part of ocamlx() hash
+- Package a few more directories which belong only to this variant of OCaml
+
+-------------------------------------------------------------------
+Mon Nov 25 12:34:56 UTC 2019 - [email protected]
+
+- move topdirs.cmi/cmt/cmti from runtime to compiler-libs-devel
+  so that runtime does not depend on a devel pkg (bsc#1156934)
+- split place for META files, some go to ocaml, some to compiler-libs-devel
+- move ncurses-devel requires to ocaml, it is used by BYTECCLIBS
+- initialize bcond ocaml_make_testsuite
+
+-------------------------------------------------------------------
+Fri Nov  1 12:34:56 UTC 2019 - [email protected]
+
+- Use ocaml-rpm-macros to decide about native or bytecode build
+- Move ocaml-findlib.rpm.prov_req.attr.sh to ocaml-rpm-macros
+- Provide META files for ocamlfind() provides, which are now
+  created via ocaml-rpm-macros
+- Provide baseversion in ocaml(compiler)/ocaml(ocaml.opt)
+- Preserve fomit-frame-pointer again on ix86
+- Remove usage of USE_INTERP_RESULT, nothing seems to check for it
+- Use results from pkgconfig(x11) for CFLAGS/LDFLAGS
+- Use make_build/make_install, no parallel build yet
+- Remove BYTECCRPATH, NATIVECCRPATH and MKSHAREDLIBRPATH
+- Remove dead code which checked for libasmrun_pic.a (#7595)
+- Remove code that populated compiler-libs
+
+-------------------------------------------------------------------
+Mon Sep 30 12:34:56 UTC 2019 - [email protected]
+
+- moved ocaml-rpm-macros from ocaml.spec to separate pkg
+
+-------------------------------------------------------------------
@@ -9,0 +61,18 @@
+
+-------------------------------------------------------------------
+Fri Aug 30 14:37:07 UTC 2019 - Stefan BrĂ¼ns <[email protected]>
+
+- Use separate package for emacs mode files, following upstreams
+  move of the files to a separate repository
+  (https://github.com/ocaml/ocaml/pull/2182). This reduces the
+  build dependency chain of OCaml significantly, and in turn of
+  every package depending on OCaml.
+- Move caml-mode specific patches to new package:
+  * ocaml-3.00-camldebug_el.patch
+  * ocaml-3.04-ocamltags--no-site-start.patch
+  * ocaml-3.09-emacs_localcompile.patch
+
+-------------------------------------------------------------------
+Thu Aug 22 11:16:03 UTC 2019 - [email protected]
+
+- Move /etc/rpm/macros.ocaml to /usr/lib/rpm/macros.d/macros.ocaml

Old:
----
  ocaml-3.00-camldebug_el.patch
  ocaml-3.04-ocamltags--no-site-start.patch
  ocaml-3.09-emacs_localcompile.patch
  ocaml-findlib.rpm.prov_req.attr.sh

New:
----
  ocaml-Fixes-for-out-of-range-Ialloc.patch
  ocaml-In-caml_executable_name-wrong-test-on-the-return-cod.patch
  ocaml-MPR-7591-frametable-not-8-aligned-on-x86-64-port.patch
  ocaml-assert.patch
  ocaml-byterun-do-not-alias-function-arguments-to-sigprocma.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ocaml.spec ++++++
++++ 770 lines (skipped)
++++ between /work/SRC/openSUSE:Leap:15.2/ocaml/ocaml.spec
++++ and /work/SRC/openSUSE:Leap:15.2/.ocaml.new.3160/ocaml.spec

++++++ ocaml-Fixes-for-out-of-range-Ialloc.patch ++++++
>From 664f0763d37f85e2ec53d6394251b5948dcfa727 Mon Sep 17 00:00:00 2001
From: Mark Shinwell <[email protected]>
Date: Mon, 31 Jul 2017 14:37:47 +0100
Subject: Fixes for out-of-range Ialloc

Cherry-pick of GPR#1271 which was merged on trunk.

Fixes for Ialloc instructions allocating more than Max_young_wosize words in 
the minor heap

Out-of-range Ialloc instructions cause various problems, see in particular GPR 
#1250.
---
 Changes                                     |   5 +
 asmcomp/cmmgen.ml                           |  38 ++--
 asmcomp/selectgen.ml                        |   3 +-
 testsuite/tests/basic-more/pr1271.ml        | 288 ++++++++++++++++++++++++++++
 testsuite/tests/basic-more/pr1271.reference |   2 +
 5 files changed, 317 insertions(+), 19 deletions(-)
 create mode 100644 testsuite/tests/basic-more/pr1271.ml
 create mode 100644 testsuite/tests/basic-more/pr1271.reference

diff --git a/asmcomp/cmmgen.ml b/asmcomp/cmmgen.ml
index 4ac4b40c6..2120d3985 100644
--- a/asmcomp/cmmgen.ml
+++ b/asmcomp/cmmgen.ml
@@ -1641,29 +1641,31 @@ let rec transl env e =
       List.iter (fun f -> Queue.add f functions) fundecls;
       Cconst_symbol lbl
   | Uclosure(fundecls, clos_vars) ->
-      let block_size =
-        fundecls_size fundecls + List.length clos_vars in
       let rec transl_fundecls pos = function
           [] ->
             List.map (transl env) clos_vars
         | f :: rem ->
             Queue.add f functions;
-            let header =
-              if pos = 0
-              then alloc_closure_header block_size f.dbg
-              else alloc_infix_header pos f.dbg in
-            if f.arity = 1 || f.arity = 0 then
-              header ::
-              Cconst_symbol f.label ::
-              int_const f.arity ::
-              transl_fundecls (pos + 3) rem
-            else
-              header ::
-              Cconst_symbol(curry_function f.arity) ::
-              int_const f.arity ::
-              Cconst_symbol f.label ::
-              transl_fundecls (pos + 4) rem in
-      Cop(Calloc, transl_fundecls 0 fundecls, Debuginfo.none)
+            let without_header =
+              if f.arity = 1 || f.arity = 0 then
+                Cconst_symbol f.label ::
+                int_const f.arity ::
+                transl_fundecls (pos + 3) rem
+              else
+                Cconst_symbol(curry_function f.arity) ::
+                int_const f.arity ::
+                Cconst_symbol f.label ::
+                transl_fundecls (pos + 4) rem
+            in
+            if pos = 0 then without_header
+            else (alloc_infix_header pos f.dbg) :: without_header
+      in
+      let dbg =
+        match fundecls with
+        | [] -> Debuginfo.none
+        | fundecl::_ -> fundecl.dbg
+      in
+      make_alloc dbg Obj.closure_tag (transl_fundecls 0 fundecls)
   | Uoffset(arg, offset) ->
       (* produces a valid Caml value, pointing just after an infix header *)
       let ptr = transl env arg in
diff --git a/asmcomp/selectgen.ml b/asmcomp/selectgen.ml
index 7cd8cd5c3..1158fc0d0 100644
--- a/asmcomp/selectgen.ml
+++ b/asmcomp/selectgen.ml
@@ -738,7 +738,8 @@ method emit_expr (env:environment) exp =
                   loc_arg (Proc.loc_external_results rd) in
               self#insert_move_results loc_res rd stack_ofs;
               Some rd
-          | Ialloc { words = _; spacetime_index; label_after_call_gc; } ->
+          | Ialloc { words; spacetime_index; label_after_call_gc; } ->
+              assert (words <= Config.max_young_wosize);
               let rd = self#regs_for typ_val in
               let size = size_expr env (Ctuple new_args) in
               let op =
++++++ ocaml-In-caml_executable_name-wrong-test-on-the-return-cod.patch ++++++
>From 44c67eb438b5dabbc4caa130303d1bcda6488b00 Mon Sep 17 00:00:00 2001
From: Xavier Leroy <[email protected]>
Date: Fri, 25 Aug 2017 17:56:45 +0200
Subject: In caml_executable_name(), wrong test on the return code of
 readlink()

Follow-up to PR#795 "More robust determination of full path to current 
executable"
---
 byterun/unix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/byterun/unix.c b/byterun/unix.c
index a5c5ed457..9aa89c96f 100644
--- a/byterun/unix.c
+++ b/byterun/unix.c
@@ -374,7 +374,7 @@ char * caml_executable_name(void)
     name = caml_stat_alloc(namelen + 1);
     retcode = readlink("/proc/self/exe", name, namelen);
     if (retcode == -1) { caml_stat_free(name); return NULL; }
-    if (retcode <= namelen) break;
+    if (retcode < namelen) break;
     caml_stat_free(name);
     if (namelen >= 1024*1024) return NULL; /* avoid runaway and overflow */
     namelen *= 2;
++++++ ocaml-MPR-7591-frametable-not-8-aligned-on-x86-64-port.patch ++++++
>From 22dbcdfb921b19d171134de90984805622877e55 Mon Sep 17 00:00:00 2001
From: Xavier Leroy <[email protected]>
Date: Sat, 22 Jul 2017 16:32:23 -0400
Subject: MPR#7591: frametable not 8-aligned on x86-64 port

Cherry-pick of 7077b60 from trunk.
---
 Changes                | 7 +++++++
 asmcomp/amd64/emit.mlp | 3 ++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp
index c3f8692a8..75a785f74 100644
--- a/asmcomp/amd64/emit.mlp
+++ b/asmcomp/amd64/emit.mlp
@@ -1065,8 +1065,9 @@ let end_assembly() =
 
   D.data ();
   emit_global_label "data_end";
-  D.long (const 0);
+  D.qword (const 0);
 
+  D.align 8;                            (* PR#7591 *)
   emit_global_label "frametable";
 
   let setcnt = ref 0 in
++++++ ocaml-assert.patch ++++++
part of commit adcb4497968dbdc1b0db97998488ad20c02fe225 from 4.06
--- a/byterun/caml/minor_gc.h
+++ b/byterun/caml/minor_gc.h
@@ -99,7 +99,7 @@ static inline void add_to_ephe_ref_table
   ephe_ref = tbl->ptr++;
   ephe_ref->ephe = ar;
   ephe_ref->offset = offset;
-  Assert(ephe_ref->offset < Wosize_val(ephe_ref->ephe));
+  CAMLassert(ephe_ref->offset < Wosize_val(ephe_ref->ephe));
 }
 
 static inline void add_to_custom_table (struct caml_custom_table *tbl, value v,
++++++ ocaml-byterun-do-not-alias-function-arguments-to-sigprocma.patch ++++++
>From b35e3d48bc392f764e1edc99ce6a1b1a68358ed4 Mon Sep 17 00:00:00 2001
From: Anil Madhavapeddy <[email protected]>
Date: Wed, 2 May 2018 09:44:10 +0100
Subject: byterun: do not alias function arguments to sigprocmask

Recent gcc versions (e.g. as found in Fedora 28) check that
restrict-qualified parameters do not alias each other in
function calls. One such example that triggers a compile
error is sigprocmask in the bytecode runtime.

The error this changeset fixes is:

```
signals.c: In function 'caml_execute_signal':
signals.c:152:33: error: passing argument 3 to restrict-qualified parameter 
aliases with argument 2 [-Werror=restrict]
   sigprocmask(SIG_BLOCK, &sigs, &sigs);
```

(cherry picked from commit ebcc2f8594138a5ba6b020083fc42d57a914433f)
---
 Changes           | 2 ++
 byterun/signals.c | 8 ++++----
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/byterun/signals.c b/byterun/signals.c
index 6f1811f26..3dc36e494 100644
--- a/byterun/signals.c
+++ b/byterun/signals.c
@@ -144,12 +144,12 @@ void caml_execute_signal(int signal_number, int 
in_signal_handler)
   void* saved_spacetime_trie_node_ptr;
 #endif
 #ifdef POSIX_SIGNALS
-  sigset_t sigs;
+  sigset_t nsigs, sigs;
   /* Block the signal before executing the handler, and record in sigs
      the original signal mask */
-  sigemptyset(&sigs);
-  sigaddset(&sigs, signal_number);
-  sigprocmask(SIG_BLOCK, &sigs, &sigs);
+  sigemptyset(&nsigs);
+  sigaddset(&nsigs, signal_number);
+  sigprocmask(SIG_BLOCK, &nsigs, &sigs);
 #endif
 #if defined(NATIVE_CODE) && defined(WITH_SPACETIME)
   /* We record the signal handler's execution separately, in the same

Reply via email to