-# Copyright (C) 2019-2020 Jerônimo Cordoni Pellegrini <j_p@aleph0.info>
+# Copyright (C) 2019-2025, Jerônimo Pellegrini <j_p@aleph0.info>
#
# SPDX-License-Identifier: GPL-3.0-or-later
include $(TOPDIR)/rules.mk
PKG_NAME:=chicken-scheme
-PKG_VERSION:=5.2.0
-PKG_RELEASE:=3
+PKG_VERSION:=5.4.0
+PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/chicken-$(PKG_VERSION)
PKG_SOURCE:=chicken-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://code.call-cc.org/releases/$(PKG_VERSION)/
-PKG_HASH:=819149c8ce7303a9b381d3fdc1d5765c5f9ac4dee6f627d1652f47966a8780fa
+PKG_HASH:=3c5d4aa61c1167bf6d9bf9eaf891da7630ba9f5f3c15bf09515a7039bfcdec5f
PKG_MAINTAINER:=Jeronimo Pellegrini <j_p@aleph0.info>
PKG_LICENSE:=BSD-3-Clause
--- /dev/null
+From: Jeronimo Pellegrini <j_p@aleph0.info>
+Date Thu, 20 Nov 2025 00:00:00 -0300
+Subject: [PATCH] chicken-scheme: fix compiler behavior
+
+Chicken is a Scheme interpreter and compiler. csi is the interpreter,
+and csc is the compiler, which translates Scheme into C and calls gcc.
+
+This patch changes the compiler, csc.
+
+The Chicken build system will dynamically build the file chicken-config.h,
+and for OpenWRT this is done *inside the buildroot*. But then, the values
+in that file are hardcoded into the csc binary, and they don't work well
+in the target device:
+1. -ldl is passed to ld
+2. -fmacro-prefix-map=... is passed to gcc, with the original path from the
+ buildroot
+and these two will not work on OpenWRT (and are not needed anyway), so the
+patch included actually modifies the build system to remove those two flags.
+Then csc works on the target device!
+
+Signed-off-by: Jeronimo Pellegrini <j_p@aleph0.info>
+---
+ defaults.make | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/defaults.make
++++ b/defaults.make
+@@ -506,6 +506,7 @@ else
+ endif
+ $(call echo, >>, $@,#endif)
+ $(call echo, >>, $@,/* END OF FILE */)
++ sed -i -e's/\-fmacro-prefix-map[^ ]*//' -e's/\-ldl//' $@
+
+ chicken-install.rc:
+ $(call echo, >, $@,/* GENERATED */)