From e6e8ded39ff3c246b631a83976785e4754e92b70 Mon Sep 17 00:00:00 2001 From: Mihail Ivanchev Date: Mon, 29 Jan 2024 22:43:20 +0100 Subject: [PATCH] ocaml: update to 5.1.1 --- srcpkgs/camlp5/template | 20 -- srcpkgs/camlp5/update | 2 - srcpkgs/coq/template | 21 +- srcpkgs/dune/template | 2 +- srcpkgs/mathcomp/template | 2 +- srcpkgs/ocaml-findlib/template | 25 ++- .../patches/native-code-tests.patch | 30 +++ srcpkgs/ocaml-zarith/template | 9 +- srcpkgs/ocaml/patches/musl-ppc.patch | 11 - .../patches/ocaml-4.08.0-elfv2-ppc64.patch | 198 ------------------ .../ocaml/patches/ocaml-4.08.0-ppc-pie.patch | 42 ---- srcpkgs/ocaml/template | 21 +- srcpkgs/ocamlbuild/template | 6 +- 13 files changed, 79 insertions(+), 310 deletions(-) delete mode 100644 srcpkgs/camlp5/template delete mode 100644 srcpkgs/camlp5/update create mode 100644 srcpkgs/ocaml-zarith/patches/native-code-tests.patch delete mode 100644 srcpkgs/ocaml/patches/musl-ppc.patch delete mode 100644 srcpkgs/ocaml/patches/ocaml-4.08.0-elfv2-ppc64.patch delete mode 100644 srcpkgs/ocaml/patches/ocaml-4.08.0-ppc-pie.patch diff --git a/srcpkgs/camlp5/template b/srcpkgs/camlp5/template deleted file mode 100644 index 62223f806a0f0..0000000000000 --- a/srcpkgs/camlp5/template +++ /dev/null @@ -1,20 +0,0 @@ -# Template file for 'camlp5' -pkgname=camlp5 -version=8.00.04 -revision=1 -build_style=configure -configure_args="-mandir /usr/share/man" -hostmakedepends="ocaml perl ocaml-findlib" -makedepends="ocaml-camlp-streams" -short_desc="OCaml preprocessor and pretty-printer" -maintainer="Leah Neukirchen " -license="BSD-3-Clause" -homepage="https://camlp5.github.io/" -distfiles="https://github.com/${pkgname}/${pkgname}/archive/rel${version}.tar.gz" -checksum=bddbcb5c3c2d410c9a61c4dfb6e46e3bbe984d25ac68221a7a65c82a29956b1d -nocross=yes -nopie=yes - -post_install() { - vlicense LICENSE -} diff --git a/srcpkgs/camlp5/update b/srcpkgs/camlp5/update deleted file mode 100644 index d3695ee92307b..0000000000000 --- a/srcpkgs/camlp5/update +++ /dev/null @@ -1,2 +0,0 @@ -pattern='rel\K[\d\.]+(?=\.tar\.gz")' -ignore='71?' diff --git a/srcpkgs/coq/template b/srcpkgs/coq/template index 78d6caa780dda..e63c7b122ebed 100644 --- a/srcpkgs/coq/template +++ b/srcpkgs/coq/template @@ -1,33 +1,28 @@ # Template file for 'coq' pkgname=coq -version=8.18.0 +version=8.19.0 revision=1 -hostmakedepends="camlp5 dune ocaml ocaml-findlib ocaml-num ocaml-zarith" -depends="ocaml-findlib" +makedepends="dune ocaml ocaml-findlib ocaml-num ocaml-zarith" short_desc="Proof assistant written in OCaml" maintainer="Leah Neukirchen " license="LGPL-2.1-only" homepage="https://coq.inria.fr" distfiles="https://github.com/coq/coq/archive/V${version}.tar.gz" -checksum=00a18c796a6e154a1f1bac7e1aef9e14107e0295fa4e0a18f10cdea6fc2e840b +checksum=17e5c10fadcd3cda7509d822099a892fcd003485272b56a45abd30390f6a426f nopie=yes nocross=yes -case "$XBPS_TARGET_MACHINE" in - ppc64*) ;; - ppc*) broken="R_PPC_REL24 relocation out of range";; -esac - -post_patch() { - vsed -i -e 's/which/command -v/g' dev/tools/make_git_revision.sh +pre_build() { + /usr/bin/ocamlfind query -help } do_build() { make dunestrap - dune build --display=short -p coq-core,coq-stdlib + dune build --display=short -p coq-core,coq-stdlib,coq } + do_install() { - dune install coq-core coq-stdlib --prefix=/usr --destdir="$DESTDIR" \ + dune install coq-core coq-stdlib coq --prefix=/usr --destdir="$DESTDIR" \ --mandir=/usr/share/man --docdir=/usr/share/doc } diff --git a/srcpkgs/dune/template b/srcpkgs/dune/template index ca28c69b2fac7..7cc448744e85a 100644 --- a/srcpkgs/dune/template +++ b/srcpkgs/dune/template @@ -1,7 +1,7 @@ # Template file for 'dune' pkgname=dune version=3.13.0 -revision=1 +revision=2 makedepends="ocaml" depends="ocaml" short_desc="Composable build system for OCaml" diff --git a/srcpkgs/mathcomp/template b/srcpkgs/mathcomp/template index 9757979e5af1c..30e899ee22977 100644 --- a/srcpkgs/mathcomp/template +++ b/srcpkgs/mathcomp/template @@ -1,7 +1,7 @@ # Template file for 'mathcomp' pkgname=mathcomp version=1.17.0 -revision=3 +revision=4 build_wrksrc="mathcomp" build_style=gnu-makefile hostmakedepends="coq ocaml-findlib" diff --git a/srcpkgs/ocaml-findlib/template b/srcpkgs/ocaml-findlib/template index cd10d0a4bf4b3..d8aa43befa069 100644 --- a/srcpkgs/ocaml-findlib/template +++ b/srcpkgs/ocaml-findlib/template @@ -1,24 +1,35 @@ # Template file for 'ocaml-findlib' pkgname=ocaml-findlib -version=1.9.3 -revision=2 +version=1.9.6 +revision=1 build_style=configure -configure_args="-config /etc/findlib.conf -sitelib /usr/lib/ocaml -mandir /usr/share/man" -make_build_args="all opt" -makedepends="ncurses-devel ocaml ocamlbuild" +configure_args="-bindir /usr/bin -config /etc/findlib.conf -sitelib /usr/lib/ocaml -mandir /usr/share/man" +makedepends="ocaml ocamlbuild" short_desc="OCaml package manager" maintainer="Orphaned " license="MIT" homepage="http://projects.camlcity.org/projects/findlib.html" distfiles="http://download.camlcity.org/download/findlib-${version}.tar.gz" -checksum=c310fcb62838d9e50f0b6d6c5ceefcbe4fe056f72496950ae7d5c6cdaae2cc41 +checksum=2df996279ae16b606db5ff5879f93dbfade0898db9f1a3e82f7f845faa2930a2 nocross=yes nopie=yes disable_parallel_build=yes +case "$XBPS_TARGET_MACHINE" in + # native code platforms + x86_64*|aarch64*|riscv64*) make_build_args="all opt";; + *) make_build_target="all";; +esac + +post_install() { + ${DESTDIR}/usr/bin/ocamlfind query -help +} + do_install() { make prefix="$DESTDIR" install - vbin src/findlib/ocamlfind_opt + if [ -f src/findlib/ocamlfind_opt ]; then + vbin src/findlib/ocamlfind_opt + fi vlicense LICENSE rm -rf ${DESTDIR}/usr/lib/ocaml/ocamlbuild diff --git a/srcpkgs/ocaml-zarith/patches/native-code-tests.patch b/srcpkgs/ocaml-zarith/patches/native-code-tests.patch new file mode 100644 index 0000000000000..458cc5348a017 --- /dev/null +++ b/srcpkgs/ocaml-zarith/patches/native-code-tests.patch @@ -0,0 +1,30 @@ +diff --git a/tests/Makefile b/tests/Makefile +index 760294b..9b3f365 100644 +--- a/tests/Makefile ++++ b/tests/Makefile +@@ -10,14 +10,17 @@ NUMS_CMA=nums.cma + NUMS_CMXA=nums.cmxa + endif + ++ifeq ($(HASOCAMLOPT),yes) + test:: zq.exe + @echo "Testing zq (native)..." + @if ./zq.exe | cmp -s zq.output$(WORDSIZE) - ; then echo "zq: passed"; else echo "zq: FAILED"; exit 2; fi ++endif + + test:: zq.byt + @echo "Testing zq (bytecode)..." + @if ocamlrun -I .. ./zq.byt | cmp -s zq.output$(WORDSIZE) - ; then echo "zq: passed"; else echo "zq: FAILED"; exit 2; fi + ++ifeq ($(HASOCAMLOPT),yes) + ifeq ($(HAS_NUM),true) + test:: bi.exe + @echo "Testing bi..." +@@ -49,6 +52,7 @@ bench:: pi.exe + test:: tst_extract.exe + @echo "Testing extract..." + @if ./tst_extract.exe; then echo "tst_extract: passed"; else echo "tst_extract: FAILED"; exit 2; fi ++endif + + tofloat.exe: tofloat.ml setround.o ../zarith.cmxa + ocamlopt -I .. -ccopt "-L.." zarith.cmxa -o tofloat.exe \ diff --git a/srcpkgs/ocaml-zarith/template b/srcpkgs/ocaml-zarith/template index 8c5485e698181..dfef566ae3079 100644 --- a/srcpkgs/ocaml-zarith/template +++ b/srcpkgs/ocaml-zarith/template @@ -1,7 +1,7 @@ # Template file for 'ocaml-zarith' pkgname=ocaml-zarith -version=1.12 -revision=4 +version=1.13 +revision=1 build_style=configure make_check_target="tests" hostmakedepends="perl" @@ -12,13 +12,16 @@ maintainer="Leah Neukirchen " license="LGPL-2.0-only,OCaml-LGPL-linking-exception" homepage="https://github.com/ocaml/zarith" distfiles="https://github.com/ocaml/zarith/archive/release-${version}.tar.gz" -checksum=cc32563c3845c86d0f609c86d83bf8607ef12354863d31d3bffc0dacf1ed2881 +checksum=a5826d33fea0103ad6e66f92583d8e075fb77976de893ffdd73ada0409b3f83b nocross=yes disable_parallel_build=yes post_configure() { sed -i 's/INSTALLDIR=/&$(DESTDIR)/' Makefile } +pre_install() { + mkdir -p ${DESTDIR}/usr/lib/ocaml/stublibs +} post_install() { vcopy META usr/lib/ocaml/zarith } diff --git a/srcpkgs/ocaml/patches/musl-ppc.patch b/srcpkgs/ocaml/patches/musl-ppc.patch deleted file mode 100644 index bc2c10fd43ab8..0000000000000 --- a/srcpkgs/ocaml/patches/musl-ppc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/runtime/signals_osdep.h -+++ b/runtime/signals_osdep.h -@@ -309,6 +309,8 @@ - - #elif defined(TARGET_power) && defined(SYS_elf) - -+ #include -+ - #define DECLARE_SIGNAL_HANDLER(name) \ - static void name(int sig, struct sigcontext * context) - diff --git a/srcpkgs/ocaml/patches/ocaml-4.08.0-elfv2-ppc64.patch b/srcpkgs/ocaml/patches/ocaml-4.08.0-elfv2-ppc64.patch deleted file mode 100644 index 65a6cea92adf4..0000000000000 --- a/srcpkgs/ocaml/patches/ocaml-4.08.0-elfv2-ppc64.patch +++ /dev/null @@ -1,198 +0,0 @@ ---- ocaml-4.08.0/asmcomp/power/arch.ml -+++ ocaml-4.08.0/asmcomp/power/arch.ml -@@ -28,7 +28,7 @@ type abi = ELF32 | ELF64v1 | ELF64v2 - let abi = - match Config.model with - | "ppc" -> ELF32 -- | "ppc64" -> ELF64v1 -+ | "ppc64" -> ELF64v2 - | "ppc64le" -> ELF64v2 - | _ -> assert false - ---- ocaml-4.10.0/runtime/power.S -+++ ocaml-4.10.0/runtime/power.S -@@ -13,7 +13,7 @@ - /* */ - /**************************************************************************/ - --#if defined(MODEL_ppc64le) -+#if _CALL_ELF == 2 - .abiversion 2 - #endif - -@@ -52,8 +52,7 @@ - #define TRAP_PREVIOUS_OFFSET 4 - #define CALLBACK_LINK_SIZE 16 - #define CALLBACK_LINK_OFFSET 0 --#endif --#if defined(MODEL_ppc64) -+#elif _CALL_ELF == 1 - #define RESERVED_STACK 48 - #define PARAM_SAVE_AREA (8*8) - #define LR_SAVE 16 -@@ -64,8 +63,7 @@ - #define TRAP_PREVIOUS_OFFSET 64 - #define CALLBACK_LINK_SIZE 32 - #define CALLBACK_LINK_OFFSET 48 --#endif --#if defined(MODEL_ppc64le) -+#elif _CALL_ELF == 2 - #define RESERVED_STACK 32 - #define PARAM_SAVE_AREA 0 - #define LR_SAVE 16 -@@ -91,9 +89,8 @@ - #define ENDFUNCTION(name) \ - .size name, . - name - --#endif - --#if defined(MODEL_ppc64) -+#elif _CALL_ELF == 1 - #define FUNCTION(name) \ - .section ".opd","aw"; \ - .align 3; \ -@@ -107,9 +104,8 @@ - #define ENDFUNCTION(name) \ - .size name, . - .L.name - --#endif - --#if defined(MODEL_ppc64le) -+#elif _CALL_ELF == 2 - #define FUNCTION(name) \ - .section ".text"; \ - .globl name; \ -@@ -151,7 +147,7 @@ - - #define Caml_state(var) 8*domain_field_caml_##var(28) - --#if defined(MODEL_ppc64) -+#if _CALL_ELF == 1 - .section ".opd","aw" - #else - .section ".text" -@@ -332,14 +328,14 @@ - #if defined(MODEL_ppc) - mtctr C_CALL_FUN - bctrl --#elif defined(MODEL_ppc64) -+#elif _CALL_ELF == 1 - ld 0, 0(C_CALL_FUN) - mr C_CALL_TOC, 2 /* save current TOC in a callee-save register */ - mtctr 0 - ld 2, 8(C_CALL_FUN) - bctrl - mr 2, C_CALL_TOC /* restore current TOC */ --#elif defined(MODEL_ppc64le) -+#elif _CALL_ELF == 2 - mtctr C_CALL_FUN - mr 12, C_CALL_FUN - mr C_CALL_TOC, 2 /* save current TOC in a callee-save register */ -@@ -515,14 +511,14 @@ - #if defined(MODEL_ppc) - mtctr 12 - .L105: bctrl --#elif defined(MODEL_ppc64) -+#elif _CALL_ELF == 1 - ld 0, 0(12) - mtctr 0 - std 2, TOC_SAVE(1) - ld 2, 8(12) - .L105: bctrl - ld 2, TOC_SAVE(1) --#elif defined(MODEL_ppc64le) -+#elif _CALL_ELF == 2 - mtctr 12 - std 2, TOC_SAVE(1) - .L105: bctrl -@@ -641,7 +637,7 @@ - b .L102 - ENDFUNCTION(caml_callback3_asm) - --#if defined(MODEL_ppc64) -+#if _CALL_ELF == 1 - .section ".opd","aw" - #else - .section ".text" ---- ocaml-4.08.0/testsuite/tools/asmgen_power.S -+++ ocaml-4.08.0/testsuite/tools/asmgen_power.S -@@ -25,12 +25,10 @@ - #if defined(MODEL_ppc) - #define RESERVED_STACK 16 - #define LR_SAVE_AREA 4 --#endif --#if defined(MODEL_ppc64) -+#elif _CALL_ELF == 1 - #define RESERVED_STACK 48 - #define LR_SAVE_AREA 16 --#endif --#if defined(MODEL_ppc64le) -+#elif _CALL_ELF == 2 - #define RESERVED_STACK 32 - #define LR_SAVE_AREA 16 - #endif -@@ -44,9 +42,8 @@ - .type name, @function; \ - .align 2; \ - name: --#endif - --#if defined(MODEL_ppc64) -+#elif _CALL_ELF == 1 - #define FUNCTION(name) \ - .section ".opd","aw"; \ - .align 3; \ -@@ -56,9 +53,8 @@ - .text; \ - .align 2; \ - .L.name: --#endif - --#if defined(MODEL_ppc64le) -+#elif _CALL_ELF == 2 - #define FUNCTION(name) \ - .section ".text"; \ - .globl name; \ -@@ -118,11 +114,11 @@ FUNCTION(call_gen_code) - /* Get function pointer in CTR */ - #if defined(MODEL_ppc) - mtctr 3 --#elif defined(MODEL_ppc64) -+#elif _CALL_ELF == 1 - ld 0, 0(3) - mtctr 0 - ld 2, 8(3) --#elif defined(MODEL_ppc64le) -+#elif _CALL_ELF == 2 - mtctr 3 - mr 12, 3 - #else -@@ -184,11 +180,11 @@ FUNCTION(caml_c_call) - /* Jump to C function (address in r28) */ - #if defined(MODEL_ppc) - mtctr 28 --#elif defined(MODEL_ppc64) -+#elif _CALL_ELF == 1 - ld 0, 0(28) - mtctr 0 - ld 2, 8(28) --#elif defined(MODEL_ppc64le) -+#elif _CALL_ELF == 2 - mtctr 28 - mr 12, 28 - #else ---- ocaml-4.08.0/runtime/caml/stack.h -+++ ocaml-4.08.0/runtime/caml/stack.h -@@ -35,10 +35,10 @@ - #if defined(MODEL_ppc) - #define Saved_return_address(sp) *((intnat *)((sp) - 4)) - #define Callback_link(sp) ((struct caml_context *)((sp) + 16)) --#elif defined(MODEL_ppc64) -+#elif _CALL_ELF == 1 - #define Saved_return_address(sp) *((intnat *)((sp) + 16)) - #define Callback_link(sp) ((struct caml_context *)((sp) + (48 + 32))) --#elif defined(MODEL_ppc64le) -+#elif _CALL_ELF == 2 - #define Saved_return_address(sp) *((intnat *)((sp) + 16)) - #define Callback_link(sp) ((struct caml_context *)((sp) + (32 + 32))) - #else diff --git a/srcpkgs/ocaml/patches/ocaml-4.08.0-ppc-pie.patch b/srcpkgs/ocaml/patches/ocaml-4.08.0-ppc-pie.patch deleted file mode 100644 index a26f6a639e185..0000000000000 --- a/srcpkgs/ocaml/patches/ocaml-4.08.0-ppc-pie.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- ocaml-4.11.0/asmcomp/emitaux.ml -+++ ocaml-4.11.0/asmcomp/emitaux.ml -@@ -268,6 +268,7 @@ - match rdbg with - | [] -> assert false - | d :: rest -> emit rs d rest in -+ a.efa_align Arch.size_addr; - a.efa_word (List.length !frame_descriptors); - List.iter emit_frame !frame_descriptors; - Label_table.iter emit_debuginfo debuginfos; ---- ocaml-4.08.0/runtime/power.S -+++ ocaml-4.08.0/runtime/power.S -@@ -642,6 +642,7 @@ caml_system__code_end: - /* Frame table */ - - .section ".data" -+ .align wordalign - .globl caml_system__frametable - .type caml_system__frametable, @object - caml_system__frametable: ---- ocaml-4.14.0/configure.ac -+++ ocaml-4.14.0/configure.ac -@@ -1006,7 +1006,7 @@ AS_IF([test $arch != "none" && $arch64 ], - # e.g. Ubuntu >= 17.10 for i386, which uses the glibc dynamic loader. - - AS_CASE([$arch], -- [amd64|arm64|s390x|none], -+ [amd64|arm64|s390x|power|none], - # ocamlopt generates PIC code or doesn't generate code at all - [], - [AS_CASE([$host], ---- ocaml-4.14.0/configure -+++ ocaml-4.14.0/configure -@@ -13886,7 +13886,7 @@ - # e.g. Ubuntu >= 17.10 for i386, which uses the glibc dynamic loader. - - case $arch in #( -- amd64|arm64|s390x|none) : -+ amd64|arm64|s390x|power|none) : - # ocamlopt generates PIC code or doesn't generate code at all - ;; #( - *) : diff --git a/srcpkgs/ocaml/template b/srcpkgs/ocaml/template index f44b0b83941a2..db4e45cc77d1c 100644 --- a/srcpkgs/ocaml/template +++ b/srcpkgs/ocaml/template @@ -1,26 +1,25 @@ # Template file for 'ocaml' pkgname=ocaml -version=4.14.0 -revision=2 +version=5.1.0 +revision=1 build_style="gnu-configure" configure_args="--with-pic --libdir=/usr/lib/ocaml" -make_build_target="world.opt" -makedepends="ncurses-devel libX11-devel" -short_desc="Main implementation of the Caml language" +short_desc="Main implementation of the OCaml language" maintainer="Leah Neukirchen " license="QPL-1.0, LGPL-2.1-only" homepage="http://ocaml.org/" -distfiles="https://github.com/${pkgname}/${pkgname}/archive/${version}.tar.gz" -checksum=39f44260382f28d1054c5f9d8bf4753cb7ad64027da792f7938344544da155e8 +distfiles="https://github.com/ocaml/ocaml/archive/${version}.tar.gz" +checksum=43a3ac7aab7f8880f2bb6221317be55319b356e517622fdc28359fe943e6a450 nocross=yes -export ASPP="cc -c" - case "$XBPS_TARGET_MACHINE" in - # also just segfaults when compiled without PIE (BSS-PLT?) - ppc-musl) broken="/usr/bin/ocamlc: unsupported relocation type 6";; + # native code platforms + x86_64*|aarch64*|riscv64*) make_build_target="world.opt";; + *) make_build_target="world";; esac +export ASPP="cc -c" + post_install() { vlicense LICENSE } diff --git a/srcpkgs/ocamlbuild/template b/srcpkgs/ocamlbuild/template index 188b9b23dc030..3aa82504b3656 100644 --- a/srcpkgs/ocamlbuild/template +++ b/srcpkgs/ocamlbuild/template @@ -1,7 +1,7 @@ # Template file for 'ocamlbuild' pkgname=ocamlbuild version=0.14.2 -revision=1 +revision=2 build_style=gnu-makefile hostmakedepends="ocaml" short_desc="OCaml build tool" @@ -13,3 +13,7 @@ checksum=62d2dab6037794c702a83ac584a7066d018cf1645370d1f3d5764c2b458791b1 nocross=yes export CHECK_IF_PREINSTALLED=false + +pre_build() { + command -v ocamlc.opt >/dev/null || export OCAML_NATIVE=false +}