[PATCH] gnu: pcc: Fix build.

  • Done
  • quality assurance status badge
Details
3 participants
  • Maxime Devos
  • Mathieu Othacehe
  • (
Owner
unassigned
Submitted by
(
Severity
normal
(
(address . guix-patches@gnu.org)(name . ()(address . paren@disroot.org)
20220808163529.12354-1-paren@disroot.org
* 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(-)

Toggle diff (41 lines)
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
--
2.37.1
M
M
Maxime Devos wrote on 8 Aug 2022 20:33
b38ce531-f144-c416-869a-dfebe705f369@telenet.be
On 08-08-2022 18:35, ( via Guix-patches via wrote:
Toggle quote (7 lines)
> + (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.
Toggle quote (3 lines)
> + (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.
Attachment: OpenPGP_signature
(
CM0VHYK2TT42.53Q65DVV6Y7Y@guix-aspire
On Mon Aug 8, 2022 at 7:33 PM BST, Maxime Devos wrote:
Toggle quote (2 lines)
> 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 :)

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

Good point!

-- (
(
[PATCH v2 2/2] gnu: pcc: Respect --without-tests.
(address . 57060@debbugs.gnu.org)(name . ()(address . paren@disroot.org)
20220808190839.20727-2-paren@disroot.org
* gnu/packages/c.scm (pcc)[arguments]<#:phases>{check}: Respect the
`tests?` argument.
---
gnu/packages/c.scm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 113a331070..39f048e993 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -197,8 +197,9 @@ (define-public pcc
(substitute* (list "cc/ccom/scan.l" "cc/cxxcom/scan.l")
(("lineno, ") ""))))
(replace 'check
- (lambda _
- (invoke "make" "-C" "cc/cpp" "test"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "make" "-C" "cc/cpp" "test")))))))
(native-inputs (list bison flex))
(synopsis "Portable C compiler")
(description
--
2.37.1
(
[PATCH v2 1/2] gnu: pcc: Fix build.
(address . 57060@debbugs.gnu.org)(name . ()(address . paren@disroot.org)
20220808190839.20727-1-paren@disroot.org
* 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(-)

Toggle diff (41 lines)
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
--
2.37.1
M
M
Mathieu Othacehe wrote on 11 Aug 2022 10:29
Re: bug#57060: [PATCH] gnu: pcc: Fix build.
(name . ()(address . paren@disroot.org)
874jyj420b.fsf_-_@gnu.org
Toggle quote (3 lines)
> * gnu/packages/c.scm (pcc)[arguments]<#:phases>{check}: Respect the
> `tests?` argument.

Pushed both patches, thanks Maxime for reviewing.

Mathieu
Closed
?