Subject: bug#42761: 28.0.50; [feature/native-comp] allow customizing command line/driver options?

From: Andrea Corallo <[email-masked]>
Date: Sun, 09 Aug 2020 07:58:20 +0000

Andreas Fuchs <[email-masked]> writes:

> On Sat, Aug 8, 2020 at 3:31 PM Andrea Corallo <[email-masked]> wrote:
>> Regarfing the gcc version: ne option would be to just ifdef the
> body of
>> add_driver_options using
>> LIBGCCJIT_HAVE_gcc_jit_context_add_command_line_option and making
> clear
>> that the customize is effective only with GCC>=9.
>>
>> But I think would be better to raise an error if
>> comp-native-driver-options is not empty and
>> gcc_jit_context_add_command_line_option is not available.
>>
>> I think we should make this clear in the customize doc.
>
> Agreed - that makes sense. I've adjusted the patch accordingly, and
> de-untabified the files that I touched (sorry about the whitespace
> churn,
> leftover customization from another C codebase):
>
> https://github.com/emacs-mirror/emacs/compare/feature/
> native-comp...antifuchs:allow-setting-driver-options

>From the patch:

> + #ifdef LIBGCCJIT_HAVE_gcc_jit_context_add_command_line_option
> + DEF_DLL_FN (void, gcc_jit_context_add_driver_option,
> +             (gcc_jit_context *ctxt, const char *optname));
> + #endif

[...]

> + #ifdef LIBGCCJIT_HAVE_gcc_jit_context_add_command_line_option
> +   LOAD_DLL_FN (library, gcc_jit_context_add_driver_option);
> + #endif

The above should not be ifdef'd as they allow the function to be used
only if present in the library in use at runtime on Windows systems.

Unfortunatelly we do not have such system for Linux where the decision
to include the call is done at compile time.  So unless we implement
that too also the call site has to be a little changed to handle this.

Please have a look for that into in Fcomp_libgccjit_version where we use
gcc_jit_version_*.  These are the only "optional" libgccjit entry point
we used so far.

>> Do you already have copyright paperwork done?
>
> I signed copyright assignment papers for gnus back in 2001, but those
> are only valid for those changes to gnus. I've requested assignment
> paperwork for GNU Emacs changes now.

Super!

Thanks

  Andrea

-- 
[email-masked]