summaryrefslogtreecommitdiff
path: root/gnu/packages/c.scm
diff options
context:
space:
mode:
author( <paren@disroot.org>2022-08-08 20:08:38 +0100
committerMathieu Othacehe <othacehe@gnu.org>2022-08-11 10:22:56 +0200
commitdfda2cc5f6a57a0b89b98f389a2f28bf1e94eaa4 (patch)
treede493b800605377a7b7af67bbcff175a40b85f83 /gnu/packages/c.scm
parentfc5beaf96aab6052a3e2605c5015e9e441f1c8ca (diff)
downloadguix-patches-dfda2cc5f6a57a0b89b98f389a2f28bf1e94eaa4.tar
guix-patches-dfda2cc5f6a57a0b89b98f389a2f28bf1e94eaa4.tar.gz
gnu: pcc: Fix build.
* gnu/packages/c.scm (pcc)[arguments]: Use gexps. <#:phases>{fix-multiple-definitions}: New phase. [native-inputs]: Adjust formatting. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Diffstat (limited to 'gnu/packages/c.scm')
-rw-r--r--gnu/packages/c.scm21
1 files changed, 15 insertions, 6 deletions
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 @@ standard.")
"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