[GH-ISSUE #229] Can't build on Arch Linux even on GCC 10 #91

Closed
opened 2026-05-06 13:15:20 +02:00 by BreizhHardware · 18 comments

Originally created by @GitEz-code on GitHub (May 10, 2022).
Original GitHub issue: https://github.com/UpsilonNumworks/Upsilon/issues/229

I tried multiple version from Arch repos, and even in the archives with always the same error:

/usr/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/bin/ld: /usr/lib/gcc/arm-none-eabi/10.1.0/thumb/v7e-m+fp/hard/libgcc.a(_aeabi_ldivmod.o): in function `__aeabi_ldivmod':
(.text+0x32): prohibited cross reference from .text.internal to `__udivmoddi4' in .text.external
/usr/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/bin/ld: (.text+0x4c): prohibited cross reference from .text.internal to `__udivmoddi4' in .text.external
/usr/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/bin/ld: (.text+0x6e): prohibited cross reference from .text.internal to `__udivmoddi4' in .text.external
/usr/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/bin/ld: (.text+0x8a): prohibited cross reference from .text.internal to `__udivmoddi4' in .text.external
collect2: error: ld returned 1 exit status
make: *** [build/rules.mk:83 : output/release/device/n0110/epsilon.elf] Erreur 1

(i'm sorry for my bad english)

Originally created by @GitEz-code on GitHub (May 10, 2022). Original GitHub issue: https://github.com/UpsilonNumworks/Upsilon/issues/229 I tried multiple version from Arch repos, and even in the archives with always the same error: ``` /usr/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/bin/ld: /usr/lib/gcc/arm-none-eabi/10.1.0/thumb/v7e-m+fp/hard/libgcc.a(_aeabi_ldivmod.o): in function `__aeabi_ldivmod': (.text+0x32): prohibited cross reference from .text.internal to `__udivmoddi4' in .text.external /usr/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/bin/ld: (.text+0x4c): prohibited cross reference from .text.internal to `__udivmoddi4' in .text.external /usr/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/bin/ld: (.text+0x6e): prohibited cross reference from .text.internal to `__udivmoddi4' in .text.external /usr/lib/gcc/arm-none-eabi/10.1.0/../../../../arm-none-eabi/bin/ld: (.text+0x8a): prohibited cross reference from .text.internal to `__udivmoddi4' in .text.external collect2: error: ld returned 1 exit status make: *** [build/rules.mk:83 : output/release/device/n0110/epsilon.elf] Erreur 1 ``` (i'm sorry for my bad english)
BreizhHardware 2026-05-06 13:15:20 +02:00
  • closed this issue
  • added the
    fixed
    label
Author
Owner

@Yaya-Cout commented on GitHub (May 10, 2022):

I am using the arm-none-eabi-gcc package at the latest version (12.1.0) and it works. Can you try to upgrade your system using pacman -Syu (or the wrapper for AUR, if you want) ?

<!-- gh-comment-id:1122551518 --> @Yaya-Cout commented on GitHub (May 10, 2022): I am using the `arm-none-eabi-gcc` package at the latest version (12.1.0) and it works. Can you try to upgrade your system using `pacman -Syu` (or the wrapper for AUR, if you want) ?
Author
Owner

@Tunas1337 commented on GitHub (May 10, 2022):

I'm unsure where you got 12.1.0 from; the latest I see is 11.2.0, which did not work.
However, the NumWorks site offers an alternative, which worked for me: a standalone copy of the toolchain to be placed in a folder and included in the PATH. See the relevant section in the guide on Installing the SDK, also copied below for your convenience:

You’ll also need to install the latest version of GCC and make it available in your $PATH:

  • Download the GCC toolchain distributed by ARM. You should obtain a gcc-arm-none-eabi-x-linux.tar.bz2 file.
  • Decompress that file with tar xvfj gcc-arm-none-eabi-*-linux.tar.bz2
  • Add the resulting folder to your $PATH. If you use bash, echo "export PATH=\$PATH:`find $(pwd)/gcc-arm-none-eabi-*-update/bin -type d`" >> ~/.bashrc should do what you need (you’ll need to restart your terminal afterwards).
<!-- gh-comment-id:1122645152 --> @Tunas1337 commented on GitHub (May 10, 2022): I'm unsure where you got 12.1.0 from; the latest I see is 11.2.0, which did not work. However, the NumWorks site offers an alternative, which worked for me: a standalone copy of the toolchain to be placed in a folder and included in the PATH. See the relevant section in the guide on [Installing the SDK](https://www.numworks.com/resources/engineering/software/build/#debian-or-ubuntu), also copied below for your convenience: You’ll also need to install the latest version of GCC and make it available in your $PATH: - Download the [GCC toolchain distributed by ARM](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads). You should obtain a gcc-arm-none-eabi-x-linux.tar.bz2 file. - Decompress that file with `tar xvfj gcc-arm-none-eabi-*-linux.tar.bz2` - Add the resulting folder to your $PATH. If you use bash, ``echo "export PATH=\$PATH:`find $(pwd)/gcc-arm-none-eabi-*-update/bin -type d`" >> ~/.bashrc`` should do what you need (you’ll need to restart your terminal afterwards).
Author
Owner

@Yaya-Cout commented on GitHub (May 10, 2022):

It is for Msys2, not for Arch Linux

<!-- gh-comment-id:1122647419 --> @Yaya-Cout commented on GitHub (May 10, 2022): It is for Msys2, not for Arch Linux
Author
Owner

@Tunas1337 commented on GitHub (May 10, 2022):

Do you mean the instructions given, or GCC 12.1.0? The instructions worked alright for me on Arch, and I think they worked for the person who opened the last issue about not being able to compile on Arch.

<!-- gh-comment-id:1122655221 --> @Tunas1337 commented on GitHub (May 10, 2022): Do you mean the instructions given, or GCC 12.1.0? The instructions worked alright for me on Arch, and I think they worked for the person who opened the last issue about not being able to compile on Arch.
Author
Owner

@Yaya-Cout commented on GitHub (May 10, 2022):

I mean the given instructions : It works perfectly on my fresh installation of Arch…

<!-- gh-comment-id:1122656972 --> @Yaya-Cout commented on GitHub (May 10, 2022): I mean the given instructions : It works perfectly on my fresh installation of Arch…
Author
Owner

@GitEz-code commented on GitHub (May 11, 2022):

did the Msys2 instruction work on arch ? for now, i'm using a docker with ubuntu

<!-- gh-comment-id:1123394710 --> @GitEz-code commented on GitHub (May 11, 2022): did the Msys2 instruction work on arch ? for now, i'm using a docker with ubuntu
Author
Owner

@Yaya-Cout commented on GitHub (May 11, 2022):

I just built Upsilon, and installed missing packages thought pacman when I had errors… I don't think that the Msys2 installation is made for Arch Linux because Msys2 is on Windows.

<!-- gh-comment-id:1123397880 --> @Yaya-Cout commented on GitHub (May 11, 2022): I just built Upsilon, and installed missing packages thought pacman when I had errors… I don't think that the Msys2 installation is made for Arch Linux because Msys2 is on Windows.
Author
Owner

@GitEz-code commented on GitHub (May 11, 2022):

the problem was reported here too, the solution they give doesn't work for me. #191

<!-- gh-comment-id:1123398350 --> @GitEz-code commented on GitHub (May 11, 2022): the problem was reported here too, the solution they give doesn't work for me. #191
Author
Owner

@GitEz-code commented on GitHub (May 11, 2022):

I'll try to upĝrade, I'll keep you posted.

<!-- gh-comment-id:1123402238 --> @GitEz-code commented on GitHub (May 11, 2022): I'll try to upĝrade, I'll keep you posted.
Author
Owner

@Yaya-Cout commented on GitHub (May 11, 2022):

Are you using a custom theme ?

<!-- gh-comment-id:1123428610 --> @Yaya-Cout commented on GitHub (May 11, 2022): Are you using a custom theme ?
Author
Owner

@Yaya-Cout commented on GitHub (May 11, 2022):

I think your bug come from the missing MODEL=bootloader in the build command.

<!-- gh-comment-id:1123432957 --> @Yaya-Cout commented on GitHub (May 11, 2022): I think your bug come from the missing `MODEL=bootloader` in the build command.
Author
Owner

@GitEz-code commented on GitHub (May 11, 2022):

I upgraded my system, but there still the same issues, It build perfectly well on the docker so it's not a problem of Upsilon. I made make clean before building. I'm not at home so I can't try on a other computer.

<!-- gh-comment-id:1123502476 --> @GitEz-code commented on GitHub (May 11, 2022): I upgraded my system, but there still the same issues, It build perfectly well on the docker so it's not a problem of Upsilon. I made `make clean` before building. I'm not at home so I can't try on a other computer.
Author
Owner

@Yaya-Cout commented on GitHub (May 11, 2022):

Can you try to build using make binpack MODEL=bootloader after a make cleanall ?

<!-- gh-comment-id:1123509889 --> @Yaya-Cout commented on GitHub (May 11, 2022): Can you try to build using `make binpack MODEL=bootloader` after a `make cleanall` ?
Author
Owner

@GitEz-code commented on GitHub (May 11, 2022):

I don't have access to my computer yet, I will try later

<!-- gh-comment-id:1123533143 --> @GitEz-code commented on GitHub (May 11, 2022): I don't have access to my computer yet, I will try later
Author
Owner

@GitEz-code commented on GitHub (May 11, 2022):

look like it worked, but how can i flash it to the numworks ? when i do make epsilon_flash, it just rebuild (with the same error)

<!-- gh-comment-id:1123742246 --> @GitEz-code commented on GitHub (May 11, 2022): look like it worked, but how can i flash it to the numworks ? when i do make epsilon_flash, it just rebuild (with the same error)
Author
Owner

@Yaya-Cout commented on GitHub (May 11, 2022):

make epsilon.A_flash MODEL=bootloader for the slot A

<!-- gh-comment-id:1123743189 --> @Yaya-Cout commented on GitHub (May 11, 2022): `make epsilon.A_flash MODEL=bootloader` for the slot A
Author
Owner

@GitEz-code commented on GitHub (May 11, 2022):

have i to install a bootloader ? or is it ok without one ?

<!-- gh-comment-id:1123788189 --> @GitEz-code commented on GitHub (May 11, 2022): have i to install a bootloader ? or is it ok without one ?
Author
Owner

@GitEz-code commented on GitHub (May 11, 2022):

Instruction en Français

Cette fois ça marche parfaitement. je vais quand même donner les instruction pour ceux qui aurais besoin.

Déja, si vous avez tenter de build sans succès, commencer par faire make cleanall. Ça va permettre de supprimer le dossier output qui a échouer.

Ensuite, entrer cette commande: make binpack MODEL=bootloader -j4.

Pour finir, enter : make epsilon.A_flash MODEL=bootloader pour le flasher dans la Numworks
Lors de mon premier essai, la calculatrice donnais aucun signe de vie. Si c'est aussi votre cas, appuyez simplement sur le bouton RESET au dos de la calculatrice.

Instruction in English

This time it works perfectly. I will still give the instructions for those who would need.

First of all, if you have tried to build without success, start by doing make cleanall. This will remove the output folder that failed.

Then enter this command: make binpack MODEL=bootloader -j4.

Finally, enter: make epsilon.A_flash MODEL=bootloader to flash it in the Numworks
On my first try, the calculator gave no sign of life. If this is also your case, simply press the RESET button on the back of the calculator.

<!-- gh-comment-id:1123935219 --> @GitEz-code commented on GitHub (May 11, 2022): ### Instruction en Français Cette fois ça marche parfaitement. je vais quand même donner les instruction pour ceux qui aurais besoin. Déja, si vous avez tenter de build sans succès, commencer par faire `make cleanall`. Ça va permettre de supprimer le dossier output qui a échouer. Ensuite, entrer cette commande: `make binpack MODEL=bootloader -j4`. Pour finir, enter : `make epsilon.A_flash MODEL=bootloader` pour le flasher dans la Numworks Lors de mon premier essai, la calculatrice donnais aucun signe de vie. Si c'est aussi votre cas, appuyez simplement sur le bouton RESET au dos de la calculatrice. ### Instruction in English This time it works perfectly. I will still give the instructions for those who would need. First of all, if you have tried to build without success, start by doing `make cleanall`. This will remove the output folder that failed. Then enter this command: `make binpack MODEL=bootloader -j4`. Finally, enter: `make epsilon.A_flash MODEL=bootloader` to flash it in the Numworks On my first try, the calculator gave no sign of life. If this is also your case, simply press the RESET button on the back of the calculator.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Upsilon#91
No description provided.