help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Error using gcc with trivial-build-system


From: Emmanuel Medernach
Subject: Error using gcc with trivial-build-system
Date: Tue, 8 Nov 2022 11:23:16 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1

Hello Guix,

I have a local package with a compile script that
I need to add to our local GUIX packages.

I tried to use trivial-build-system with
gcc-toolchain input, all works well when I compile
it manually in a 'guix shell' but when I try to
define a package I ran into this error:

ld: cannot find crt1.o: No such file or directory
ld: cannot find crti.o: No such file or directory
collect2: error: ld returned 1 exit status

I cannot produce correct binaries with
gcc-toolchain, here is a minimal package
definition with the above problem. Could you
please tell me how to solve this problem ?

(define-public SimpleTest
  (package
   (name "SimpleTest")
   (version "0.0.0")
   (source
    (origin
     (method url-fetch)
     (uri ".../simpletest.tgz")
     (sha256
      (base32 "0nx8dgs5n4s1alp8lnp7a96czdll8bb7ljbg152yk7m0mr07728d"))))
   (inputs `(("gcc-toolchain" ,gcc-toolchain-9)
             ("gzip" ,gzip)
             ("tar" ,tar)))
   (build-system trivial-build-system)
   (arguments
    `(#:modules
      ((guix build utils))
      #:builder
      (begin
        (use-modules (guix build utils))

        (let* ((source (assoc-ref %build-inputs "source"))
               (out (assoc-ref %outputs "out"))
               (gzip (assoc-ref %build-inputs "gzip"))
               (gunzip-bin (string-append gzip "/bin/gunzip"))
               (tar (assoc-ref %build-inputs "tar"))
               (tar-bin (string-append tar "/bin/tar"))
               (gcc-dir (assoc-ref %build-inputs "gcc-toolchain"))
               (gcc-bin (string-append gcc-dir "/bin/gcc")))

          (let* ((packages (alist-delete "source" %build-inputs))
                 (packages-path (map cdr packages)))
            (setenv
             "PATH"
             (apply
              string-append
              (getenv "PATH") ":"
              (map (lambda (p) (string-append p "/bin:"))
                   packages-path))))

          ;; (setenv "GCC_EXEC_PREFIX" gcc-dir)
          ;; gcc: fatal error: cannot execute 'cc1': execvp: No such file or directory

          (display (list "gcc-bin" gcc-bin)) (newline)

          (mkdir-p out) (chdir out)
          (copy-file source "simpletest.tar.gz")
          (invoke gunzip-bin "simpletest.tar.gz")
          (invoke tar-bin "xvf" "simpletest.tar")
          (delete-file "simpletest.tar")
          (chdir "simpletest")
          (invoke gcc-bin "simpletest.c" "-o" "simpletest")

          #t))))

   (synopsis "Simple Test")
   (description "Simple Test")
   (home-page "None")
   (license license:gpl3+)))

Best regards,

Emmanuel Medernach




reply via email to

[Prev in Thread] Current Thread [Next in Thread]