This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports 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]

Fwd: [PATCH 1/2] AArch64 glibc port


Re-sending.  No bounce received, perhaps some of my google email is
being treated as spam? I''ve compressed the patch on the off chance
that the original was dropped because of its size, but I would have
expected a bounce message if that was the case.

---------- Forwarded message ----------
From: Marcus Shawcroft <marcus.shawcroft@linaro.org>
Date: 7 November 2012 12:50
Subject: Re: [PATCH 1/2] AArch64 glibc port
To: joseph@codesourcery.com
Cc: libc-ports@sourceware.org


On 3 November 2012 18:16, Joseph S. Myers <joseph@codesourcery.com> wrote:

> Did you check the set of exported symbols against other 64-bit platforms
> as I suggested?  I note, for example, that you're missing an
> __sqrtl_finite symbol in libm.

Added, along with the missing strong_alias in e_sqrtl.c.

I've compared the abilist files against mips64 and they look sane to me.

> With that done, "Free Software Foundation, Inc." can now always go on the
> same line as the "Copyright (C) <years>"; it was only long lists of years
> that required having it sometimes on a separate line.

Moved.

>> * libm-test-ulps regenerated, bringing in clog definitions and setting
>> sqrt ulps to 0.
>
> You still have sqrt ulps listed.  That still suggests something is wrong
> (either not removing the old ulps properly before regenerating, or an
> actual problem with sqrtl).

My mistake, I've re-generated them all from scratch.

> Now that I've fixed bug 3439, this will need another update to follow the
> new mechanism now used for these macros.

Done.

> (Depending on the order in which the patches go in, one of the other of us
> will also need to do an fclrexcpt.c update in line with my patch
> <http://sourceware.org/ml/libc-alpha/2012-11/msg00057.html>.)
>
> That really shouldn't be a hard conversion.

Done

>> * test-double.out
>>   38 instances of underflow not set on fma related tests.
>
> Since you've removed the optimized functions so they can be dealt with
> after the main port is in, you'll be using
> sysdeps/ieee754/ldbl-128/s_fma.c (which is generally unlikely to be a good
> idea, except on any systems implementing binary128 floating-point in
> hardware - most architectures using ldbl-128 in software make sure to
> override the choice of fma implementation, with the dbl-64 version if they
> don't have hardware fma).

Switched s_fma version.  With the patch to FP_PACK_SEMIRAW discussed
earlier we are down to 6 errors in test-ldouble and 3 in test-ildoubl
remain, see attachment.


>>   27 instances of underflow set.  These all appear to be related to
>> scalbn setting underflow when not expected.
>>
>> * test-ildoubl.out
>>   3 errors for ULPs on csqrt tests.
>
> However, it's possible that even with a fully correct soft-fp port there
> might be failures for these tests (that is, that there are currently
> unfixed bugs relating to ldbl-128 and shown by the testsuite) - I don't
> know whether these tests have clean results for other ldbl-128
> architectures right now or not.
>
> Missing const - should have type "const fenv_t *".  I just added conform/

Added.

>> +#ifdef __AARCH64EB__
>> +#define __BYTE_ORDER __BIG_ENDIAN
>> +#else
>
> In general we indent preprocessor directives inside conditionals, so
> "# define" inside #if.

Updated throughout.

>> +# define FE_NOMASK_ENV  ((__const fenv_t *) -2)
>
> Since 2012-01-07 we no longer use __const, just plain const.

Updated, this was the only instance in the port.

>
>> +   __builtin_frame_address (0) returns the value of the hard frame
>> +   pointer, which will point at the location of the saved PC on the
>> +   stack.  Below this in memory is the remainder of the linkage info,
>> +   occupying 12 bytes.  Therefore in order to address from
>> +   CURRENT_STACK_FRAME using "struct layout", we need to have the macro
>> +   return the hard FP minus 12.  Of course, this makes no sense
>> +   without the obsolete APCS stack layout...  */
>
> References to "obsolete APCS stack layout" make no sense in a new port.

Done.

>> +#define __ASSUME_PREAD                 1
>> +#define __ASSUME_PWRITE                        1
>
> Nothing seems to test these macros, so remove them.

Done.

Revised patch and ChangeLog attached.

Thanks
/Marcus

Attachment: glibc-v3-changelog.txt
Description: Text document

Attachment: maths-fails.txt
Description: Text document

Attachment: glibc-v3-patch.txt.gz
Description: GNU Zip compressed data


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