Corrected a typo in the original message and forgot to mention this is Alpine Linux v3.4.4 On Sat, 2016-10-08 at 00:49 -0400, Nick wrote: > Any insight into building GCC on Alpine Linux? I see it uses musl > instead of glibc, not sure if that matters. > > I've built GCC on various distros (RH, CentOS, Fedora, Ubuntu, Gentoo) > without issue. Using the same steps on Alpine does not work for me. > > Here's what I tried: > > First I installed the following in Alpine Linux: > apk add build-base gcc g++ abuild binutils binutils-doc gcc-doc make > coreutils > > Then these steps: > - tar xjf gcc-4.9.3.tar.bz2 > - mkdir "build" > - cd "build" > - /home/build/gcc/gcc-4.9.3/configure > --prefix=/home/build/build_toolchain --enable-threads=posix --enable-tls > --enable-languages=c,c++ --disable-multilib > - make > > This is what I get: > <snip> > > make[4]: Leaving directory > '/home/build/gcc/build/x86_64-unknown-linux-gnu/libgcc' > make[3]: Leaving directory > '/home/build/gcc/build/x86_64-unknown-linux-gnu/libgcc' > mkdir -p -- x86_64-unknown-linux-gnu/libgomp > Checking multilib configuration for libgomp... > Configuring stage 1 in x86_64-unknown-linux-gnu/libgomp > configure: creating cache ./config.cache > checking for --enable-version-specific-runtime-libs... no > checking for --enable-generated-files-in-srcdir... no > checking build system type... x86_64-unknown-linux-gnu > checking host system type... x86_64-unknown-linux-gnu > checking target system type... x86_64-unknown-linux-gnu > checking for a BSD-compatible install... /usr/bin/install -c > checking whether build environment is sane... yes > checking for a thread-safe mkdir -p... /bin/mkdir -p > checking for gawk... awk > checking whether make sets $(MAKE)... yes > checking for > x86_64-unknown-linux-gnu-gcc... /home/build/gcc/build/./gcc/xgcc > -B/home/build/gcc/build/./gcc/ > -B/home/build/build_toolchain/x86_64-unknown-linux-gnu/bin/ > -B/home/build/build_toolchain/x86_64-unknown-linux-gnu/lib/ > -isystem /home/build/build_toolchain/x86_64-unknown-linux-gnu/include > -isystem /home/build/build_toolchain/x86_64-unknown-linux-gnu/sys-include > checking for C compiler default output file name... a.out > checking whether the C compiler works... configure: error: in > `/home/build/gcc/build/x86_64-unknown-linux-gnu/libgomp': > configure: error: cannot run C compiled programs. > If you meant to cross compile, use `--host'. > See `config.log' for more details. > Makefile:21021: recipe for target 'configure-stage1-target-libgomp' > failed > make[2]: *** [configure-stage1-target-libgomp] Error 1 > </snip> > > > I looked in the files > in /home/build/gcc/build/x86_64-unknown-linux-gnu/libgomp but didn't > find any more clues. > > I tried to get the make system to output the contents of the test file > (conftest.c) but could only get it for the top-level directory, not > libgomp. > > So I created a tiny program and tested the command above: > > alpine:~/gcc/build$ cat test.c > #include <stdio.h> > > int main() > { > printf("Hello, world\n"); > return 0; > } > > alpineb1:~/gcc/build$ /home/build/gcc/build/./gcc/xgcc -B/home/bui > ld/gcc/build/./gcc/ -B/home/build/build_toolchain/x86_64-unknown-l > inux-gnu/bin/ > -B/home/build/build_toolchain/x86_64-unknown-linux-gnu/lib/ > -isystem /home/b > uild/build_toolchain/x86_64-unknown-linux-gnu/include > -isystem /home/build/build_toolchain/x86_64-unknown-linux-gnu/sys-include ./test.c > > alpineb1:~/gcc/build$ ./a.out > -ash: ./a.out: not found > > alpineb1:~/gcc/build$ file ./a.out > ./a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), > dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, not > stripped > > alpineb1:~/gcc/build$ ldd ./a.out > ldd: ./a.out: Not a valid dynamic program > > So it seems to me that there's some type of incompatibility (or maybe a > low-level missing dependency?) with the binary that's produced. > > > Any suggestions are appreciated. > >