On Sun, 20 Jan 2019 22:49:36 +0100
Jeremie Courreges-Anglas <j...@wxcvbn.org> wrote:

> Thanks a lot for this.  Looks good on amd64 and sparc64 so far.  I'd
> like to hear about powerpc and mips64 (is the build successful, can the
> resulting compiler build a few ports?).  cc'ing the usual suspects. :)

My powerpc machine is building other packages, so I can't build llvm 7
now.  I might build it later.

Within the last few hours, I got a link error from graphics/kdiagram
with ports-clang 6:
/usr/ports/pobj/kdiagram-2.6.1/build-powerpc/src/KGantt/libKGantt.so.0.0: undefi
ned reference to `std::ostream& std::ostream::_M_insert<__float128>(__float128)'

This looks like a 'long double' problem.  There is more than one
long double format on powerpc.  clang has compiled long double as
__float128 and might be using the weird 128-bit format from IBM AIX,
but gcc might be using the 64-bit format (long double is double).

In the next days, I might mail a diff that fixes games/dungeon-crawl
on powerpc.  This will work with ports-gcc, but will SIGBUS with
ports-clang 6 when restoring a saved game.  I suspect that clang emits
wrong code that uses lfs or lfsx to load a misaligned float.  The
MPC7447A processor in my PowerBook G4 requires 4-byte alignment to
load or store a 4-byte float or 8-byte double; there is no required
alignment to load or store integers.

I want to know if the long double and SIGBUS problems still exist in
llvm 7.  Such problems might harm ports using qt5, because
x11/qt5/qt5.port.mk picks ports-clang before ports-gcc.

-- 
George Koehler <kern...@gmail.com>

Reply via email to