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>
This commit is contained in:
( 2022-08-08 20:08:38 +01:00 committed by Mathieu Othacehe
parent fc5beaf96a
commit dfda2cc5f6
No known key found for this signature in database
GPG key ID: 8354763531769CA6

View file

@ -16,6 +16,7 @@
;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org> ;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org>
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2022 Ekaitz Zarraga <ekaitz@elenq.tech> ;;; Copyright © 2022 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2022 ( <paren@disroot.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -185,12 +186,20 @@ (define-public pcc
"1p34w496095mi0473f815w6wbi57zxil106mg7pj6sg6gzpjcgww")))) "1p34w496095mi0473f815w6wbi57zxil106mg7pj6sg6gzpjcgww"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (list #:phases
(modify-phases %standard-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 (replace 'check
(lambda _ (invoke "make" "-C" "cc/cpp" "test") #t))))) (lambda _
(native-inputs (invoke "make" "-C" "cc/cpp" "test"))))))
(list bison flex)) (native-inputs (list bison flex))
(synopsis "Portable C compiler") (synopsis "Portable C compiler")
(description (description
"PCC is a portable C compiler. The project goal is to write a C99 "PCC is a portable C compiler. The project goal is to write a C99