Message ID | 20220508202154.9648-1-paren@disroot.org |
---|---|
State | Accepted |
Headers | show |
Series | [bug#53833,v2] gnu: Add qbe. | expand |
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 |
Hi, this is mostly a reminder for myself to push this soon. Am Sonntag, dem 08.05.2022 um 21:21 +0100 schrieb (unmatched- parenthesis: > * gnu/packages/c.scm (qbe): New variable. > > Signed-off-by: (unmatched-parenthesis <paren@disroot.org> Don't add sign-off headers for your own patches, those are for committers signing of other people's patches :) > [...] > + (arguments > + (list #:make-flags > + #~(list (string-append "CC=" #$(cc-for-target)) > + (string-append "PREFIX=" #$output) > + ;; `GUIXTARGET` is used instead of `TARGET` to > avoid changing > + ;; the meaning of tools/test.sh (which uses > `TARGET` too). > + (string-append "GUIXTARGET=" #$(or (%current- > target-system) > + (%current- > system)))) > + #:phases > + #~(modify-phases %standard-phases > + (add-after 'unpack 'allow-cross-compilation > + (lambda _ > + (substitute* "Makefile" > + (("`uname -m`") "$(GUIXTARGET)")))) Instead of going through the variable, why not inline it into the substitute*? > + (add-after 'allow-cross-compilation 'use-gcc-for- > tests > + (lambda _ > + (substitute* "tools/test.sh" > + (("cc=\"cc -no-pie\"") > + (string-append "cc=\"${CC} -no-pie\""))))) > + (delete 'configure)))) > + (supported-systems (list "x86_64-linux" "aarch64-linux" > "riscv64-linux")) > + (synopsis "Simple compiler backend") > + (description "QBE is a small compiler backend using an SSA-based > intermediate > +language as input.") > + (home-page "https://c9x.me/compile/") > + (license license:expat)))) Otherwise LGTM. Cheers
Am Dienstag, dem 24.05.2022 um 08:50 +0200 schrieb Liliana Marie Prikler: > Hi, this is mostly a reminder for myself to push this soon. > > Am Sonntag, dem 08.05.2022 um 21:21 +0100 schrieb (unmatched- > parenthesis: > > * gnu/packages/c.scm (qbe): New variable. > > > > Signed-off-by: (unmatched-parenthesis <paren@disroot.org> > Don't add sign-off headers for your own patches, those are for > committers signing of other people's patches :) > > > [...] > > + (arguments > > + (list #:make-flags > > + #~(list (string-append "CC=" #$(cc-for-target)) > > + (string-append "PREFIX=" #$output) > > + ;; `GUIXTARGET` is used instead of `TARGET` to > > avoid changing > > + ;; the meaning of tools/test.sh (which uses > > `TARGET` too). > > + (string-append "GUIXTARGET=" #$(or (%current- > > target-system) > > + (%current- > > system)))) > > + #:phases > > + #~(modify-phases %standard-phases > > + (add-after 'unpack 'allow-cross-compilation > > + (lambda _ > > + (substitute* "Makefile" > > + (("`uname -m`") "$(GUIXTARGET)")))) > Instead of going through the variable, why not inline it into the > substitute*? > > + (add-after 'allow-cross-compilation 'use-gcc-for- > > tests > > + (lambda _ > > + (substitute* "tools/test.sh" > > + (("cc=\"cc -no-pie\"") > > + (string-append "cc=\"${CC} -no-pie\""))))) > > + (delete 'configure)))) > > + (supported-systems (list "x86_64-linux" "aarch64-linux" > > "riscv64-linux")) > > + (synopsis "Simple compiler backend") > > + (description "QBE is a small compiler backend using an SSA- > > based > > intermediate > > +language as input.") > > + (home-page "https://c9x.me/compile/") > > + (license license:expat)))) > > Otherwise LGTM. Applied with the above as well as my liberal interpretation of what passes as `guix style'. Cheers
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index da034d5fd9..c9a25eb801 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com> ;;; Copyright © 2021 David Dashyan <mail@davie.li> ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> +;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1064,3 +1065,46 @@ (define-public utf8-h C and C++. The functions it provides are like those from the C header string.h, but with a utf8* prefix instead of the str* prefix.") (license license:unlicense)))) + +(define-public qbe + (let ((commit "2caa26e388b1c904d2f12fb09f84df7e761d8331") + (revision "1")) + (package + (name "qbe") + (version (git-version "0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "git://c9x.me/qbe") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gv03ym0gqrl4wkbhysa82025xwrkr1fg44z814b6vnggwlqgljc")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output) + ;; `GUIXTARGET` is used instead of `TARGET` to avoid changing + ;; the meaning of tools/test.sh (which uses `TARGET` too). + (string-append "GUIXTARGET=" #$(or (%current-target-system) + (%current-system)))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'allow-cross-compilation + (lambda _ + (substitute* "Makefile" + (("`uname -m`") "$(GUIXTARGET)")))) + (add-after 'allow-cross-compilation 'use-gcc-for-tests + (lambda _ + (substitute* "tools/test.sh" + (("cc=\"cc -no-pie\"") + (string-append "cc=\"${CC} -no-pie\""))))) + (delete 'configure)))) + (supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux")) + (synopsis "Simple compiler backend") + (description "QBE is a small compiler backend using an SSA-based intermediate +language as input.") + (home-page "https://c9x.me/compile/") + (license license:expat))))
* gnu/packages/c.scm (qbe): New variable. Signed-off-by: (unmatched-parenthesis <paren@disroot.org> --- This improved patch (1) squashes the three commits together, (2) enables tests for QBE, and (3) fixes some style nits. Thanks to lilyp for feedback on #guix! gnu/packages/c.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+)