[syslinux] [PATCH] efi/main.c: include <efisetjmp.h>

Ady ady-sf at hotmail.com
Tue Mar 24 16:21:31 PDT 2020


> So essentially my fix to make syslinux build against 3.0.10 is of
> course also relevant to build against gnuefi 3.0.11.
 
 
Perhaps I need to be more clear. I was not commenting on your patch. I 
was hinting that, if Syslinux were to use a more up-to-date gnu-efi 
commit than what it currently is using, then it should not be that of 
version 3.0.10, but rather a newer one.

Additionally, we should remember that the last official pre-release 
that built-and-works successfully was 6.04-pre1, as pre2 and pre3 
failed in some way or another. Most packages available in Linux distros 
are still based on 6.04-pre1 plus selected patches and fixes (some of 
them provided by themselves, rather than expecting upstream Syslinux to 
work on its own).

Moreover, the "efisetjmp.h" file in gnu-efi was not provided at the 
time Syslinux 6.04-pre1 was officially built, because the gnu-efi 
sub-module in Syslinux was pointing to an older commit upstream (before 
the file was included in gnu-efi).

All this means that your proposed patch might apply to some particular 
package / snapshot, but it might not be appropriate for others 
(including official upstream 6.04-pre1). For instance, Debian is 
currently using its own gnu-efi version in order to build its own 
Syslinux packages.

I should also mention that the "inc/efisetjmp.h" file in upstream 
gnu-efi has a less-than-stable history:

 https://sf.net/p/gnu-efi/code/ci/9b63de/log/?path=/inc/efisetjmp.h 

Right from its initial inclusion, the file follows a different ABI than 
the one used by Syslinux (AFAIU). Then several incompatibilities were 
discovered by other contributors.

The commit that you referenced in your patch [486ba3] simply 
"un-includes" the file in one place and "includes" it in another, 
without any sort of explanation as to the reason to do such thing (i.e. 
no specific mention of any kind of conflict/problem/reasoning).

BTW, I have a gut feeling (based on upstream gnu-efi's discussions and 
this file's history) that this file is part of the conflicts we have 
seen between definitions in upstream gnu-efi vs. their usage in 
Syslinux.

Finally, the special git repository that Peter is using in upstream 
Syslinux for gnu-efi has not been updated for quite some time, making 
that repo a problem rather than a solution.

At any rate, this "inc/efisetjmp.h" file seems to be a source of 
problems for Syslinux, and therefore your proposed patch should be only 
considered when explicitly relevant (as opposed to "blindly" applying 
it without real tests/considerations, which is something we see quite 
frequently downstream, unfortunately).

Regards,
Ady.



More information about the Syslinux mailing list