unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* Issues cross-compiling arm with QMK
@ 2024-03-09 17:50 Kristoffer Ström
  2024-03-09 23:54 ` Ekaitz Zarraga
  0 siblings, 1 reply; 2+ messages in thread
From: Kristoffer Ström @ 2024-03-09 17:50 UTC (permalink / raw)
  To: help-guix


When trying to compile keyboard firmware using the qmk toolkit, i run
into this error:

./lib/pico-sdk/src/rp2_common/hardware_base/include/hardware/address_mapped.h:94:19: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

     uint32_t rc = (uintptr_t)addr;


Which seems to me to indicate that the cross-toolchain is trying to
produce 64-bit binaries.

i based my build shell manifest off of
https://github.com/mrvdb/qmk_atreus which is an avr-based board and
replacing (make-avr-toolchain) with
(make-arm-none-eabi-nano-toolchain-x), i have tried all available
versions.

Is there a way to specify a toolchain for cross-compiling into 32bit arm
binaries?



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Issues cross-compiling arm with QMK
  2024-03-09 17:50 Issues cross-compiling arm with QMK Kristoffer Ström
@ 2024-03-09 23:54 ` Ekaitz Zarraga
  0 siblings, 0 replies; 2+ messages in thread
From: Ekaitz Zarraga @ 2024-03-09 23:54 UTC (permalink / raw)
  To: Kristoffer Ström, help-guix

Hi Kristoffer,

On 2024-03-09 18:50, Kristoffer Ström wrote:
> 
> When trying to compile keyboard firmware using the qmk toolkit, i run
> into this error:
> 
> ./lib/pico-sdk/src/rp2_common/hardware_base/include/hardware/address_mapped.h:94:19: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
> 
>       uint32_t rc = (uintptr_t)addr;
> 
> 
> Which seems to me to indicate that the cross-toolchain is trying to
> produce 64-bit binaries.
> 
> i based my build shell manifest off of
> https://github.com/mrvdb/qmk_atreus which is an avr-based board and
> replacing (make-avr-toolchain) with
> (make-arm-none-eabi-nano-toolchain-x), i have tried all available
> versions.
> 
> Is there a way to specify a toolchain for cross-compiling into 32bit arm
> binaries?

You should use `(make-arm-none-eabi-toolchain-*whatever*)` but I have 
bad news.

There are *many* issues with this. I reported this a while ago:

https://lists.gnu.org/archive/html/help-guix/2023-09/msg00087.html

And many other people did more questions after that:

https://lists.gnu.org/archive/html/guix-devel/2023-12/msg00180.html

But I didn't manage to fix this yet.

In fact, I found similar issues in other architectures, mostly because 
all of them share the same problem:

https://issues.guix.gnu.org/69394

Maybe making a Guix package which has your firmware as an output might 
work, at this very moment, the problem is our modified GCCs are unable 
to find the proper libraries and they explode.

I can't fix this, and it's affecting me severely and I feel a little bit 
helpless about it... I don't know what we should do.

I might organize in the near future and make my own toolchain like the 
one shown in the second link to fix my personal issue and start helping 
everyone that reports this... But at the moment there's not much I can do.

Maybe someone else can help better.

I'll try to keep an eye in this subject, but if you fix it, please let 
me know.

Best,
Ekaitz


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-03-09 23:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-09 17:50 Issues cross-compiling arm with QMK Kristoffer Ström
2024-03-09 23:54 ` Ekaitz Zarraga

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).