Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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 6.4.4.4:
> 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

Your e-mail address:

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