Subject: Re: bug#45817: 28.0.50; Native fails

From: Andrea Corallo <[email-masked]>
Date: Thu, 14 Jan 2021 14:31:30 +0000

Eli Zaretskii <[email-masked]> writes:

>> From: Andrea Corallo <[email-masked]>
>> Cc: "Kirill A. Korinsky" <[email-masked]>, [email-masked]
>> Date: Thu, 14 Jan 2021 09:33:48 +0000
>> 
>> > Is this specific to macOS?
>> >
>> > In any case, if it's known that specific versions of GCC cause
>> > problems on specific platforms, we should reject those versions (for
>> > the libgccjit usage purposes) in configure, I think.
>> 
>> We do, not based on the version but (even better I think) we run a
>> functional test at configure time.  The test use libgccjit to produce a
>> shared, then this is loaded and used to ensure all the complete
>> mechanism is functional.
>
> Yes, but such tests can only verify that the basics work, whereas the
> OP seemed to indicate that it generally works, but fails in some
> subtle situation.  If libgccjit you are testing at configure time only
> "mostly" works, you will be unable to detect that with simple tests.
> For such subtly broken versions of libgccjit, we have no practical
> means but looking at their version.

I agree, but so far I've no information of a broken libgccjit version
that we don't manage to work around.  I'm talking about if compiled and
installed from source code.  Some distros showed to have issues with
certain packaged versions, but those fails immediately with the
configure test we have.

If we find a libgccjit version we know we can't work with I agree we
should reject the version.

For this specific purpose I've introduced (in GCC10) an entry point in
libgccjit that is returning the version.

This is exposed to Lisp as `comp-libgccjit-version' so for GCC>=10 we
can control this also dynamically and not only at configure time.

  Andrea