This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v4 00/13] port C-SKY to glibc


On Thu, Sep 13, 2018 at 12:36:15PM +0000, Joseph Myers wrote:
> A different dynamic linker name should be used because the ABI to libc and 
> other glibc libraries is incompatible; if you have a different dynamic 
> linker name for every ABI, that allows distributions using Debian-style 
> multiarch directory arrangements to have libraries for both ABIs installed 
> simultaneously.  Then, because you can't sensibly use soft-float binaries 
> with hard-float libm, you should have the conditionals in bits/fenv.h (a 
> single installed header should be set up to work for both ABIs) so that it 
> doesn't define macros for unsupported features for soft float.
> 
> Once you have the conditionals in bits/fenv.h, the glibc testsuite will 
> automatically disable tests for unsupported features for soft float, and 
> internal calls to fenv.h functions within libm will automatically be 
> optimized out for soft float.
>

OK. I've add different dynamic linker name name for hard-float and put
some conditionals in bits/fenv.h, seems work fine.
 
> It's not required, but it's a good idea to make binutils check for ABI 
> incompatibilities at static link time, using GNU object attributes, which 
> GCC should generate based on the ABI selected when compiling.  See how 
> powerpc and mips handle this, for example.  That helps protect against 
> user mistakes (linking .o files for different ABIs together) by making the 
> linker complain about such mixing.

OK. I'll try to add some check here.

> The Argument Passing section of the ABI document you provided doesn't seem 
> to say anything about the different argument passing for hard float, so I 
> think you need to update the document to cover that issue (likewise for 
> return values if they are handled differently for hard float).  (And the 
> table in 2.2.1.2 would presumably also need to say what's used for 
> argument passing.)

OK. We will update it.

> We want the build-many-glibcs.py build to succeed.  You'll need to 
> investigate why you see this problem.  The -profile option is defined in 
> gcc/config/gnu-user.opt which all *-linux* targets should be using, so 
> you'll need to look at why you get an error there.
>
> > > > 5. The following cases fail due to gcc optimize change the sequence of
> > > >    -a * b to -(a * b) and got 1ulps error.
> > > >    math/test-double-tgamma
> > > >    math/test-float-tgamma
> > > >    math/test-float32-tgamma
> > > >    math/test-float32x-tgamma
> > > >    math/test-float64-tgamma
> > > >    math/test-ldouble-tgamma
> 
> No, you just need to get a fix for the problem checked in upstream; no 
> need to file a bug in GCC Bugzilla.

OK. My colleague Xianmiao Qu is working on these problems, will be fixed soon.

Thanks,
Han Mao


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]