Date: Wed, 13 May 2020 10:30:34 -0400 From: Rich Felker <dalias@...ifal.cx> To: Anders Magnusson <ragge@...d.ltu.se> Cc: John Arnold <iohannes.eduardus.arnold@...il.com>, musl@...ts.openwall.com, pcc@...ts.ludd.ltu.se Subject: Re: Re: [Pcc] PCC unable to build musl 1.2.0 (and likely earlier) On Wed, May 13, 2020 at 09:10:40AM +0200, Anders Magnusson wrote: > Den 2020-05-12 kl. 23:21, skrev Rich Felker: > >Thanks. Adding pcc list to cc. > > > >On Tue, May 12, 2020 at 03:59:36PM -0500, John Arnold wrote: > >>With an i386 PCC 1.2.0.DEVEL built from source from > >>http://pcc.ludd.ltu.se/ftp/pub/pcc/pcc-20200510.tgz, I was unable to > >>build an i386 musl 1.2.0. The compiler first hits this error: > >> > >>../include/limits.h:10: error: bad charcon > >> > >>This line was the only change made in commit cdbbcfb8f5d, but it has a > >>lengthy commit message about the proper way of determining CHAR_MIN > >>and CHAR_MAX. > >I think this is clearly a PCC bug, one they can hopefully fix. The > >commit message cites the example from 22.214.171.124: > Can you please sen med the offending line? #if '\xff' > 0 > >>Reverting that change fixes the issue with limits.h, but PCC then runs > >>into another problem: > >> > >>src/complex/catan.c, line 105: operands of = have incompatible types > >>src/complex/catan.c, line 105: cannot recover from earlier errors: goodbye! > >Are there any warnings before this? Perhaps pcc is not aware of > >__builtin_complex and treating it as an implicit declaration of a > >function returning int? But then int should still convert to complex > >double just fine, so I think the problem is just a weird bug in PCC > >with complex types. > Same here, can you send me the line that causes the bug? > And true, __builtin_complex is not recognized in pcc. w = CMPLX(w, 0.25 * log(a)); where: #define __CMPLX(x, y, t) (__builtin_complex((t)(x), (t)(y))) #define CMPLX(x, y) __CMPLX(x, y, double) Is there another way PCC can provide a mechanism to implement CMPLX? Or can __builtin_complex be added? > >>Undoing this change results in hitting yet more errors: > >>/tmp/ctm.AkDmnc: Assembler messages: > >>/tmp/ctm.AkDmnc:50: Error: bad register name `%%ax' > >Which file is this in? I think it's inline asm expanded from > >somewhere, maybe the new x86 math functions, and it might be something > >we're doing not quite right or a PCC bug. We could suppress the asm > >with pcc (or with a configure test for the bug) if it's not something > >they can fix. > Pcc recognizes gcc extended assembler, but it is more strict than > gcc so it sometimes > reveals bugs that gcc don't catch. > > ....and same here, please send me what fails so that I can fix the bugs :-) OK, still waiting on report of what this is. Thanks! Rich
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.