Subject: Re: bug#48578: 28.0.50; Native-compiled files of some preloaded files not loaded at dump time

From: Andrea Corallo <[email-masked]>
Date: Thu, 27 May 2021 11:57:22 +0000

Eli Zaretskii <[email-masked]> writes:

>> From: Andrea Corallo <[email-masked]>
>> Cc: Eli Zaretskii <[email-masked]>, [email-masked]
>> Date: Tue, 25 May 2021 13:22:39 +0000
>> 
>> diff --git a/src/comp.c b/src/comp.c
>> index 340ed85038..8e40ea0f25 100644
>> --- a/src/comp.c
>> +++ b/src/comp.c
>> @@ -4008,15 +4008,15 @@ DEFUN ("comp-el-to-eln-rel-filename", Fcomp_el_to_eln_rel_filename,
>>  {
>>    CHECK_STRING (filename);
>>  
>> -  /* Use `file-truename' or fall back to `expand-file-name' when the
>> -     first is not available (bug#44701).
>> -
>> -     `file-truename' is not available only for a short phases of the
>> -     bootstrap before file.el is loaded, given we do not symlink
>> -     inside the build directory this should work.  */
>> -  filename = NILP (Ffboundp (intern_c_string ("file-truename")))
>> -    ? Fexpand_file_name (filename, Qnil)
>> -    : CALL1I (file-truename, filename);
>> +  /* `file-truename' is not available only during bootstrap before
>> +     file.el is loaded.  */
>> +#ifndef WINDOWSNT
>> +  char *file_normalized = realpath (SSDATA (filename), NULL);
>> +#else
>> +  char *file_normalized = ??? ;
>> +#endif
>> +  filename = Fexpand_file_name (build_string (file_normalized), Qnil);
>> +  xfree (file_normalized);
>>  
>>    if (NILP (Ffile_exists_p (filename)))
>>      xsignal1 (Qfile_missing, filename);
>
> Thanks, this works.  But I have a few questions/comments:
>
>   . why do you use Fexpand_file_name _after_ realpath? shouldn't we
>     call it before realpath instead?

Right that's correct.

>   . we need to encode the file name before passing it to realpath, and
>     decode the result, right?

Correct

>   . realpath could potentially return NULL, and we should check for
>     that, and return the result of Fexpand_file_name if it does

Of course

>   . we don't need to support remote files here via file-handlers,
>     right?

Correct, so far we do not support it.

> If you agree with the above, I will prepare a proper patch and install
> it, including the necessary changes for WINDOWSNT.

Agreed, thanks.

  Andrea