grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Severe bug in grub-2.12-for-windows


From: Dave Pickens
Subject: Re: Severe bug in grub-2.12-for-windows
Date: Mon, 1 Jan 2024 11:36:55 -0500
User-agent: Mozilla Thunderbird

Hi Glenn,

Some additional info that may give a clue about this issue.

I have attached two additional files:

output.genefi32.txt    output of grub-mkimage for EFI 32 bit i386-efi

output.genbios.txt     output of grub-mkimage for non EFI  i386-pc

I noted that the __stack_chk_guard output entries are quite different in the working EFI 32 bit versus the failing EFI 64 bit output.

In the non EFI output, the __stack_chk_guard entries do not appear at all. I expect this is normal.

Many thanks,

Dave


On 12/31/2023 10:18 PM, Glenn Washburn wrote:
On Sun, 31 Dec 2023 13:10:47 -0500
Dave Pickens <drummer@pobox.com> wrote:

Hi,

I am the author of Grub2Win.

In order to generate kernels from a Windows environment, I rely heavily on the Windows version (grub-2.12-for-windows)

In testing, I have discovered that the EFI 64 bit kernel generated by the grub-mkimage.exe module will not boot.
The EFI 32 bit and non EFI i386-pc kernels work well and boot with no problem.

I have submitted bug report #65072 with details, a screenshot and the script used to generate the kernels.
The text of the bug report is shown below.

Any help from you would be greatly appreciated as I would like to include the 2.12 kernels in my software soon.

Many thanks,

Dave Pickens


**********************************************************************************************


I am testing the newly released version 2.12.

Using grub-mkimage.exe to create a bootable 64 bit EFI kernel.

When the kernel is loaded at boot time it gives message

symbol '_stack_chk_guard' not found
I see in your output that grub-mkimage.exe is relocating the symbol
"_stack_chk_guard", but I'm not sure why. GRUB uses a similarly named
symbol that has two underscores in front, not one. So I'm guessing that
something is eating the first underscore, probably in some name
mangling that only happens on Windows. I see that there are other
double underscore symbols that showup with one underscore. I wonder if
this has to do with the compiler used to build the kernel.img.

Daniel how is that executable built? Compiling on Windows or cross
compiling? What compiler is used?

I don't develop on Windows so I don't know how much more help I'll be
here.

See the attached screenshot.
Then the kernel aborts.

I was extremely careful when generating the kernel to ensure that the matching libraries were used by the grub-mkimage command.
The libraries and command are all in the same directory, so it is very unlikely that a mismatch occurred.

This bug renders grub-2.12-for-windows useless.
The kernel will not boot.

I have also attached the Windows .bat script I used to generate the kernels.

Note: The 32 bit i386-efi and non EFI i386-pc kernels work fine.
The problem is strictly with the 64 bit x86_64-efi kernel.
This I find surprising.

Glenn



reply via email to

[Prev in Thread] Current Thread [Next in Thread]