diff mbox series

[bug#57060] gnu: pcc: Fix build.

Message ID 20220808163529.12354-1-paren@disroot.org
State Accepted
Headers show
Series [bug#57060] gnu: pcc: Fix build. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git-branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

\( Aug. 8, 2022, 4:35 p.m. UTC
* gnu/packages/c.scm (pcc)[arguments]: Use gexps.
<#:phases>{fix-multiple-definitions}: New phase.
[native-inputs]: Adjust formatting.
---
 gnu/packages/c.scm | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

Comments

M Aug. 8, 2022, 6:33 p.m. UTC | #1
On 08-08-2022 18:35, ( via Guix-patches via wrote:
> +                 (lambda _
> +                   ;; Certain variables are defined multiple times. This
> +                   ;; upsets the linker and causes a build failure.
> +                   (substitute* "cc/ccom/pass1.h"
> +                     (("FLT flt_zero;") "extern FLT flt_zero;"))
> +                   (substitute* (list "cc/ccom/scan.l" "cc/cxxcom/scan.l")
> +                     (("lineno, ") ""))))

This looks like something upstream needs to know about.

> +               (replace 'check
> +                 (lambda _
> +                   (invoke "make" "-C" "cc/cpp" "test"))))))
(when tests? ...), in a follow-up or preceding patch (t was present in 
the old code), for --without-tests.

Greetings,
Maxime.
\( Aug. 8, 2022, 6:53 p.m. UTC | #2
On Mon Aug 8, 2022 at 7:33 PM BST, Maxime Devos wrote:
> This looks like something upstream needs to know about.

I'm not sure upstream is particularly active. Also, the home-page is
down, so I'm not sure how to contact them :)

> (when tests? ...), in a follow-up or preceding patch (t was present in 
> the old code), for --without-tests.

Good point!

    -- (
diff mbox series

Patch

diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 1630a40d17..113a331070 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -16,6 +16,7 @@ 
 ;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org>
 ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;; Copyright © 2022 Ekaitz Zarraga <ekaitz@elenq.tech>
+;;; Copyright © 2022 ( <paren@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -185,12 +186,20 @@  (define-public pcc
                 "1p34w496095mi0473f815w6wbi57zxil106mg7pj6sg6gzpjcgww"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _ (invoke "make" "-C" "cc/cpp" "test") #t)))))
-    (native-inputs
-     (list bison flex))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'fix-multiple-definitions
+                 (lambda _
+                   ;; Certain variables are defined multiple times. This
+                   ;; upsets the linker and causes a build failure.
+                   (substitute* "cc/ccom/pass1.h"
+                     (("FLT flt_zero;") "extern FLT flt_zero;"))
+                   (substitute* (list "cc/ccom/scan.l" "cc/cxxcom/scan.l")
+                     (("lineno, ") ""))))
+               (replace 'check
+                 (lambda _
+                   (invoke "make" "-C" "cc/cpp" "test"))))))
+    (native-inputs (list bison flex))
     (synopsis "Portable C compiler")
     (description
      "PCC is a portable C compiler.  The project goal is to write a C99