tinycc-devel
[Top][All Lists]
Advanced

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

Re: [Tinycc-devel] ARM64 PE32+ and UEFI support


From: Barath Aron
Subject: Re: [Tinycc-devel] ARM64 PE32+ and UEFI support
Date: Wed, 23 Aug 2017 18:16:09 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1



On 08/23/2017 02:57 PM, grischka wrote:
Andrei E. Warkentin wrote:
Dear tinycc-devel,

A few more fixes for your review.

- support for generating ARM64 PE32+ images
- support for generating X64, ARM64, IA32 (untested) and ARM (untested)
UEFI images.

I don't think we want relocation entries by default in x86/x86-64
executables.  Maybe you can support -Wl,-no-strip-base-relocs

I would suggest this from ld(1):

       -q
       --emit-relocs
Leave relocation sections and contents in fully linked executables. Post link analysis and optimization tools may need this information
           in order to perform correct modifications of executables.  This
           results in larger executables.

I'm also interested in this feature.

Regard,
Áron




Also pe32.h and the longish portions with IMAGE_SUBSYSTEM_*/IMAGE_FILE_*
produce lots of visual clutter.  Maybe for something that changes once
in 10 years, we can use just hex numbers as before.

Other than that the patch seems to make sense.  On which system did
you test this?

-- gr

https://github.com/andreiw/tinycc/commit/5267c3c291841cb3c3ad1ec88b4ab91a16afc44b
(PE: clean up characteristcs/subsystem code)
https://github.com/andreiw/tinycc/commit/2df4e01b400211cce90b3d427bf06dbad35bb453
(PE: fix UEFI image generation)
https://github.com/andreiw/tinycc/commit/5cf413024d4a4a163cbf3a4f4329d75f3dd640f9
(PE: experimental ARM64 support)


The UEFI stuff was tested by building the following simple app (you need
Tiano edk2 for the headers).

$ ./x86_64-win32-tcc -I ../edk2/MdePkg/Include/ -I
../edk2/MdePkg/Include/X64/ ../efitest.c -Wl,-subsystem=efiapp -nostdlib
-o ../efitest.x64.efi  -v

$ ./arm64-win32-tcc -I ../edk2/MdePkg/Include/ -I
../edk2/MdePkg/Include/AArch64/  ../efitest.c -Wl,-subsystem=efiapp
-nostdlib -o ../efitest.aa64.efi

-->
#include <Uefi.h>

CHAR16 *gHello = L"Hello from a TinyCC compiled UEFI binary!\r\n";

EFI_STATUS EFIAPI
_start(EFI_HANDLE Handle,
       EFI_SYSTEM_TABLE *SystemTable)
{
  CHAR16 *StackString = L"String pointer on the stack\r\n";
SystemTable->ConOut->OutputString(SystemTable->ConOut, StackString);
SystemTable->ConOut->OutputString(SystemTable->ConOut, gHello);
  return EFI_SUCCESS;
}
-->


------------------------------------------------------------------------

_______________________________________________
Tinycc-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/tinycc-devel


_______________________________________________
Tinycc-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/tinycc-devel




reply via email to

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