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

Fri Dec 11 14:28:14 UTC 2020
Oliver Weinmann <oliver.weinmann at me.com>

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)


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