ocaml: update to 5.2.0

This commit is contained in:
مهدي شينون (Mehdi Chinoune) 2024-06-02 21:56:56 +01:00
parent e234d29055
commit 507491a8e7
3 changed files with 7 additions and 118 deletions

View File

@ -1,32 +0,0 @@
--- a/configure
+++ b/configure
@@ -13704,7 +13704,7 @@
case $ocaml_cv_cc_vendor in #(
gcc-[01234]-*) :
as_fn_error $? "This version of MinGW-w64 GCC is too old. Please use GCC version 5 or above." "$LINENO" 5 ;; #(
- gcc-*) :
+ gcc-*|clang-*) :
internal_cflags="-Wno-unused $cc_warnings \
-fexcess-precision=standard"
# TODO: see whether the code can be fixed to avoid -Wno-unused
--- a/configure.ac
+++ b/configure.ac
@@ -721,7 +721,7 @@
[gcc-[[01234]]-*],
[AC_MSG_ERROR(m4_normalize([This version of MinGW-w64 GCC is too old.
Please use GCC version 5 or above.]))],
- [gcc-*],
+ [gcc-*|clang-*],
[internal_cflags="-Wno-unused $cc_warnings \
-fexcess-precision=standard"
# TODO: see whether the code can be fixed to avoid -Wno-unused
--- a/Makefile.config.in
+++ b/Makefile.config.in
@@ -72,7 +72,6 @@
LIBTOOL = $(TOP_BUILDDIR)/libtool
### Which C compiler to use
-TOOLPREF=@ac_tool_prefix@
CC=@CC@
CC_HAS_DEBUG_PREFIX_MAP=@cc_has_debug_prefix_map@

View File

@ -1,29 +0,0 @@
--- a/flexdll/Makefile
+++ b/flexdll/Makefile
@@ -22,11 +22,11 @@
COMPAT_VERSION:=$(subst $(SPACE),,$(firstword $(COMPAT_VERSION))$(foreach i,$(wordlist 2,$(words $(COMPAT_VERSION)),$(COMPAT_VERSION)),$(if $(filter 0 1 2 3 4 5 6 7 8 9,$(i)),0,)$(i)))
endif
-MINGW_PREFIX = i686-w64-mingw32-
-MINCC = $(MINGW_PREFIX)gcc
+MINGW_PREFIX =
+MINCC = $(MINGW_PREFIX)cc
-MINGW64_PREFIX = x86_64-w64-mingw32-
-MIN64CC = $(MINGW64_PREFIX)gcc
+MINGW64_PREFIX =
+MIN64CC = $(MINGW64_PREFIX)cc
CYGWIN_PREFIX = i686-pc-cygwin-
CYGCC = $(CYGWIN_PREFIX)gcc
--- a/flexdll/reloc.ml
+++ b/flexdll/reloc.ml
@@ -1246,7 +1246,7 @@
let setup_toolchain () =
let mingw_libs pre =
- gcc := pre ^ "gcc";
+ gcc := pre ^ "cc";
objdump := pre ^ "objdump";
let rec get_lib_search_dirs input =
match input with

View File

@ -7,7 +7,7 @@ pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}"
"${MINGW_PACKAGE_PREFIX}-${_realname}-compiler-libs"
$( (( _bootstrap_flexdll )) && echo "${MINGW_PACKAGE_PREFIX}-flexdll-bootstrap"))
pkgver=5.1.1
pkgver=5.2.0
pkgrel=1
_flexdll_ver=0.43
pkgdesc="An industrial strength programming language supporting functional, imperative and object-oriented styles (mingw-w64)"
@ -23,17 +23,14 @@ license=('spdx:LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception')
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-autotools"
"${MINGW_PACKAGE_PREFIX}-ncurses"
"${MINGW_PACKAGE_PREFIX}-zstd"
$( (( _bootstrap_flexdll )) || echo "${MINGW_PACKAGE_PREFIX}-flexdll"))
source=("https://caml.inria.fr/distrib/ocaml-${pkgver%.*}/${_realname}-${pkgver}.tar.xz"
"https://github.com/ocaml/flexdll/archive/${_flexdll_ver}/flexdll-${_flexdll_ver}.tar.gz"
"0001-fix-misc-h.patch"
"0002-support-clang.patch"
"0003-support-clang-flexdll.patch")
sha256sums=('8d7e98bfda3be940602b7a39dcf912a2d2fdeab791ed40e62a09a4cd67ddeef1'
"0001-fix-misc-h.patch")
sha256sums=('2f4bf479f51479f9bf8c7f1694a6ea7336bbf774f4ad6da6b59d1ad4939dd8a7'
'10e171ab7d2f8b2f238b53bb9944d4b26686f5703fbc1c059532791bc91be949'
'24d20cc5fc9c0f70e5c54c2378f0be612ae474425dd5918b321469fb887eb358'
'c4b452cb6d07be87d8aaec27aba3d3521e50d428f85b88eaed8d5890210c010a'
'e23aa7837df3db8d9a42cf4b399ed6faa3a816b530f2fcf66e0439b3ccb40027')
'24d20cc5fc9c0f70e5c54c2378f0be612ae474425dd5918b321469fb887eb358')
install=ocaml-${MSYSTEM}.install
apply_patch_with_msg() {
@ -50,49 +47,10 @@ prepare() {
#autoreconf -fiv
apply_patch_with_msg \
0001-fix-misc-h.patch \
0002-support-clang.patch
export _cc_ver=$(${CC} -dumpversion)
if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then
export _cc_lib_dir=${MINGW_PREFIX}/lib/clang/${_cc_ver}/windows/
else
export _cc_lib_dir=${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${_cc_ver}/
fi
#Necessary for ocaml to find ws2_32
export SEDTEXT="s: FLEXLINK_CMD=\"../boot/ocamlruns\$(EXE) ../boot/flexlink.byte\$(EXE)\": FLEXLINK_CMD=\"../boot/ocamlruns\$(EXE) ../boot/flexlink.byte\$(EXE) -L${MINGW_PREFIX}/lib -L${_cc_lib_dir}\":g"
sed -i "${SEDTEXT}" Makefile
SEDTEXT="s:CAMLOPT=\$(OCAMLRUN) ./ocamlopt\$(EXE) -g -nostdlib -I stdlib -I otherlibs/dynlink:CAMLOPT=\$(OCAMLRUN) ./ocamlopt\$(EXE) -g -nostdlib -I stdlib -I otherlibs/dynlink -cclib \"-L${MINGW_PREFIX}/lib -L${_cc_lib_dir}\":g"
sed -i "${SEDTEXT}" Makefile
SEDTEXT="s:CAMLOPT_CMD = \$(FLEXLINK_ENV) \$(CAMLOPT):CAMLOPT_CMD = \$(FLEXLINK_ENV) \$(CAMLOPT) -cclib \"-L${MINGW_PREFIX}/lib -L${_cc_lib_dir}\":g"
sed -i "${SEDTEXT}" Makefile.common
SEDTEXT="s:OCAMLOPT_CMD = \$(FLEXLINK_ENV) \$(OCAMLOPT):OCAMLOPT_CMD = \$(FLEXLINK_ENV) \$(OCAMLOPT) -cclib \"-L${MINGW_PREFIX}/lib -L${_cc_lib_dir}\":g"
sed -i "${SEDTEXT}" Makefile.common
SEDTEXT="s:WIN32_LIBS=\$(call SYSLIB,ws2_32) \$(call SYSLIB,advapi32):WIN32_LIBS=\$(call SYSLIB,ws2_32) \$(call SYSLIB,advapi32) -L${MINGW_PREFIX}/lib -L${_cc_lib_dir}:g"
sed -i "${SEDTEXT}" otherlibs/unix/Makefile
SEDTEXT="s:MKLIB=\$(OCAMLRUN) \$(ROOTDIR)/tools/ocamlmklib\$(EXE):MKLIB=\$(OCAMLRUN) \$(ROOTDIR)/tools/ocamlmklib\$(EXE) -L${MINGW_PREFIX}/lib -L${_cc_lib_dir}:g"
sed -i "${SEDTEXT}" otherlibs/systhreads/Makefile
SEDTEXT="s:LDOPTS ?=:LDOPTS = -L${MINGW_PREFIX}/lib -L${_cc_lib_dir}:g"
sed -i "${SEDTEXT}" otherlibs/Makefile.otherlibs.common
SEDTEXT="s:-safe-string -strict-sequence -strict-formats -bin-annot -principal:-safe-string -strict-sequence -strict-formats -bin-annot -principal -cclib \"-L${MINGW_PREFIX}/lib -L${_cc_lib_dir}\":g"
sed -i "${SEDTEXT}" ocamldoc/Makefile
0001-fix-misc-h.patch
if (( _bootstrap_flexdll )); then
cp -r "${srcdir}/flexdll-${_flexdll_ver}/"* flexdll
apply_patch_with_msg \
0003-support-clang-flexdll.patch
SEDTEXT="s:LINKFLAGS = -cclib \"-link \$(RES)\":LINKFLAGS = -cclib \"-link \$(RES) -L${MINGW_PREFIX}/lib -L${_cc_lib_dir}\":g"
sed -i "${SEDTEXT}" flexdll/Makefile
fi
}
@ -100,8 +58,6 @@ build() {
[[ -d "${srcdir}"/build-${MSYSTEM} ]] && rm -rf "${srcdir}"/build-${MSYSTEM}
cp -r "${srcdir}/${_realname}-${pkgver}" "${srcdir}"/build-${MSYSTEM} && cd "${srcdir}"/build-${MSYSTEM}
export LDFLAGS="-L${MINGW_PREFIX}/lib -L${_cc_lib_dir}"
declare -a _extra_config
if (( _bootstrap_flexdll )); then
_extra_config+=("--with-flexdll")
@ -109,20 +65,14 @@ build() {
./configure \
--prefix=${MINGW_PREFIX} \
--host=${MINGW_CHOST} \
--mandir=${MINGW_PREFIX}/share/man \
"${_extra_config[@]}"
SEDTEXT="s:BYTECCLIBS=-lws2_32 -lversion:BYTECCLIBS=-L${MINGW_PREFIX}/lib -L${_cc_lib_dir} -lws2_32 -lversion:g"
sed -i "${SEDTEXT}" Makefile.config
SEDTEXT="s:PTHREAD_LINK=:PTHREAD_LINK=-L${MINGW_PREFIX}/lib -L${_cc_lib_dir}:g"
sed -i "${SEDTEXT}" Makefile.config
make world.opt
}
package_ocaml() {
depends=("${MINGW_PACKAGE_PREFIX}-zstd")
optdepends=("${MINGW_PACKAGE_PREFIX}-ncurses: advanced ncurses features"
"${MINGW_PACKAGE_PREFIX}-tk: advanced tk features")