Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 3 Apr 2016 21:00:31 -0700
From: Isaac Dunham <ibid.ag@...il.com>
To: musl@...ts.openwall.com
Subject: Re: musl libc.so working and almost building with current pcc

On Sun, Apr 03, 2016 at 08:04:48PM -0400, Rich Felker wrote:
> On Sun, Apr 03, 2016 at 02:47:56PM -0700, Isaac Dunham wrote:
> > Hello,
> > Current (20160403) pcc almost builds a working libc.so.
> > 
> > (Unfortunately, it's still necessary to fix the pcc-libs package
> > by updating config.guess/config.sub and adding protected visibility;
> > I didn't add protected visibility and forced -fPIC, though the build
> > system seems to add -fPIC for some files.)
> 
> Everything in libpcc.a needs to be _hidden_, not protected. The issue
> is not whether it binds locally but whether it produces
> wrongly-exported symbols in shared libs it gets linked into.

I remembered the general problem, but not the exact solution (had hidden
and protected mixed up).

By the way, checking things, yes, adding '-fPIC' to CFLAGS is still
necessary.

> > However, PCC reports a major internal compiler error at line 1382
> > of ldso/dynlink.c (which is conditional on FDPIC support).
> > If I convert the "if (DL_FDPIC) ..." to an ifdef, I get a working libc.
> > (src/complex/catanf.c is now properly compiled.)
> 
> It's always defined (to either 0 or 1) so #ifdef produces wrong code.
> Did you try #if DL_FDPIC? That should work but there's obviously some
> serious pcc bug going on here, probably preprocessor breakage again.

Yes, I used '#if DL_FDPIC' (not #ifdef).

> FWIW pcc used to work fine but they keep breaking it, usually the
> preprocessor.

I know.

Thanks,
Isaac Dunham

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.