Subject: Re: bug#69689: 30.0.50; cannot native compile with -flto in native-comp-compiler-options

From: StrawberryTea <[email-masked]>
Date: Sun, 10 Mar 2024 12:32:25 -0500

Hello Eli,

Well, I wanted to ask here because I wanted to check if anyone else is
able to compile elisp files with -flto in native-comp-compiler-options.
I believe that the error is related to the native-comp branch, as a
Gentoo developer from the libgccjit mailing list has already confirmed
that libgccjit is compiled with lto support. The matter at hand is not
about Emacs's inherent support for -flto, but rather if the native-comp
branch can compile Elisp using the -flto option.

Sincerely,
StrawberryTea

Eli Zaretskii <[email-masked]> writes:

>> From: StrawberryTea <[email-masked]>
>> Date: Sat, 09 Mar 2024 21:19:57 -0600
>>
>> Hello Emacs developers,
>>
>> I am trying to native compile Emacs with the -flto flag patched into the
>> native-comp-compiler-options variable. However, when I do this, I get
>> the following error:
>>
>> /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/app-editors/emacs-30.0.9999/temp/ccW8pLE7.o: plugin needed to handle lto object
>> /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/app-editors/emacs-30.0.9999/temp/ccW8pLE7.o: plugin needed to handle lto object
>> lto1: internal compiler error: original not compressed with zstd
>> 0x11b434d internal_error(char const*, ...)
>>     ???:0
>> 0x128df56 cgraph_node::get_untransformed_body()
>>     ???:0
>> 0x128d4c3 cgraph_node::expand()
>>     ???:0
>> 0x19c264f symbol_table::compile()
>>     ???:0
>> 0x19b6f50 lto_main()
>>     ???:0
>> Please submit a full bug report, with preprocessed source (by using -freport-bug).
>> Please include the complete backtrace with any bug report.
>> See <https://bugs.gentoo.org/> for instructions.
>> make[4]: *** [/var/tmp/portage/app-editors/emacs-30.0.9999/temp/ccZwblRQ.mk:2: /var/tmp/portage/app-editors/emacs-30.0.9999/temp/ccq4BEJb.ltrans0.ltrans.o] Error 1
>> lto-wrapper: fatal error: make returned 2 exit status
>> compilation terminated.
>> collect2: fatal error: lto-wrapper returned 1 exit status
>> compilation terminated.
>> libgccjit.so: error: error invoking gcc driver
>
> Why do you think this is an Emacs problem?  The error messages seem to
> imply the problem is with your installation of libgccjit or
> GCC/Binutils in general.  The request to submit a bug report cites a
> Gentoo bug address, so I think you should report it there first.
>
> Paul, does Emacs even support -flto builds?