package/swipl: bump version to 10.0.2

For change log since version 9.2.9, see:
https://www.swi-prolog.org/ChangeLog?branch=stable&from=9.2.9&to=10.0.2

This new version can no longer build in the source tree. Therefore,
this commit adds SWIPL_SUPPORTS_IN_SOURCE_BUILD = NO. Also, the target
swipl needs the host-swipl binary. It is searched by the cmake script.
This commit changes SWIPL_NATIVE_FRIEND variable to point to the
out-of-source build directory.

swipl has now a stricter ABI check of its prolog library bytecode
compiled files, compared to its builtin expected ABI:
https://github.com/SWI-Prolog/swipl/blob/V10.0.2/src/pl-init.c#L263

When cross-compiling, swipl is built on one side, and library files
are built with the host-swipl. The ABI string of the host-swipl and
target swipl must match. If not matching, swipl fail to start at
runtime with the error:

    FATAL: could not find SWI-Prolog home
      Tried source: compiled in
        Found /usr/lib/swipl: ABI mismatch

This ABI string includes a signature of builtin modules. See:
https://github.com/SWI-Prolog/swipl/blob/V10.0.2/src/pl-init.c#L1653
https://github.com/SWI-Prolog/swipl/blob/V10.0.2/src/pl-ext.c#L330

The swipl ncurses support is made with one those builtin module.
ncurses development files are likely present on host and likely not
enabled or needed on target, hence producing a different ABI
signature. For that reason, this commit disables ncurses on both the
host and target.

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Julien Olivain
2026-05-09 22:46:58 +02:00
committed by Thomas Petazzoni
parent 7b97765046
commit 9233cf9593
2 changed files with 7 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
# From https://www.swi-prolog.org/download/stable
sha256 53f428e2d9bbdf30e53b06c9c42def9a13ff82fc36a111d410fc8b0bc889ee2d swipl-9.2.9.tar.gz
sha256 e42cc098f7b8a6051c4f79a99b55162d467098aba60f69649bdc7583f0734b57 swipl-10.0.2.tar.gz
# Locally calculated
sha256 770594d0f4463b71f1485f00e4bc5cf4b6f667d62ef6bc9bde2fee236541992a LICENSE

View File

@@ -4,11 +4,13 @@
#
################################################################################
SWIPL_VERSION = 9.2.9
SWIPL_VERSION = 10.0.2
SWIPL_SITE = https://www.swi-prolog.org/download/stable/src
SWIPL_LICENSE = BSD-2-Clause
SWIPL_LICENSE_FILES = LICENSE
SWIPL_SUPPORTS_IN_SOURCE_BUILD = NO
HOST_SWIPL_DEPENDENCIES = host-zlib
SWIPL_DEPENDENCIES = host-swipl zlib
@@ -16,6 +18,7 @@ SWIPL_DEPENDENCIES = host-swipl zlib
# A host-swipl is needed to compile the target prolog boot
# boot.prl file.
HOST_SWIPL_CONF_OPTS = \
-DHAVE_CURSES_H=0 \
-DBUILD_PDF_DOCUMENTATION=OFF \
-DSWIPL_PACKAGES=OFF \
-DUSE_GMP=OFF \
@@ -29,12 +32,13 @@ HOST_SWIPL_CONF_OPTS = \
# the path set to this variable. Therefore, we cannot use the host
# "swipl" binary installed in $(HOST_DIR)/usr/bin.
SWIPL_CONF_OPTS = \
-DHAVE_CURSES_H=0 \
-DBUILD_PDF_DOCUMENTATION=OFF \
-DHAVE_WEAK_ATTRIBUTE=1 \
-DLLROUND_OK=1 \
-DMODF_OK=1 \
-DQSORT_R_GNU=1 \
-DSWIPL_NATIVE_FRIEND=$(HOST_SWIPL_SRCDIR) \
-DSWIPL_NATIVE_FRIEND=$(HOST_SWIPL_BUILDDIR) \
-DSWIPL_PACKAGES=OFF \
-DUSE_TCMALLOC=OFF \
-DCMAKE_CXX_COMPILER=true