gcc-armhf-pass2 fails to build: conflicting types for 'size_t' / 'wchar_t'
The APKBUILD from gcc (and binutils) look like, Alpine Linux supports
building crosscompilers out of the box.
So I have tried it the following way (some variables are probably not
needed/wrong but it isn’t really documented, so that’s what I’ve tried):
- build binutils
rm -r ~/build/*
cp /code/aports/main/binutils/*/build/
cd ~/build/
CTARGET=armhf CHOST=x86_64 CTARGET_ARCH=armhf abuild -r
apk add binutils-armhf
- build gcc-pass2
rm -r ~/build/*
cp /code/aports/main/gcc/*/build/
cd ~/build/
CTARGET=armhf CHOST=x86_64 CTARGET_ARCH=armhf BOOTSTRAP=nolibc abuild -r
… fails with:
/home/user/build/src/build-cross-pass2/./gcc/xgcc
-B/home/user/build/src/build-cross-pass2/./gcc/
-B/usr/armv6-alpine-linux-muslgnueabihf/bin/
-B/usr/armv6-alpine-linux-muslgnueabihf/lib/ -isystem /usr/armv6-alpi
ne-linux-muslgnueabihf/include -isystem
/usr/armv6-alpine-linux-muslgnueabihf/sys-include -O2 -DIN_GCC
-DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing -Wwrite-strings
-Wcast-qual
-Wstrict-prototypes -W
missing-prototypes -Wold-style-definition -isystem ./include -fPIC
-fno-inline -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector
-fPIC
-fno-inline -I. -I. -I../.././gcc -I/home/user/build/src/gcc-6.3.0/
libgcc -I/home/user/build/src/gcc-6.3.0/libgcc/.
-I/home/user/build/src/gcc-6.3.0/libgcc/../gcc
-I/home/user/build/src/gcc-6.3.0/libgcc/../include -DHAVE_CC_TLS -o
_muldi3.o
-MT _muldi3.o -MD -MP -MF _muldi3.de
p -DL_muldi3 -c /home/user/build/src/gcc-6.3.0/libgcc/libgcc2.c
-fvisibility=hidden -DHIDE_EXPORTS
In file included from /usr/include/stdio.h:22:0,
from /usr/include/fortify/stdio.h:20,
from /home/user/build/src/gcc-6.3.0/libgcc/../gcc/tsystem.h:87,
from /home/user/build/src/gcc-6.3.0/libgcc/libgcc2.c:27:
/usr/include/bits/alltypes.h:101:24: error: conflicting types for
‘size_t’
typedef unsigned _Addr size_t;
^~
In file included from
/home/user/build/src/gcc-6.3.0/libgcc/../gcc/tsystem.h:44:0,
from /home/user/build/src/gcc-6.3.0/libgcc/libgcc2.c:27:
/home/user/build/src/build-cross-pass2/gcc/include/stddef.h:216:23:
note:
previous declaration of ‘size_t’ was here
typedef SIZE_TYPE size_t;
^~
In file included from /usr/include/stdlib.h:19:0,
from /usr/include/fortify/stdlib.h:20,
from
/home/user/build/src/gcc-6.3.0/libgcc/../gcc/tsystem.h:101,
from /home/user/build/src/gcc-6.3.0/libgcc/libgcc2.c:27:
/usr/include/bits/alltypes.h:18:13: error: conflicting types for
‘wchar_t’
typedef int wchar_t;
^
In file included from
/home/user/build/src/gcc-6.3.0/libgcc/../gcc/tsystem.h:44:0,
from /home/user/build/src/gcc-6.3.0/libgcc/libgcc2.c:27:
/home/user/build/src/build-cross-pass2/gcc/include/stddef.h:328:24:
note:
previous declaration of ‘wchar_t’ was here
typedef WCHAR_TYPE wchar_t;
^
make[2]: * [Makefile:467: _muldi3.o] Error 1
make[2]: Leaving directory
‘/home/user/build/src/build-cross-pass2/armv6-alpine-linux-muslgnueabihf/libgcc’
make[1]: * [Makefile:10735: all-target-libgcc] Error 2
(from redmine: issue id 6926, created on 2017-02-24)