This is both a shout-out and a question by doesn't openSUSE provide the package? gcc provides the cross-arm-none-eabi toolchain used to program microcontrollers (TI, Raspberry, etc..) A build service user provides the packages is reasonable shape: https://download.opensuse.org/repositories/home:/wkazubski/15.4/ But why doesn't openSUSE also provide the packages. The devel:/gcc repo provides the cross-arm-none full packages, but not the eabi sub-packages. This is the difference between as 26M install and an a 1.8G install. For example with the Pi-Pico, there is no need for 1.75G of the devel:/gcc packages. Why not provide the eabi subpackages? The wkazubski packages work fine, just need a bit of maintenance. -- David C. Rankin, J.D.,P.E.
On 27.08.2022 09:01, David C. Rankin wrote:
This is both a shout-out and a question by doesn't openSUSE provide the package?
gcc provides the cross-arm-none-eabi toolchain used to program microcontrollers (TI, Raspberry, etc..)
A build service user provides the packages is reasonable shape:
https://download.opensuse.org/repositories/home:/wkazubski/15.4/
But why doesn't openSUSE also provide the packages. The devel:/gcc repo provides the cross-arm-none full packages, but not the eabi sub-packages. This is the difference between as 26M install and an a 1.8G install.
What is exactly wrong with cross-arm-gccN (pick your version)?
For example with the Pi-Pico, there is no need for 1.75G of the devel:/gcc packages. Why not provide the eabi subpackages?
The wkazubski packages work fine, just need a bit of maintenance.
On 8/27/22 01:41, Andrei Borzenkov wrote:
What is exactly wrong with cross-arm-gccN (pick your version)?
The real issue is size. Somebody shouldn't need to install gigabytes of compiler and toolchain when only a few megabytes are needed. There is no bare-metal subpackage alone. Instead you get the entire gcc, e.g. cross-arm-none-gcc11-11.3.1+git1902-lp154.148.1.. 1529106760 That's 1.4+ Gigabytes for something where less than 26M is needed for bare metal. -- David C. Rankin, J.D.,P.E.
On 8/27/22 15:50, David C. Rankin wrote:
On 8/27/22 01:41, Andrei Borzenkov wrote:
What is exactly wrong with cross-arm-gccN (pick your version)?
The real issue is size. Somebody shouldn't need to install gigabytes of compiler and toolchain when only a few megabytes are needed.
There is no bare-metal subpackage alone. Instead you get the entire gcc, e.g.
cross-arm-none-gcc11-11.3.1+git1902-lp154.148.1.. 1529106760
That's 1.4+ Gigabytes for something where less than 26M is needed for bare metal.
But kudos to the SUSE/openSUSE team for great work making gcc12 available in the same repo! Works like a champ! -- David C. Rankin, J.D.,P.E.
On 27.08.2022 23:50, David C. Rankin wrote:
On 8/27/22 01:41, Andrei Borzenkov wrote:
What is exactly wrong with cross-arm-gccN (pick your version)?
The real issue is size. Somebody shouldn't need to install gigabytes of compiler and toolchain when only a few megabytes are needed.
There is no bare-metal subpackage alone. Instead you get the entire gcc, e.g.
cross-arm-none-gcc11-11.3.1+git1902-lp154.148.1.. 1529106760
That is not the package I told you about.
That's 1.4+ Gigabytes for something where less than 26M is needed for bare metal.
On 8/28/22 01:00, Andrei Borzenkov wrote:
There is no bare-metal subpackage alone. Instead you get the entire gcc, e.g.
cross-arm-none-gcc11-11.3.1+git1902-lp154.148.1.. 1529106760
That is not the package I told you about.
Wow! So: cross-arm-gcc12-12.1.1+git372-lp154.36.1.x86_64.rpm is the cross-arm-none-eabi-gcc variant? If so, at 102M that's fine for gcc/g++12. I guess using Yast once in a while wouldn't hurt. The description is a little hidden, but: "Note this is only useful for building freestanding things like the kernel since it fails to include target libraries and headers." would seem to be exactly arm-none-eabi as long as it includes the required freestanding headers and crt. That's the first time I've seen it packaged without the none-eabi. Thank you. (wkazubski's naming is what I'm used to seeing on Arch, Debian, Ubuntu, etc.. that was the confusing point) Side note -- if you haven't played with the Pi-Pico, that is one hell of a 133MHz dual-core microcontroller for $4.00 (get the h model and you don't even have to solder the pin-headers in) The C/C++ pico-sdk is one hell of a good package and .uf2 format makes flashing a breeze with the pico started in mass-storage mode. The size and weight of a stick of gum and 100X the processing power it took to go to the moon. -- David C. Rankin, J.D.,P.E.
On 28.08.2022 12:30, David C. Rankin wrote:
On 8/28/22 01:00, Andrei Borzenkov wrote:
There is no bare-metal subpackage alone. Instead you get the entire gcc, e.g.
cross-arm-none-gcc11-11.3.1+git1902-lp154.148.1.. 1529106760
That is not the package I told you about.
Wow!
So:
cross-arm-gcc12-12.1.1+git372-lp154.36.1.x86_64.rpm
Leap 15.4 includes cross-arm-gcc11 (and several lower versions) so you do not even need external project for it.
is the cross-arm-none-eabi-gcc variant?
It is built for arm-suse-linux-gnueabi target. But that really only determines default values for some options and you can (and should) define your precise target options when using it.
If so, at 102M that's fine for gcc/g++12.
I guess using Yast once in a while wouldn't hurt. The description is a little hidden, but:
"Note this is only useful for building freestanding things like the kernel since it fails to include target libraries and headers." would seem to be exactly arm-none-eabi as long as it includes the required freestanding headers and crt.
It is unrelated to build target. SUSE does not provide target libraries which means you cannot really compile any "normal" user space program that usually has quite a lot of external dependencies. Strictly speaking they are not part of compiler either. E.g. Ubuntu provides some cross-libraries as separate packages (starting with glibc itself).
That's the first time I've seen it packaged without the none-eabi. Thank you. (wkazubski's naming is what I'm used to seeing on Arch, Debian, Ubuntu, etc.. that was the confusing point)
Side note -- if you haven't played with the Pi-Pico, that is one hell of a 133MHz dual-core microcontroller for $4.00 (get the h model and you don't even have to solder the pin-headers in) The C/C++ pico-sdk is one hell of a good package and .uf2 format makes flashing a breeze with the pico started in mass-storage mode. The size and weight of a stick of gum and 100X the processing power it took to go to the moon.
On 8/28/22 05:06, Andrei Borzenkov wrote:
"Note this is only useful for building freestanding things like the kernel since it fails to include target libraries and headers." would seem to be exactly arm-none-eabi as long as it includes the required freestanding headers and crt.
It is unrelated to build target. SUSE does not provide target libraries which means you cannot really compile any "normal" user space program that usually has quite a lot of external dependencies. Strictly speaking they are not part of compiler either. E.g. Ubuntu provides some cross-libraries as separate packages (starting with glibc itself).
Yes, but at least for freestanding systems the C standard specifies the minimal set of features that shall be provided. C-18 Clause 4 https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2596.pdf#chapter.4 (paragraph 6) The pico-sdk should provide the glue from there. I'll have to test the devel/gcc package and see if that is indeed the case. Using wkabuzski's packages, everything compiles just fine. I suspect that will be the same with the devel/gcc packages also. -- David C. Rankin, J.D.,P.E.
participants (2)
-
Andrei Borzenkov
-
David C. Rankin