Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Wed, 14 Dec 2016 04:02:39 -0600
From: "A. Wilcox" <awilfox@...lielinux.org>
To: musl@...ts.openwall.com
Subject: musl + PowerPC + GCC 5

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hello,

I am currently attempting to build GCC 5 for PowerPC, linked to musl.
 Note that this is not a cross-build, or a 'host is not target' build,
or anything resembling that.  I have the cross-compiler from PowerPC
glibc to PowerPC musl already completed.  I have built all the other
necessary utilities using it that I need (bash, coreutils, etc).  I
can chroot to the target and run programs linked to musl.

However, I cannot for the life of me compile GCC with --host musl
- --target musl.  I've done this successfully with x86_32, x86_64,
ARMv7, and MIPS, so I know that it is indeed possible to do this with
other architectures.  But it doesn't seem possible on PowerPC.

Compiler output is:

powerpc-foxkit-linux-musl-gcc   -g -O2 -mlong-double-64 -ggdb
- -fno-omit-frame-pointer -pipe -O2  -g -O2 -mlong-double-64 -ggdb
- -fno-omit-frame-pointer -pipe -DIN_GCC    -W -Wall -Wno-narrowing
- -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
- -Wold-style-definition  -isystem ./include   -fPIC -mlong-double-128
- -mno-minimal-toc -g -DIN_LIBGCC2 -fbuilding-libgcc
- -fno-stack-protector   -fPIC -mlong-double-128 -mno-minimal-toc -I.
- -I. -I../.././gcc
- -I/usr/src/sys-devel/gcc-5.4.0-r2/work/gcc-5.4.0/libgcc
- -I/usr/src/sys-devel/gcc-5.4.0-r2/work/gcc-5.4.0/libgcc/.
- -I/usr/src/sys-devel/gcc-5.4.0-r2/work/gcc-5.4.0/libgcc/../gcc
- -I/usr/src/sys-devel/gcc-5.4.0-r2/work/gcc-5.4.0/libgcc/../include
- -I/usr/src/sys-devel/gcc-5.4.0-r2/work/gcc-5.4.0/libgcc/../libdecnumber/
dpd
- -I/usr/src/sys-devel/gcc-5.4.0-r2/work/gcc-5.4.0/libgcc/../libdecnumber
- -DHAVE_CC_TLS
 -o _sd_to_tf.o -MT _sd_to_tf.o -MD -MP -MF _sd_to_tf.dep
- -DFINE_GRAINED_LIBRARIES -DL_sd_to_tf -DWIDTH=32 -c
/usr/src/sys-devel/gcc-5.4.0-r2/work/gcc-5.4.0/libgcc/dfp-bit.c
In file included from
/usr/src/sys-devel/gcc-5.4.0-r2/work/gcc-5.4.0/libgcc/dfp-bit.c:40:0:
/usr/src/sys-devel/gcc-5.4.0-r2/work/gcc-5.4.0/libgcc/dfp-bit.h:288:2:
error: #error "unknown long double size, cannot define BFP_FMT"
 #error "unknown long double size, cannot define BFP_FMT"
  ^
make[2]: *** [Makefile:684: _sd_to_tf.o] Error 1


If you will notice, there's... some wacky stuff going on.  Note how
- -mlong-double-64 is shown twice and -mlong-double-128 is shown once.
I have specified dozens of different ./configure lines in a vain
attempt to force it to use the long-double-64 that musl requires.

GCC 6 is not an option for me due to multiple C++ breakages.

As this requires almost two hours to get to the failure point
(building on native hardware, a dual 970fx @ 1.8GHz), it has begun to
annoy me trying dozens of different options and waiting days to find
it still failing.

If anyone can point me to somewhere that specifies the *actual*
parameters I need to make GCC 5 build correctly when --host and
- --target are powerpc-linux-musl, it would be deeply appreciated.

For interest, this is the current ./configure line I am passing
(though as I said before, I've tried dozens):

/usr/src/sys-devel/gcc-5.4.0-r2/work/gcc-5.4.0/configure
- --host=powerpc-foxkit-linux-musl --target=powerpc-foxkit-linux-musl
- --build=powerpc-unknown-linux-gnu --prefix=/usr
- --bindir=/usr/powerpc-foxkit-linux-musl/gcc-bin/5.4.0
- --includedir=/usr/lib/gcc/powerpc-foxkit-linux-musl/5.4.0/include
- --datadir=/usr/share/gcc-data/powerpc-foxkit-linux-musl/5.4.0
- --mandir=/usr/share/gcc-data/powerpc-foxkit-linux-musl/5.4.0/man
- --infodir=/usr/share/gcc-data/powerpc-foxkit-linux-musl/5.4.0/info
- --with-gxx-include-dir=/usr/lib/gcc/powerpc-foxkit-linux-musl/5.4.0/incl
ude/g++-v5
- --enable-languages=c,c++,fortran --enable-secureplt --disable-werror
- --with-system-zlib --enable-nls --without-included-gettext
- --enable-checking=release --with-bugurl=http://bts.adelielinux.org/
- --with-pkgversion="Adélie 5.4.0-r2" --enable-libstdcxx-time
- --enable-shared --enable-threads=posix --disable-multilib
- --disable-altivec --disable-fixed-point --with-long-double-64
- --enable-targets=all --disable-libgcj --enable-libgomp
- --disable-libmudflap --enable-libssp --disable-libcilkrts
- --disable-libmpx --disable-vtable-verify --disable-libvtv --enable-lto
- --without-isl --disable-libsanitizer

And this is the CFLAGS I am using:

CFLAGS="-O2 -mlong-double-64 -ggdb -fno-omit-frame-pointer -pipe"

though I have tried with and without -pipe, -fno-omit-frame-pointer,
and -mlong-double-64, and each combination thereof.


Thank you for any pointers in advance...

Best,
- --arw

- -- 
A. Wilcox (awilfox)
Project Lead, Adélie Linux
http://adelielinux.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJYURi6AAoJEMspy1GSK50UcboP+QFLSd8R3XMp1pLEHglVL03D
2vRIWLw2806/IXntLum2WKO4oR2tokT0GMHUXUsgX4UEBVkagU/EJnDIMygDKSjS
QCCX1DWzJ5SvGn8onGP3ly6tO4L/4AwcOpoSjs0B5kdKa7MzlDxN5NMERxEL36hB
FrXVvR7UVqVMqc479KCWsIBdqef4EIu0RbWY5/LWoCuJq126OcxRHvzdixyYttdZ
OVNVXYEZS1FZJc6xk0Ji+fSwaNjr8VkvyPXc+CSlQhcTvHYKUofKBdaUJ9d4oKjH
JRQHuLmgAhJNWT/7FijCyDSPc05U913d0uBiNZzqNYNmpbsXFEE5qOO4cMgHCEeE
WrebJkSLXxRmPjzv++YKgGzw9T3hwVZnP4DvStVXQ8z4t9QO/fRUfK59UDQzrm7c
yGSEf+gopqReJQ3uAGIlVEmR/xiG74b/8ZPb9cuMBMAox8SUjzbLTLvobi/dUmqP
kIaEoz0uS7HYJ7iB0Fx8FZrFgWCjHuVChyKMW8mKJcTV0C4ml/Q3DdonRsvdLcMg
XE2jO03JvgAkCpARfW5WEJvgoRcAFJIkUBobkAbPjq2GpVHJm4pJ8FrrM4UQHLIj
wXqAvQ2IIomAReVtJrehGFfAWiZfL6dO7jMsR7vXS2g8lc5UZgW7erYxKHgYUpJD
3I91a/5WPlRBqsouwpBe
=ZkA/
-----END PGP SIGNATURE-----

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.