As part of portability test suite,
I test an open-sourced library against PowerPC using qemu
,
in order to ensure it still works properly on big-endian systems.
This used to work fine up to yesterday.
This morning, after a code change which merely involved updating some comments, powerpc
compilation fails. The test never reaches qemu
stage.
In file included from /usr/include/stdlib.h:24:0,
/usr/include/features.h:367:25: fatal error: sys/cdefs.h: No such file or directory
compilation terminated.
Looking at the log, there is indeed a change between yesterday and today : gcc
version has been upgraded.
Yesterday, it was :
Setting up gcc-4.8-powerpc-linux-gnu-base (4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up cpp-4.8-powerpc-linux-gnu (4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up cpp-powerpc-linux-gnu (4:4.8.2-1) ...
Setting up binutils-powerpc-linux-gnu (2.24-5ubuntu13cross0.10.1) ...
Setting up libc6-powerpc-cross (2.19-0ubuntu2cross1.1) ...
Setting up libgcc1-powerpc-cross (1:4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up libgomp1-powerpc-cross (4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up libatomic1-powerpc-cross (4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up libasan0-powerpc-cross (4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up libgcc-4.8-dev-powerpc-cross (4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up gcc-4.8-powerpc-linux-gnu (4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up libc6-ppc64-powerpc-cross (2.19-0ubuntu2cross1.1) ...
Setting up linux-libc-dev-powerpc-cross (3.13.0-13.33cross1.1) ...
Setting up libc6-dev-powerpc-cross (2.19-0ubuntu2cross1.1) ...
Setting up libc6-dev-ppc64-powerpc-cross (2.19-0ubuntu2cross1.1) ...
Setting up lib64gcc1-powerpc-cross (1:4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up lib64gomp1-powerpc-cross (4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up lib64atomic1-powerpc-cross (4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up lib64asan0-powerpc-cross (4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up lib64gcc-4.8-dev-powerpc-cross (4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up gcc-4.8-multilib-powerpc-linux-gnu (4.8.4-2ubuntu1~14.04.1cross0.11.2) ...
Setting up gcc-powerpc-linux-gnu (4:4.8.2-1) ...
Now, it is :
Setting up gcc-5-powerpc-linux-gnu-base:amd64 (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up cpp-5-powerpc-linux-gnu (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up cpp-powerpc-linux-gnu (4:5.3.1-1ubuntu1) ...
Setting up binutils-powerpc-linux-gnu (2.26.1-1ubuntu1~16.04.8) ...
Setting up gcc-5-cross-base (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libc6-powerpc-cross (2.23-0ubuntu3cross1) ...
Setting up libgcc1-powerpc-cross (1:5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libgomp1-powerpc-cross (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libatomic1-powerpc-cross (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libasan2-powerpc-cross (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libstdc++6-powerpc-cross (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libubsan0-powerpc-cross (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libgcc-5-dev-powerpc-cross (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up gcc-5-powerpc-linux-gnu (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up gcc-powerpc-linux-gnu (4:5.3.1-1ubuntu1) ...
Notice the move from 4.8.4 to 5.4.0 (though there are a few 5.3.1 in the new mix too).
This seems to break powerpc
cross compilation for me. I wouldn’t surprised if other projects with the same need meet the same fate.