commit: ed7c31f8944f4f16f45fcff382a1728c7ffa4062 Author: Cristian Othón Martínez Vera <cfuga <AT> cfuga <DOT> mx> AuthorDate: Fri Apr 11 17:48:21 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Thu Apr 24 18:14:45 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ed7c31f8
app-shells/smrsh: fix compilation for musl, c23/gcc-15 The value ```-DXDEBUG=0``` was fixed in the ```site.config.m4``` file, and now it's in the ebuild file. In order to support musl, we need to add a new value to the ```confENVDEF``` define. Closes: https://bugs.gentoo.org/715280 Closes: https://bugs.gentoo.org/944460 Signed-off-by: Cristian Othón Martínez Vera <cfuga <AT> cfuga.mx> Part-of: https://github.com/gentoo/gentoo/pull/41538 Closes: https://github.com/gentoo/gentoo/pull/41538 Signed-off-by: Sam James <sam <AT> gentoo.org> app-shells/smrsh/files/site.config.m4 | 2 +- .../smrsh/files/smrsh-8.18.1-c23-sm_strtoll.patch | 29 ++++++++++++++++++++++ .../smrsh/files/smrsh-musl-disable-cdefs.patch | 11 ++++++++ app-shells/smrsh/smrsh-8.15.2-r1.ebuild | 10 ++++++++ app-shells/smrsh/smrsh-8.18.1.ebuild | 10 ++++++++ 5 files changed, 61 insertions(+), 1 deletion(-) diff --git a/app-shells/smrsh/files/site.config.m4 b/app-shells/smrsh/files/site.config.m4 index 24ef462ba2eb..1b7b0db95821 100644 --- a/app-shells/smrsh/files/site.config.m4 +++ b/app-shells/smrsh/files/site.config.m4 @@ -1,6 +1,6 @@ define(`confCCOPTS', `@@confCCOPTS@@') define(`confSTDIO_TYPE', `portable') -define(`confENVDEF', `-DXDEBUG=0') +define(`confENVDEF', `@@confENVDEF@@') define(`confLDOPTS', `@@confLDOPTS@@') define(`confMANOWN', `root') define(`confMANGRP', `root') diff --git a/app-shells/smrsh/files/smrsh-8.18.1-c23-sm_strtoll.patch b/app-shells/smrsh/files/smrsh-8.18.1-c23-sm_strtoll.patch new file mode 100644 index 000000000000..63d64b0164ce --- /dev/null +++ b/app-shells/smrsh/files/smrsh-8.18.1-c23-sm_strtoll.patch @@ -0,0 +1,29 @@ +Bug: https://bugs.gentoo.org/944460 + +--- a/libsm/vfscanf.c ++++ b/libsm/vfscanf.c +@@ -240,13 +240,13 @@ + /* FALLTHROUGH */ + case 'd': + c = CT_INT; +- ccfn = (ULONGLONG_T (*)())sm_strtoll; ++ ccfn = (ULONGLONG_T (*)(const char *, char **, int))sm_strtoll; + base = 10; + break; + + case 'i': + c = CT_INT; +- ccfn = (ULONGLONG_T (*)())sm_strtoll; ++ ccfn = (ULONGLONG_T (*)(const char *, char **, int))sm_strtoll; + base = 0; + break; + +@@ -324,7 +324,7 @@ + if (isupper(c)) + flags |= LONG; + c = CT_INT; +- ccfn = (ULONGLONG_T (*)()) sm_strtoll; ++ ccfn = (ULONGLONG_T (*)(const char *, char **, int)) sm_strtoll; + base = 10; + break; + } diff --git a/app-shells/smrsh/files/smrsh-musl-disable-cdefs.patch b/app-shells/smrsh/files/smrsh-musl-disable-cdefs.patch new file mode 100644 index 000000000000..6dc4ac63105e --- /dev/null +++ b/app-shells/smrsh/files/smrsh-musl-disable-cdefs.patch @@ -0,0 +1,11 @@ +--- a/include/sm/os/sm_os_linux.h 2020-06-09 11:57:46.789786561 +0200 ++++ b/include/sm/os/sm_os_linux.h 2020-06-09 11:57:49.174781812 +0200 +@@ -33,7 +33,7 @@ + # endif /* LINUX_VERSION_CODE */ + #endif /* SM_CONF_SHM */ + +-#define SM_CONF_SYS_CDEFS_H 1 ++#define SM_CONF_SYS_CDEFS_H 0 + #ifndef SM_CONF_SEM + # define SM_CONF_SEM 2 + #endif /* SM_CONF_SEM */ diff --git a/app-shells/smrsh/smrsh-8.15.2-r1.ebuild b/app-shells/smrsh/smrsh-8.15.2-r1.ebuild index bada1d80ba8b..e634c33f2ab7 100644 --- a/app-shells/smrsh/smrsh-8.15.2-r1.ebuild +++ b/app-shells/smrsh/smrsh-8.15.2-r1.ebuild @@ -26,6 +26,15 @@ DEPEND="${RDEPEND} sys-devel/m4" src_prepare() { + local confENVDEF="-DXDEBUG=0" + + eapply "${FILESDIR}"/${PN}-8.18.1-c23-sm_strtoll.patch + + if use elibc_musl; then + eapply "${FILESDIR}"/${PN}-musl-disable-cdefs.patch + confENVDEF+=" -DHASSTRERROR" + fi + cd "${S}/${PN}" || die default @@ -36,6 +45,7 @@ src_prepare() { sed -e "s|@@confCCOPTS@@|${CFLAGS}|" \ -e "s|@@confLDOPTS@@|${LDFLAGS}|" \ + -e "s|@@confENVDEF@@|${confENVDEF}|" \ -e "s:@@confCC@@:$(tc-getCC):" "${FILESDIR}/site.config.m4" \ > "${S}/devtools/Site/site.config.m4" || die "sed failed" } diff --git a/app-shells/smrsh/smrsh-8.18.1.ebuild b/app-shells/smrsh/smrsh-8.18.1.ebuild index bada1d80ba8b..e634c33f2ab7 100644 --- a/app-shells/smrsh/smrsh-8.18.1.ebuild +++ b/app-shells/smrsh/smrsh-8.18.1.ebuild @@ -26,6 +26,15 @@ DEPEND="${RDEPEND} sys-devel/m4" src_prepare() { + local confENVDEF="-DXDEBUG=0" + + eapply "${FILESDIR}"/${PN}-8.18.1-c23-sm_strtoll.patch + + if use elibc_musl; then + eapply "${FILESDIR}"/${PN}-musl-disable-cdefs.patch + confENVDEF+=" -DHASSTRERROR" + fi + cd "${S}/${PN}" || die default @@ -36,6 +45,7 @@ src_prepare() { sed -e "s|@@confCCOPTS@@|${CFLAGS}|" \ -e "s|@@confLDOPTS@@|${LDFLAGS}|" \ + -e "s|@@confENVDEF@@|${confENVDEF}|" \ -e "s:@@confCC@@:$(tc-getCC):" "${FILESDIR}/site.config.m4" \ > "${S}/devtools/Site/site.config.m4" || die "sed failed" }
