Hi Jakub,

> On Wed, Apr 09, 2025 at 02:22:16PM +0200, Rainer Orth wrote:
>> > Here is what I'm testing as an incremental fix, so far OK on x86_64-darwin
>> > and powerpcle64 (GLIBC 2.34) .. others in progress.  Does it help the
>> > Solaris cases?
>> 
>> I'll give it a try.  Here's what I have (I believe it's more readable in
>> some cases), but as I said something's not right yet (probably something
>> very stupid).
>
> Yes, most importantly
>
>>  #if !defined (HAVE_STRFROMF128)
>> -# if !USE_QUADMATH
>> +static int
>> +strfromf128 (char *s, size_t n, const char *f, long double v)
>
> this long double should have been GCOB_FP128.

ugh, I knew it would be something dumb ;-)

> Anyway, I think there should be consistency in what we use, so like
> libgcobol-fp.h specifies, IEEE quad long double should have highest
> priority, then _Float128 with *f128 APIs, then libquadmath.
> And when we decide to use say long double, we shouldn't mix that with
> strfromf128/strtof128.

Makes perfect sense.

> So, here is an updated patch based on your patch, so far briefly
> tested on x86_64 with recent glibc (i.e. with the *f128 APIs).

I've successfully bootstrapped that now on both Solaris/amd64 and
Solaris/sparcv9, with --enable-languages=cobol --enable-libgcobol and a
bunch of patches (to be posted shortly) that enable cobol and libgcobol
compilation on Solaris.

Test results are not stellar so far, though:

* amd64-pc-solaris2.11, which uses the libquadmath path:

                === cobol Summary for unix ===

# of expected passes            2925
# of unexpected failures        108
# of expected failures          6
# of unresolved testcases       72

  According to Iain, Darwin/x86_64 is similar, though.

* sparcv9-sun-solaris2.11, which used the 128-bit long double path:

                === cobol Summary for unix ===

# of expected passes            2516
# of unexpected failures        440
# of expected failures          6
# of unresolved testcases       126

  I do have a WIP patch to support __float128 on SPARC (which I'd use
  with Iain's initial patch), but that's no longer exercised now that
  128-bit long double takes precedence.

I haven't even started looking into the failures since my initial goal
was to get both cobol and libgcobol to compile on Solaris at all.  I
suppose SPARC being the first big-endian and strict-alignment target
accounts for a considerable part of the failures.

Thanks a lot for following through with this.

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to