[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#47325: newlib-nano: are lib names wrong?
From: |
Nicolò Balzarotti |
Subject: |
bug#47325: newlib-nano: are lib names wrong? |
Date: |
Mon, 22 Mar 2021 18:15:52 +0100 |
Hi guix!
A program I'm packaging requires newlib-nano, but when building, the
linker fails to find g_nano and c_nano.
I found out those names are taken from the nano.specs file we install
> cat $(guix build newlib-nano)/arm-none-eabi/lib/nano.specs | grep -- -l
-lc_nano
%{specs=rdimon.specs:-lrdimon_nano} %{specs=nosys.specs:-lnosys}
%(nano_link) %:replace-outfile(-lc -lc_nano) %:replace-outfile(-lg -lg_nano)
%:replace-outfile(-lrdimon -lrdimon_nano) %:replace-outfile(-lstdc++
-lstdc++_nano)
%:replace-outfile(-lsupc++ -lsupc++_nano)
%{!shared:%{g*:-lg_nano} %{!p:%{!pg:-lc_nano}}%{p:-lc_p}%{pg:-lc_p}}
However, those files are missing:
> ls $(guix build newlib-nano)/arm-none-eabi/lib/ | grep lib
libc.a
libg.a
libgloss-linux.a
libm.a
libnosys.a
librdimon.a
librdimon-v2m.a
librdpmon.a
I was able to build the program by modifing the .specs file with:
(add-after 'install 'remove-suffix
(lambda* (#:key outputs #:allow-other-keys)
(substitute*
(string-append
(assoc-ref outputs "out")
"/arm-none-eabi/lib/nano.specs")
(("_nano") ""))
#t))
But reading online, it seems the _nano is a common suffix. Should we
rename the output libs? Should we symlink? I know nothing about this,
but it might be a bug.
Thanks! Nicolò
- bug#47325: newlib-nano: are lib names wrong?,
Nicolò Balzarotti <=