Le 08/11/2022 à 12:39, Wojtek Kosior a écrit :
Hi,

I have little experience with Guix packages, but I ran into a similar
issue using guix shell --pure recently, and I believe that you need to
add glibc to your dependencies.

I suppose that guix shell works for you because you already have glibc
available in the active profile.  I'd expect guix shell --pure to fail
with the same error.
Thanks for your idea but no luck, still the same error with glibc added :-/

Emmanuel
Perhaps `find /gnu/store/ -name "crt1.o"` will give further hints?

Yes, it is already part of gcc-toolchain (gcc-toolchain-9.4.0/lib/crt1.o)

Adding "-L" flags to gcc does not help

Emmanuel

Good luck!

Wojtek

-- (sig_start)
website: https://koszko.org/koszko.html
PGP: https://koszko.org/key.gpg
fingerprint: E972 7060 E3C5 637C 8A4F  4B42 4BC5 221C 5A79 FD1A

Meet Kraków saints!           #10: blessed Hilary Januszewski
Poznaj świętych krakowskich!  #10: błogosławiony Hilary Januszewski
https://pl.wikipedia.org/wiki/Hilary_Januszewski
-- (sig_end)


On Tue, 8 Nov 2022 11:58:41 +0100
Emmanuel Medernach <emmanuel.medern...@iphc.cnrs.fr> wrote:

Le 08/11/2022 à 11:45, Sergiu Ivanov a écrit :
Hi,

I have little experience with Guix packages, but I ran into a similar
issue using guix shell --pure recently, and I believe that you need to
add glibc to your dependencies.

I suppose that guix shell works for you because you already have glibc
available in the active profile.  I'd expect guix shell --pure to fail
with the same error.
Thanks for your idea but no luck, still the same error with glibc added :-/

Emmanuel


-
HTH,
Sergiu


Emmanuel Medernach <emmanuel.medern...@iphc.cnrs.fr> [2022-11-08T11:23:16+0100]:
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