[PATCH] gnu: hugs: Fix build with GCC.

  • Done
  • quality assurance status badge
Details
2 participants
  • Homo
  • Ludovic Courtès
Owner
unassigned
Submitted by
Homo
Severity
normal
H
(address . guix-patches@gnu.org)(name . Homo)(address . gay@disroot.org)
20241211102636.20121-1-gay@disroot.org
Change-Id: I6bbfb65e62d9a2b1a3c8b29eb386a24d6974eb45
---
gnu/packages/hugs.scm | 7 +++----
gnu/packages/patches/hugs-fix-build.patch | 21 +++++++++++++++++++++
2 files changed, 24 insertions(+), 4 deletions(-)
create mode 100644 gnu/packages/patches/hugs-fix-build.patch

Toggle diff (61 lines)
diff --git a/gnu/packages/hugs.scm b/gnu/packages/hugs.scm
index c9915e4cd6..b6a97ea78c 100644
--- a/gnu/packages/hugs.scm
+++ b/gnu/packages/hugs.scm
@@ -23,7 +23,7 @@ (define-module (gnu packages hugs)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
- #:use-module (gnu packages gcc))
+ #:use-module (gnu packages))
(define-public hugs
(package
@@ -36,7 +36,8 @@ (define-public hugs
name "98-plus-" version ".tar.gz"))
(sha256
(base32
- "1mdy4aq4campgmnpc2qwq7bsbfhaxfsqdghbyyz2wms4lnfcmyma"))))
+ "1mdy4aq4campgmnpc2qwq7bsbfhaxfsqdghbyyz2wms4lnfcmyma"))
+ (patches (search-patches "hugs-fix-build.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -71,8 +72,6 @@ (define-public hugs
(("/bin/cp") (which "cp")))
#t)))
#:tests? #f)) ; no test target
- ;; FIXME: Fails to build with GCC 5.
- (native-inputs (list gcc-4.9))
(home-page "https://www.haskell.org/hugs/")
(synopsis "Functional programming system based on Haskell 98")
(description
diff --git a/gnu/packages/patches/hugs-fix-build.patch b/gnu/packages/patches/hugs-fix-build.patch
new file mode 100644
index 0000000000..d41bec4d8b
--- /dev/null
+++ b/gnu/packages/patches/hugs-fix-build.patch
@@ -0,0 +1,21 @@
+diff --git a/packages/base/include/HsBase.h b/packages/base/include/HsBase.h
+index aa1a7fb..78d5b46 100644
+--- a/packages/base/include/HsBase.h
++++ b/packages/base/include/HsBase.h
+@@ -217,15 +217,7 @@ StgWord64 stg_integerToWord64 (StgInt sa, StgByteArray /* Really: mp_limb_t* */
+ when compiling to native code.
+ -------------------------------------------------------------------------- */
+
+-#ifndef INLINE
+-# if defined(_MSC_VER)
+-# define INLINE extern __inline
+-# elif defined(__GNUC__)
+-# define INLINE extern inline
+-# else
+-# define INLINE inline
+-# endif
+-#endif
++#define INLINE inline
+
+ INLINE int __hscore_get_errno(void) { return errno; }
+ INLINE void __hscore_set_errno(int e) { errno = e; }
--
2.46.0
L
L
Ludovic Courtès wrote on 16 Dec 00:19 +0100
(name . Homo)(address . gay@disroot.org)(address . 74784@debbugs.gnu.org)
87seqofsbf.fsf@gnu.org
Hi,

Homo <gay@disroot.org> skribis:

Toggle quote (7 lines)
> Change-Id: I6bbfb65e62d9a2b1a3c8b29eb386a24d6974eb45
> ---
> gnu/packages/hugs.scm | 7 +++----
> gnu/packages/patches/hugs-fix-build.patch | 21 +++++++++++++++++++++
> 2 files changed, 24 insertions(+), 4 deletions(-)
> create mode 100644 gnu/packages/patches/hugs-fix-build.patch

A couple of minor nits but I think it’ll be useful if you plan to
contribute more:

Toggle quote (6 lines)
> --- /dev/null
> +++ b/gnu/packages/patches/hugs-fix-build.patch
> @@ -0,0 +1,21 @@
> +diff --git a/packages/base/include/HsBase.h b/packages/base/include/HsBase.h
> +index aa1a7fb..78d5b46 100644

Could you add a sentence at the top explaining what the patch does?
(This will placate ‘guix lint’ in addition to myself. :-))

Could you also register the file in ‘gnu/local.mk’?

Last, you can use ‘etc/committer.scm’ to generate a commit log or
template thereof that follow the project’s conventions.

Thanks,
Ludo’.
H
[PATCH v2] gnu: hugs: Fix build with GCC.
(address . 74784@debbugs.gnu.org)(name . Homo)(address . gay@disroot.org)
20241216085227.18555-1-gay@disroot.org
* gnu/packages/patches/hugs-fix-build.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/hugs.scm (hugs)[source]: Use it.
[native-inputs]: Remove.

Change-Id: I8b17f6c8a89fbc25ac9fe40b58962c83b08cbc21
---
Hi,

so for a while I was puzzled what to write when I don't understand C code.

etc/committer.scm doesn't work with these changes, either it backtraces or says "Nothing to do."
so instead I had to write manually, hopefully I didn't misunderstand what to write.

gnu/local.mk | 1 +
gnu/packages/hugs.scm | 7 +++----
gnu/packages/patches/hugs-fix-build.patch | 23 +++++++++++++++++++++++
3 files changed, 27 insertions(+), 4 deletions(-)
create mode 100644 gnu/packages/patches/hugs-fix-build.patch

Toggle diff (75 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 39b142af5a..c3ec582a0e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1556,6 +1556,7 @@ dist_patch_DATA = \
%D%/packages/patches/htslib-for-stringtie.patch \
%D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hueplusplus-mbedtls.patch \
+ %D%/packages/patches/hugs-fix-build.patch \
%D%/packages/patches/hurd-64bit.patch \
%D%/packages/patches/hurd-refcounts-assert.patch \
%D%/packages/patches/hurd-rumpdisk-no-hd.patch \
diff --git a/gnu/packages/hugs.scm b/gnu/packages/hugs.scm
index c9915e4cd6..b6a97ea78c 100644
--- a/gnu/packages/hugs.scm
+++ b/gnu/packages/hugs.scm
@@ -23,7 +23,7 @@ (define-module (gnu packages hugs)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
- #:use-module (gnu packages gcc))
+ #:use-module (gnu packages))
(define-public hugs
(package
@@ -36,7 +36,8 @@ (define-public hugs
name "98-plus-" version ".tar.gz"))
(sha256
(base32
- "1mdy4aq4campgmnpc2qwq7bsbfhaxfsqdghbyyz2wms4lnfcmyma"))))
+ "1mdy4aq4campgmnpc2qwq7bsbfhaxfsqdghbyyz2wms4lnfcmyma"))
+ (patches (search-patches "hugs-fix-build.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -71,8 +72,6 @@ (define-public hugs
(("/bin/cp") (which "cp")))
#t)))
#:tests? #f)) ; no test target
- ;; FIXME: Fails to build with GCC 5.
- (native-inputs (list gcc-4.9))
(home-page "https://www.haskell.org/hugs/")
(synopsis "Functional programming system based on Haskell 98")
(description
diff --git a/gnu/packages/patches/hugs-fix-build.patch b/gnu/packages/patches/hugs-fix-build.patch
new file mode 100644
index 0000000000..997baacc86
--- /dev/null
+++ b/gnu/packages/patches/hugs-fix-build.patch
@@ -0,0 +1,23 @@
+Fixes build with GCC 5 and later.
+
+diff --git a/packages/base/include/HsBase.h b/packages/base/include/HsBase.h
+index aa1a7fb..78d5b46 100644
+--- a/packages/base/include/HsBase.h
++++ b/packages/base/include/HsBase.h
+@@ -217,15 +217,7 @@ StgWord64 stg_integerToWord64 (StgInt sa, StgByteArray /* Really: mp_limb_t* */
+ when compiling to native code.
+ -------------------------------------------------------------------------- */
+
+-#ifndef INLINE
+-# if defined(_MSC_VER)
+-# define INLINE extern __inline
+-# elif defined(__GNUC__)
+-# define INLINE extern inline
+-# else
+-# define INLINE inline
+-# endif
+-#endif
++#define INLINE inline
+
+ INLINE int __hscore_get_errno(void) { return errno; }
+ INLINE void __hscore_set_errno(int e) { errno = e; }
--
2.46.0
L
L
Ludovic Courtès wrote 38 hours ago
(name . Homo)(address . gay@disroot.org)(address . 74784-done@debbugs.gnu.org)
8734ie6vdc.fsf@gnu.org
Homo <gay@disroot.org> skribis:

Toggle quote (12 lines)
> * gnu/packages/patches/hugs-fix-build.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Register it.
> * gnu/packages/hugs.scm (hugs)[source]: Use it.
> [native-inputs]: Remove.
>
> Change-Id: I8b17f6c8a89fbc25ac9fe40b58962c83b08cbc21
> ---
> Hi,
>
> The patch itself is taken from https://aur.archlinux.org/cgit/aur.git/tree/hsbase_inline.patch?h=hugs
> so for a while I was puzzled what to write when I don't understand C code.

I added this link to the top of the patch.

Toggle quote (3 lines)
> etc/committer.scm doesn't work with these changes, either it backtraces or says "Nothing to do."
> so instead I had to write manually, hopefully I didn't misunderstand what to write.

Oh, too bad. It’s perfect anyway!

Applied, thanks!

Ludo’.
Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 74784@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 74784
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch