On Sun, Jan 04, 2015 at 08:24:54PM +0100, Anders Magnusson wrote: > Iain Hibbert skrev den 2015-01-04 18:47: > >On Sat, 3 Jan 2015, Isaac Dunham wrote: > > > >>Hello, > >>With recent pcc (built from cvs since 1.1.0 was released), I've tried > >>building musl a few times, but the shared build consistently dies > >>on src/complex/catanf.c (command wrapped to avoid getting mangled > >>in the mail): > >>$ make > >>pcc -std=c99 -nostdinc -ffreestanding -fexcess-precision=standard \ > >> -frounding-math -D_XOPEN_SOURCE=700 -I./arch/i386 -I./src/internal \ > >> -I./include -Os -pipe -fomit-frame-pointer -fno-unwind-tables \ > >> -fno-asynchronous-unwind-tables -Wa,--noexecstack -march=i486 \ > >> -Werror=implicit-function-declaration -Werror=implicit-int \ > >> -Werror=pointer-sign -Werror=pointer-arith -fno-stack-protector \ > >> -fPIC -DSHARED -c -o src/complex/catanf.lo src/complex/catanf.c > >>src/complex/catanf.c, line 80: compiler error: bad STCALL hidden reg > >>error: /usr/libexec/ccom terminated with status 1 > >>Makefile:124: recipe for target 'src/complex/catanf.lo' failed > >>make: *** [src/complex/catanf.lo] Error 1 > >> > >>Line 80 is the closing bracket of _redupif(), which is fairly basic > >>floating point math. > >it will likely be something inside that function that does not show up > >until the function is being emitted. STCALL is something to do with > >structure arguments, which some kinds of floating point are big enough to > >be considered.. so I guess some kind of double or long double arguments? > > > This assertion occurs because pass2 code expects a hidden argument to be > present when calling a struct return function, but the hidden arg cannot be > found in the argument list, and in this special case the hidden arg shall be > in a register. > > I would like a preprocessed output from the above to diagnose further (which > means to just add a -E to the line above). Ok, will send. Thanks! Isaac Dunham