[CentOS-devel] Ceph on arm32 - failing to compile devtoolset-8-gcc-8.3.1-3.1.el7.src.rpm

Sat Dec 12 10:44:18 UTC 2020
Oliver Weinmann <oliver.weinmann at me.com>

Hi Pablo,

thanks a lot for your reply. The src.rpm I'm using is this one:

https://cbs.centos.org/kojifiles/packages/devtoolset-8-gcc/8.3.1/3.1.el7/src/devtoolset-8-gcc-8.3.1-3.1.el7.src.rpm

It's gcc8 so the patch you linked is not really fitting. :( If you have 
time and could take a look that would be really cool.

Best Regards,

Oliver

Am 12.12.2020 um 10:26 schrieb Pablo Sebastián Greco:
>
> On 11/12/20 11:28, Oliver Weinmann via CentOS-devel wrote:
>> Hi Folks,
>>
>> For a small home project I would like to get cephadm working on my 
>> Odroid HC-2 (armhf 32). Maybe this is not going to work but I want to 
>> at least give it a try. I see that there are only arm64 packages and 
>> containers available from the Ceph repo. So I thought I just go ahead 
>> and compile the dependency packages myself and build a new container 
>> with CentOS7 arm32. Luckily there is a CentOS 7 arm32 container but I 
>> still need to compile the packages. After downloading all the src 
>> rpms i started building them and now I ended up to compile this 
>> package from the SCL repo as it is not available for arm32:
>>
>> devtoolset-8-gcc-8.3.1-3.1.el7.src.rpm
>>
>> It fails with an error of:
>>
>> checking if mkdir takes one argument... no
>> *** Configuration armv7hl-redhat-linux-gnu7E not supported
>> make[2]: *** [configure-stage1-gcc] Error 1
>> make[2]: Leaving directory 
>> `/root/rpmbuild/BUILD/gcc-8.3.1-20190311/obj-armv7hl-redhat-linux7E'
>> make[1]: *** [stage1-bubble] Error 2
>> make[1]: Leaving directory 
>> `/root/rpmbuild/BUILD/gcc-8.3.1-20190311/obj-armv7hl-redhat-linux7E'
>> make: *** [profiledbootstrap] Error 2
>> error: Bad exit status from /var/tmp/rpm-tmp.knxvjm (%build)
> This looks very close to this fix we had to add to make gcc work on 
> arm 
> https://git.centos.org/rpms/devtoolset-7-gcc/blob/c7/f/SPECS/gcc.spec#_319 
> (I'm linking to gcc7 because I can't find the other commit, but it is 
> the same thing).
> Let me know if that helps  and if it is still failing, point me to as 
> spec file or an srpm and I'll take a look.
>>
>>
>> RPM build errors:
>>     Bad exit status from /var/tmp/rpm-tmp.knxvjm (%build)
>>
>> real    13m36.412s
>> user    17m57.828s
>> sys     3m47.905s
>>
>> I looked up the build log for arm64 and so I figured out that the 
>> next step is to access a directory called arm here:
>>
>> /root/rpmbuild/BUILD/gcc-8.3.1-20190311/gcc/config
>>
>> in the extracted source. Somehow the build process thinks my system 
>> is armv7hl-redhat-linux-gnu7E instead of arm and  so it tries to 
>> access the armv7hl-redhat-linux-gnu7E directory which doesn't exist 
>> and fails. I simply created a symlink and this seems to be working.
>>
>> ln -sf arm armv7hl-redhat-linux-gnu7E
>>
>> Not sure if this is in general a bad idea. So I got a lot further. 
>> But then it fails again with this error:
>>
>> In file included from /usr/include/features.h:399,
>>                  from /usr/include/stdio.h:27,
>>                  from ../.././libgcc/../gcc/tsystem.h:87,
>>                  from ../.././libgcc/libgcc2.c:27:
>> /usr/include/gnu/stubs.h:7:11: fatal error: gnu/stubs-soft.h: No such 
>> file or directory
>>  # include <gnu/stubs-soft.h>
>>            ^~~~~~~~~~~~~~~~~~
>> compilation terminated.
>> make[3]: *** [_muldi3.o] Error 1
>> make[3]: Leaving directory 
>> `/root/rpmbuild/BUILD/gcc-8.3.1-20190311/armv7l-unknown-linux-gnueabihf/libgcc'
>> make[2]: *** [all-stage1-target-libgcc] Error 2
>> make[2]: Leaving directory `/root/rpmbuild/BUILD/gcc-8.3.1-20190311'
>> make[1]: *** [stage1-bubble] Error 2
>> make[1]: Leaving directory `/root/rpmbuild/BUILD/gcc-8.3.1-20190311'
>> make: *** [all] Error 2
>>
>> real    88m2.283s
>> user    67m23.211s
>> sys     6m7.984s
>>
>> I can't find any good info on google on how to deal with this one. 
>> Any ideas?
>>
>> Best Regards,
>>
>> Oliver
>>
>>
>>
> Pablo.