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

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

Great stuff. I was googling for those packages and couldn't find them. 
No more need to rebuild them. They were deps for CEPH. No I can start 
building ceph. :) I guess this will take a couple of days on a raspi3. ;)

Am 12.12.2020 um 14:43 schrieb Pablo Sebastián Greco:
>
> On 12/12/20 07:44, Oliver Weinmann wrote:
>> 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.
> You have the whole devtoolset-8 for armhfp here 
> https://buildlogs.centos.org/c7-devtoolset-8.armhfp/ , including the 
> srpms. I'll talk to Johnny to upload the patches to git.
> If you decide to rebuild it, aside from patience, be careful with 
> binutils (needs a patch or executables become invalid) and make (has a 
> bug that makes it parallel builds not work correctly).
> Both of those issues are fixed in the repo I pointed
>>
>> 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.
> Pablo.