summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Enge <andreas@enge.fr>2019-12-03 22:16:32 +0100
committerAndreas Enge <andreas@enge.fr>2019-12-03 22:18:08 +0100
commit4c16ffd383592854e2760004d2df354f85b32e57 (patch)
tree5b87ef851f21e61c98411c18259b21ca65ec7563
parent1b6c5e803989210720de98862571a7ce1dd8e8dd (diff)
gnu: tcc: Add search paths and drop the wrapper.
* gnu/packages/c.scm (tcc): Add native search paths. (tcc-wrapper): Remove variable.
-rw-r--r--gnu/packages/c.scm68
1 files changed, 8 insertions, 60 deletions
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 6428e86e70..921d473cd9 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -79,6 +80,13 @@
`("--triplet=arm-linux-gnueabihf")
'()))
#:test-target "test"))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "CPATH")
+ (files '("include")))
+ (search-path-specification
+ (variable "LIBRARY_PATH")
+ (files '("lib" "lib64")))))
;; Fails to build on MIPS: "Unsupported CPU"
(supported-systems (delete "mips64el-linux" %supported-systems))
(synopsis "Tiny and fast C compiler")
@@ -91,66 +99,6 @@ standard.")
;; (if ever) complete. See the RELICENSING file for more information.
(license license:lgpl2.1+)))
-(define-public tcc-wrapper
- (package
- (inherit tcc)
- (name "tcc-wrapper")
- (build-system trivial-build-system)
- (native-inputs '())
- (inputs `(("tcc" ,tcc)
- ("guile" ,guile-2.2)))
-
- ;; By default TCC does not honor any search path environment variable.
- ;; This wrapper adds them.
- ;;
- ;; FIXME: TCC includes its own linker so our 'ld-wrapper' hack to set the
- ;; RUNPATH is ineffective here. We should modify TCC itself.
- (native-search-paths
- (list (search-path-specification
- (variable "TCC_CPATH")
- (files '("include")))
- (search-path-specification
- (variable "TCC_LIBRARY_PATH")
- (files '("lib" "lib64")))))
-
- (arguments
- '(#:builder
- (let* ((out (assoc-ref %outputs "out"))
- (bin (string-append out "/bin"))
- (tcc (assoc-ref %build-inputs "tcc"))
- (guile (assoc-ref %build-inputs "guile")))
- (mkdir out)
- (mkdir bin)
- (call-with-output-file (string-append bin "/cc")
- (lambda (port)
- (format port "#!~a/bin/guile --no-auto-compile~%!#~%" guile)
- (write
- `(begin
- (use-modules (ice-9 match)
- (srfi srfi-26))
-
- (define (split path)
- (string-tokenize path (char-set-complement
- (char-set #\:))))
-
- (apply execl ,(string-append tcc "/bin/tcc")
- ,(string-append tcc "/bin/tcc") ;argv[0]
- (append (cdr (command-line))
- (match (getenv "TCC_CPATH")
- (#f '())
- (str
- (map (cut string-append "-I" <>)
- (split str))))
- (match (getenv "TCC_LIBRARY_PATH")
- (#f '())
- (str
- (map (cut string-append "-L" <>)
- (split str)))))))
- port)
- (chmod port #o777)))
- #t)))
- (synopsis "Wrapper providing the 'cc' command for TCC")))
-
(define-public pcc
(package
(name "pcc")