public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* Re: [edk2-discuss] WriteSections64()
       [not found] <AM6PR05MB5572BFC98AF62AFED0244CC0C7EF0@AM6PR05MB5572.eurprd05.prod.outlook.com>
@ 2019-06-14 19:17 ` Laszlo Ersek
  2019-06-14 19:43   ` [edk2-devel] " Ard Biesheuvel
  0 siblings, 1 reply; 8+ messages in thread
From: Laszlo Ersek @ 2019-06-14 19:17 UTC (permalink / raw)
  To: discuss, russell, edk2-devel-groups-io, Ard Biesheuvel

+Ard, +devel

On 06/13/19 17:29, Russell Peterson wrote:
> Hello,
> 
> We are in the process of upgrading our gcc toolchain to gcc 8.3 (from 7.3).  In the process of doing that we have hit an error building edk2:
> 
> make[2]: *** [/home/x/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.efi] Error 1
>   WriteSections64(): /home/x/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll AARCH64 relative relocations require identical ELF and PE/COFF section offsets
> 
> There are multiple errors similar to this issued by GenFw.  Our edk2 version is fairly recent (UDK2018 upstream branch as of commit 10318063b) but all this did build fine with gcc 7.3.  Any clues?
> 
> Regards,
> 
> Russell
> 
> 
> 
> 
> 


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [edk2-devel] [edk2-discuss] WriteSections64()
  2019-06-14 19:17 ` [edk2-discuss] WriteSections64() Laszlo Ersek
@ 2019-06-14 19:43   ` Ard Biesheuvel
  2019-06-14 21:19     ` Russell Peterson
       [not found]     ` <15A82D62E078CF58.4443@groups.io>
  0 siblings, 2 replies; 8+ messages in thread
From: Ard Biesheuvel @ 2019-06-14 19:43 UTC (permalink / raw)
  To: edk2-devel-groups-io, Laszlo Ersek; +Cc: discuss, russell

On Fri, 14 Jun 2019 at 21:17, Laszlo Ersek <lersek@redhat.com> wrote:
>
> +Ard, +devel
>
> On 06/13/19 17:29, Russell Peterson wrote:
> > Hello,
> >
> > We are in the process of upgrading our gcc toolchain to gcc 8.3 (from 7.3).  In the process of doing that we have hit an error building edk2:
> >
> > make[2]: *** [/home/x/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.efi] Error 1
> >   WriteSections64(): /home/x/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll AARCH64 relative relocations require identical ELF and PE/COFF section offsets
> >
> > There are multiple errors similar to this issued by GenFw.  Our edk2 version is fairly recent (UDK2018 upstream branch as of commit 10318063b) but all this did build fine with gcc 7.3.  Any clues?
> >

Your Conf/tools_def.txt is probably stale, and does not contain the
-fno-pie option we added a while ago.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [edk2-devel] [edk2-discuss] WriteSections64()
  2019-06-14 19:43   ` [edk2-devel] " Ard Biesheuvel
@ 2019-06-14 21:19     ` Russell Peterson
       [not found]     ` <15A82D62E078CF58.4443@groups.io>
  1 sibling, 0 replies; 8+ messages in thread
From: Russell Peterson @ 2019-06-14 21:19 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: edk2-devel-groups-io, Laszlo Ersek, discuss@edk2.groups.io

[-- Attachment #1: Type: text/plain, Size: 1302 bytes --]

Hello, Ard.

The tools_def.txt was updated and both the -fno-pie and -fno-pic are specified when executing gcc.  I don’t have access to the code at the moment but I will post the exact gcc command line as soon as I can.

Regards,

Russell


On Jun 14, 2019, at 3:43 PM, Ard Biesheuvel <ard.biesheuvel@linaro.org<mailto:ard.biesheuvel@linaro.org>> wrote:

On Fri, 14 Jun 2019 at 21:17, Laszlo Ersek <lersek@redhat.com<mailto:lersek@redhat.com>> wrote:

+Ard, +devel

On 06/13/19 17:29, Russell Peterson wrote:
Hello,

We are in the process of upgrading our gcc toolchain to gcc 8.3 (from 7.3).  In the process of doing that we have hit an error building edk2:

make[2]: *** [/home/x/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.efi] Error 1
 WriteSections64(): /home/x/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll AARCH64 relative relocations require identical ELF and PE/COFF section offsets

There are multiple errors similar to this issued by GenFw.  Our edk2 version is fairly recent (UDK2018 upstream branch as of commit 10318063b) but all this did build fine with gcc 7.3.  Any clues?


Your Conf/tools_def.txt is probably stale, and does not contain the
-fno-pie option we added a while ago.


[-- Attachment #2: Type: text/html, Size: 5508 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [edk2-devel] [edk2-discuss] WriteSections64()
       [not found]     ` <15A82D62E078CF58.4443@groups.io>
@ 2019-06-15  0:17       ` Russell Peterson
  2019-06-15  8:28         ` Ard Biesheuvel
  2019-06-17  9:41         ` Ard Biesheuvel
  0 siblings, 2 replies; 8+ messages in thread
From: Russell Peterson @ 2019-06-15  0:17 UTC (permalink / raw)
  To: discuss@edk2.groups.io, Russell Peterson, Ard Biesheuvel
  Cc: edk2-devel-groups-io, Laszlo Ersek

Here is a sample of the gcc command line:

"/x/sdk/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" 
-I/x/edk2/edk2/MlxPlatformPkg/Include -march=armv8-a+crc -g -fshort-wchar 
-fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -incl\
ude AutoGen.h -fno-common -DSTRING_ARRAY_NAME=BaseCryptLibStrings -g -Os -fshort-wchar -fno-builtin -fno-stri\
ct-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -mlittle-endian -fno-short-enums -\
fverbose-asm -funsigned-char -ffunction-sections -fdata-sections -Wno-address -fno-asynchronous-unwind-tables\
 -fno-pic -fno-pie -ffixed-x18 -flto -Wno-unused-but-set-variable -Wno-unused-const-variable -mcmodel=tiny -n\
ostdinc -nostdlib -DUEFI_C_SOURCE -DMDEPKG_NDEBUG -c -o /x/RELEASE_GCC5/AARCH64/CryptoPkg/Library/
BaseCryptLib/BaseCryptLib/OUTPUT/Pk/CryptX509.obj <-I include files left out> /x/edk2/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c

echo --strip-unneeded -R .eh_frame /x/edk2/Build/RELEASE_GCC5/AARC\
H64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
--strip-unneeded -R .eh_frame /x/edk2/Build/RELEASE_GCC5/AARCH64/M\
deModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
echo  /x/edk2/Build/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Ne\
twork/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of Russell Peterson via Groups.Io
Sent: Friday, June 14, 2019 5:19 PM
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: edk2-devel-groups-io <devel@edk2.groups.io>; Laszlo Ersek <lersek@redhat.com>; discuss@edk2.groups.io
Subject: Re: [edk2-devel] [edk2-discuss] WriteSections64()

Hello, Ard.

The tools_def.txt was updated and both the -fno-pie and -fno-pic are specified when executing gcc.  I don’t have access to the code at the moment but I will post the exact gcc command line as soon as I can.

Regards,

Russell


On Jun 14, 2019, at 3:43 PM, Ard Biesheuvel <ard.biesheuvel@linaro.org<mailto:ard.biesheuvel@linaro.org>> wrote:

On Fri, 14 Jun 2019 at 21:17, Laszlo Ersek <lersek@redhat.com<mailto:lersek@redhat.com>> wrote:

+Ard, +devel

On 06/13/19 17:29, Russell Peterson wrote:
Hello,

We are in the process of upgrading our gcc toolchain to gcc 8.3 (from 7.3).  In the process of doing that we have hit an error building edk2:

make[2]: *** [/home/x/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.efi] Error 1
 WriteSections64(): /home/x/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll AARCH64 relative relocations require identical ELF and PE/COFF section offsets

There are multiple errors similar to this issued by GenFw.  Our edk2 version is fairly recent (UDK2018 upstream branch as of commit 10318063b) but all this did build fine with gcc 7.3.  Any clues?


Your Conf/tools_def.txt is probably stale, and does not contain the -fno-pie option we added a while ago.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [edk2-devel] [edk2-discuss] WriteSections64()
  2019-06-15  0:17       ` Russell Peterson
@ 2019-06-15  8:28         ` Ard Biesheuvel
  2019-06-16 14:11           ` Russell Peterson
  2019-06-17  9:41         ` Ard Biesheuvel
  1 sibling, 1 reply; 8+ messages in thread
From: Ard Biesheuvel @ 2019-06-15  8:28 UTC (permalink / raw)
  To: Russell Peterson
  Cc: discuss@edk2.groups.io, edk2-devel-groups-io, Laszlo Ersek

On Sat, 15 Jun 2019 at 02:17, Russell Peterson <russell@mellanox.com> wrote:
>
> Here is a sample of the gcc command line:
>
> "/x/sdk/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc"
> -I/x/edk2/edk2/MlxPlatformPkg/Include -march=armv8-a+crc -g -fshort-wchar
> -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -incl\
> ude AutoGen.h -fno-common -DSTRING_ARRAY_NAME=BaseCryptLibStrings -g -Os -fshort-wchar -fno-builtin -fno-stri\
> ct-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -mlittle-endian -fno-short-enums -\
> fverbose-asm -funsigned-char -ffunction-sections -fdata-sections -Wno-address -fno-asynchronous-unwind-tables\
>  -fno-pic -fno-pie -ffixed-x18 -flto -Wno-unused-but-set-variable -Wno-unused-const-variable -mcmodel=tiny -n\
> ostdinc -nostdlib -DUEFI_C_SOURCE -DMDEPKG_NDEBUG -c -o /x/RELEASE_GCC5/AARCH64/CryptoPkg/Library/
> BaseCryptLib/BaseCryptLib/OUTPUT/Pk/CryptX509.obj <-I include files left out> /x/edk2/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c
>
> echo --strip-unneeded -R .eh_frame /x/edk2/Build/RELEASE_GCC5/AARC\
> H64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
> --strip-unneeded -R .eh_frame /x/edk2/Build/RELEASE_GCC5/AARCH64/M\
> deModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
> echo  /x/edk2/Build/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Ne\
> twork/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
>

Could you dump the section headers of such a .dll using readelf -S please?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [edk2-devel] [edk2-discuss] WriteSections64()
  2019-06-15  8:28         ` Ard Biesheuvel
@ 2019-06-16 14:11           ` Russell Peterson
  2019-06-17 12:56             ` Russell Peterson
  0 siblings, 1 reply; 8+ messages in thread
From: Russell Peterson @ 2019-06-16 14:11 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: discuss@edk2.groups.io, edk2-devel-groups-io, Laszlo Ersek

Hi, Ard.

-bash-4.2$ readelf -S /x/edk2/Build/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
There are 25 section headers, starting at offset 0x2a940:

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .text             PROGBITS         0000000000000240  00000240
       0000000000000320  0000000000000008  AX       0     0     32
  [ 2] .rela.text        RELA             0000000000000000  000175f8
       00000000000002d0  0000000000000018   I      22     1     8
  [ 3] .data             PROGBITS         0000000000000560  00000560
       0000000000000258  0000000000000000  WA       0     0     32
  [ 4] .rela.data        RELA             0000000000000000  000178c8
       0000000000000060  0000000000000018   I      22     3     8
  [ 5] .eh_frame         PROGBITS         00000000000007c0  000007c0
       0000000000000108  0000000000000000   A       0     0     8
  [ 6] .rela.eh_frame    RELA             0000000000000000  00017928
       0000000000000120  0000000000000018   I      22     5     8
  [ 7] .eh_frame_hdr     PROGBITS         00000000000008c8  000008c8
       000000000000004c  0000000000000000   A       0     0     4
  [ 8] .rela             RELA             0000000000000918  00000918
       0000000000000060  0000000000000018           0     0     8
  [ 9] .build-id         PROGBITS         0000000000000978  00000978
       0000000000000024  0000000000000000           0     0     4
  [10] .debug_info       PROGBITS         0000000000000000  0000099c
       000000000000bc4c  0000000000000000           0     0     1
  [11] .rela.debug_info  RELA             0000000000000000  00017a48
       0000000000011220  0000000000000018   I      22    10     8
  [12] .debug_abbrev     PROGBITS         0000000000000000  0000c5e8
       00000000000017d3  0000000000000000           0     0     1
  [13] .debug_line       PROGBITS         0000000000000000  0000ddbb
       00000000000031ed  0000000000000000           0     0     1
  [14] .rela.debug_line  RELA             0000000000000000  00028c68
       0000000000000120  0000000000000018   I      22    13     8
  [15] .debug_str        PROGBITS         0000000000000000  00010fa8
       0000000000002cd3  0000000000000001  MS       0     0     1
  [16] .debug_loc        PROGBITS         0000000000000000  00013c7b
       0000000000000ba1  0000000000000000           0     0     1
  [17] .rela.debug_loc   RELA             0000000000000000  00028d88
       00000000000013e0  0000000000000018   I      22    16     8
  [18] .debug_aranges    PROGBITS         0000000000000000  0001481c
       00000000000000e0  0000000000000000           0     0     1
  [19] .rela.debug_arang RELA             0000000000000000  0002a168
       0000000000000138  0000000000000018   I      22    18     8
  [20] .debug_ranges     PROGBITS         0000000000000000  000148fc
       0000000000000270  0000000000000000           0     0     1
  [21] .rela.debug_range RELA             0000000000000000  0002a2a0
       00000000000005d0  0000000000000018   I      22    20     8
  [22] .symtab           SYMTAB           0000000000000000  00014b70
       00000000000027a8  0000000000000018          23   402     8
  [23] .strtab           STRTAB           0000000000000000  00017318
       00000000000002da  0000000000000000           0     0     1
  [24] .shstrtab         STRTAB           0000000000000000  0002a870
       00000000000000d0  0000000000000000           0     0     1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  p (processor specific)

-----Original Message-----
From: Ard Biesheuvel <ard.biesheuvel@linaro.org> 
Sent: Saturday, June 15, 2019 4:29 AM
To: Russell Peterson <russell@mellanox.com>
Cc: discuss@edk2.groups.io; edk2-devel-groups-io <devel@edk2.groups.io>; Laszlo Ersek <lersek@redhat.com>
Subject: Re: [edk2-devel] [edk2-discuss] WriteSections64()

On Sat, 15 Jun 2019 at 02:17, Russell Peterson <russell@mellanox.com> wrote:
>
> Here is a sample of the gcc command line:
>
> "/x/sdk/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc"
> -I/x/edk2/edk2/MlxPlatformPkg/Include -march=armv8-a+crc -g 
> -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror 
> -Wno-array-bounds -ffunction-sections -fdata-sections -incl\ ude 
> AutoGen.h -fno-common -DSTRING_ARRAY_NAME=BaseCryptLibStrings -g -Os 
> -fshort-wchar -fno-builtin -fno-stri\ ct-aliasing -Wall -Werror 
> -Wno-array-bounds -include AutoGen.h -fno-common -mlittle-endian 
> -fno-short-enums -\ fverbose-asm -funsigned-char -ffunction-sections 
> -fdata-sections -Wno-address -fno-asynchronous-unwind-tables\  
> -fno-pic -fno-pie -ffixed-x18 -flto -Wno-unused-but-set-variable 
> -Wno-unused-const-variable -mcmodel=tiny -n\ ostdinc -nostdlib 
> -DUEFI_C_SOURCE -DMDEPKG_NDEBUG -c -o 
> /x/RELEASE_GCC5/AARCH64/CryptoPkg/Library/
> BaseCryptLib/BaseCryptLib/OUTPUT/Pk/CryptX509.obj <-I include files 
> left out> /x/edk2/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c
>
> echo --strip-unneeded -R .eh_frame /x/edk2/Build/RELEASE_GCC5/AARC\ 
> H64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
> --strip-unneeded -R .eh_frame /x/edk2/Build/RELEASE_GCC5/AARCH64/M\
> deModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
> echo  /x/edk2/Build/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Ne\
> twork/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
>

Could you dump the section headers of such a .dll using readelf -S please?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [edk2-devel] [edk2-discuss] WriteSections64()
  2019-06-15  0:17       ` Russell Peterson
  2019-06-15  8:28         ` Ard Biesheuvel
@ 2019-06-17  9:41         ` Ard Biesheuvel
  1 sibling, 0 replies; 8+ messages in thread
From: Ard Biesheuvel @ 2019-06-17  9:41 UTC (permalink / raw)
  To: Russell Peterson
  Cc: discuss@edk2.groups.io, edk2-devel-groups-io, Laszlo Ersek

On Sat, 15 Jun 2019 at 02:17, Russell Peterson <russell@mellanox.com> wrote:
>
> Here is a sample of the gcc command line:
>
> "/x/sdk/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc"
> -I/x/edk2/edk2/MlxPlatformPkg/Include -march=armv8-a+crc -g -fshort-wchar
> -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -incl\
> ude AutoGen.h -fno-common -DSTRING_ARRAY_NAME=BaseCryptLibStrings -g -Os -fshort-wchar -fno-builtin -fno-stri\
> ct-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -mlittle-endian -fno-short-enums -\
> fverbose-asm -funsigned-char -ffunction-sections -fdata-sections -Wno-address -fno-asynchronous-unwind-tables\
>  -fno-pic -fno-pie -ffixed-x18 -flto -Wno-unused-but-set-variable -Wno-unused-const-variable -mcmodel=tiny -n\
> ostdinc -nostdlib -DUEFI_C_SOURCE -DMDEPKG_NDEBUG -c -o /x/RELEASE_GCC5/AARCH64/CryptoPkg/Library/
> BaseCryptLib/BaseCryptLib/OUTPUT/Pk/CryptX509.obj <-I include files left out> /x/edk2/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c
>

You are missing the -fno-unwind-tables option. Please make sure that
you apply commit cbf00651eda6818ca3c76115b8a18e3f6b23eef4 to your
tree.
> echo --strip-unneeded -R .eh_frame /x/edk2/Build/RELEASE_GCC5/AARC\
> H64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
> --strip-unneeded -R .eh_frame /x/edk2/Build/RELEASE_GCC5/AARCH64/M\
> deModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
> echo  /x/edk2/Build/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Ne\
> twork/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
>
> -----Original Message-----
> From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of Russell Peterson via Groups.Io
> Sent: Friday, June 14, 2019 5:19 PM
> To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Cc: edk2-devel-groups-io <devel@edk2.groups.io>; Laszlo Ersek <lersek@redhat.com>; discuss@edk2.groups.io
> Subject: Re: [edk2-devel] [edk2-discuss] WriteSections64()
>
> Hello, Ard.
>
> The tools_def.txt was updated and both the -fno-pie and -fno-pic are specified when executing gcc.  I don’t have access to the code at the moment but I will post the exact gcc command line as soon as I can.
>
> Regards,
>
> Russell
>
>
> On Jun 14, 2019, at 3:43 PM, Ard Biesheuvel <ard.biesheuvel@linaro.org<mailto:ard.biesheuvel@linaro.org>> wrote:
>
> On Fri, 14 Jun 2019 at 21:17, Laszlo Ersek <lersek@redhat.com<mailto:lersek@redhat.com>> wrote:
>
> +Ard, +devel
>
> On 06/13/19 17:29, Russell Peterson wrote:
> Hello,
>
> We are in the process of upgrading our gcc toolchain to gcc 8.3 (from 7.3).  In the process of doing that we have hit an error building edk2:
>
> make[2]: *** [/home/x/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.efi] Error 1
>  WriteSections64(): /home/x/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll AARCH64 relative relocations require identical ELF and PE/COFF section offsets
>
> There are multiple errors similar to this issued by GenFw.  Our edk2 version is fairly recent (UDK2018 upstream branch as of commit 10318063b) but all this did build fine with gcc 7.3.  Any clues?
>
>
> Your Conf/tools_def.txt is probably stale, and does not contain the -fno-pie option we added a while ago.
>
>
> 
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [edk2-devel] [edk2-discuss] WriteSections64()
  2019-06-16 14:11           ` Russell Peterson
@ 2019-06-17 12:56             ` Russell Peterson
  0 siblings, 0 replies; 8+ messages in thread
From: Russell Peterson @ 2019-06-17 12:56 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: discuss@edk2.groups.io, edk2-devel-groups-io, Laszlo Ersek

Hi, Ard.

I compared this output to my previous edk2 build (uses gcc 7.3) and noticed that the .eh_frame sections seem to be new with the gcc 8.3 compiler.  I added -fno-exceptions and -fno-unwind-tables to the aarch64 compiler options and everything builds.  I'll need to run it and see if things work but seems better (at least it builds).  I assume edk2 doesn't much care about stack unwinding?

Regards,

Russell


-----Original Message-----
From: Russell Peterson 
Sent: Sunday, June 16, 2019 10:12 AM
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: discuss@edk2.groups.io; edk2-devel-groups-io <devel@edk2.groups.io>; Laszlo Ersek <lersek@redhat.com>
Subject: RE: [edk2-devel] [edk2-discuss] WriteSections64()

Hi, Ard.

-bash-4.2$ readelf -S /x/edk2/Build/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
There are 25 section headers, starting at offset 0x2a940:

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .text             PROGBITS         0000000000000240  00000240
       0000000000000320  0000000000000008  AX       0     0     32
  [ 2] .rela.text        RELA             0000000000000000  000175f8
       00000000000002d0  0000000000000018   I      22     1     8
  [ 3] .data             PROGBITS         0000000000000560  00000560
       0000000000000258  0000000000000000  WA       0     0     32
  [ 4] .rela.data        RELA             0000000000000000  000178c8
       0000000000000060  0000000000000018   I      22     3     8
  [ 5] .eh_frame         PROGBITS         00000000000007c0  000007c0
       0000000000000108  0000000000000000   A       0     0     8
  [ 6] .rela.eh_frame    RELA             0000000000000000  00017928
       0000000000000120  0000000000000018   I      22     5     8
  [ 7] .eh_frame_hdr     PROGBITS         00000000000008c8  000008c8
       000000000000004c  0000000000000000   A       0     0     4
  [ 8] .rela             RELA             0000000000000918  00000918
       0000000000000060  0000000000000018           0     0     8
  [ 9] .build-id         PROGBITS         0000000000000978  00000978
       0000000000000024  0000000000000000           0     0     4
  [10] .debug_info       PROGBITS         0000000000000000  0000099c
       000000000000bc4c  0000000000000000           0     0     1
  [11] .rela.debug_info  RELA             0000000000000000  00017a48
       0000000000011220  0000000000000018   I      22    10     8
  [12] .debug_abbrev     PROGBITS         0000000000000000  0000c5e8
       00000000000017d3  0000000000000000           0     0     1
  [13] .debug_line       PROGBITS         0000000000000000  0000ddbb
       00000000000031ed  0000000000000000           0     0     1
  [14] .rela.debug_line  RELA             0000000000000000  00028c68
       0000000000000120  0000000000000018   I      22    13     8
  [15] .debug_str        PROGBITS         0000000000000000  00010fa8
       0000000000002cd3  0000000000000001  MS       0     0     1
  [16] .debug_loc        PROGBITS         0000000000000000  00013c7b
       0000000000000ba1  0000000000000000           0     0     1
  [17] .rela.debug_loc   RELA             0000000000000000  00028d88
       00000000000013e0  0000000000000018   I      22    16     8
  [18] .debug_aranges    PROGBITS         0000000000000000  0001481c
       00000000000000e0  0000000000000000           0     0     1
  [19] .rela.debug_arang RELA             0000000000000000  0002a168
       0000000000000138  0000000000000018   I      22    18     8
  [20] .debug_ranges     PROGBITS         0000000000000000  000148fc
       0000000000000270  0000000000000000           0     0     1
  [21] .rela.debug_range RELA             0000000000000000  0002a2a0
       00000000000005d0  0000000000000018   I      22    20     8
  [22] .symtab           SYMTAB           0000000000000000  00014b70
       00000000000027a8  0000000000000018          23   402     8
  [23] .strtab           STRTAB           0000000000000000  00017318
       00000000000002da  0000000000000000           0     0     1
  [24] .shstrtab         STRTAB           0000000000000000  0002a870
       00000000000000d0  0000000000000000           0     0     1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  p (processor specific)

-----Original Message-----
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Sent: Saturday, June 15, 2019 4:29 AM
To: Russell Peterson <russell@mellanox.com>
Cc: discuss@edk2.groups.io; edk2-devel-groups-io <devel@edk2.groups.io>; Laszlo Ersek <lersek@redhat.com>
Subject: Re: [edk2-devel] [edk2-discuss] WriteSections64()

On Sat, 15 Jun 2019 at 02:17, Russell Peterson <russell@mellanox.com> wrote:
>
> Here is a sample of the gcc command line:
>
> "/x/sdk/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc"
> -I/x/edk2/edk2/MlxPlatformPkg/Include -march=armv8-a+crc -g 
> -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror 
> -Wno-array-bounds -ffunction-sections -fdata-sections -incl\ ude 
> AutoGen.h -fno-common -DSTRING_ARRAY_NAME=BaseCryptLibStrings -g -Os 
> -fshort-wchar -fno-builtin -fno-stri\ ct-aliasing -Wall -Werror 
> -Wno-array-bounds -include AutoGen.h -fno-common -mlittle-endian 
> -fno-short-enums -\ fverbose-asm -funsigned-char -ffunction-sections 
> -fdata-sections -Wno-address -fno-asynchronous-unwind-tables\ -fno-pic 
> -fno-pie -ffixed-x18 -flto -Wno-unused-but-set-variable 
> -Wno-unused-const-variable -mcmodel=tiny -n\ ostdinc -nostdlib 
> -DUEFI_C_SOURCE -DMDEPKG_NDEBUG -c -o 
> /x/RELEASE_GCC5/AARCH64/CryptoPkg/Library/
> BaseCryptLib/BaseCryptLib/OUTPUT/Pk/CryptX509.obj <-I include files 
> left out> /x/edk2/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c
>
> echo --strip-unneeded -R .eh_frame /x/edk2/Build/RELEASE_GCC5/AARC\ 
> H64/MdeModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
> --strip-unneeded -R .eh_frame /x/edk2/Build/RELEASE_GCC5/AARCH64/M\
> deModulePkg/Universal/Network/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
> echo  /x/edk2/Build/RELEASE_GCC5/AARCH64/MdeModulePkg/Universal/Ne\
> twork/DpcDxe/DpcDxe/DEBUG/DpcDxe.dll
>

Could you dump the section headers of such a .dll using readelf -S please?

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-06-17 12:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <AM6PR05MB5572BFC98AF62AFED0244CC0C7EF0@AM6PR05MB5572.eurprd05.prod.outlook.com>
2019-06-14 19:17 ` [edk2-discuss] WriteSections64() Laszlo Ersek
2019-06-14 19:43   ` [edk2-devel] " Ard Biesheuvel
2019-06-14 21:19     ` Russell Peterson
     [not found]     ` <15A82D62E078CF58.4443@groups.io>
2019-06-15  0:17       ` Russell Peterson
2019-06-15  8:28         ` Ard Biesheuvel
2019-06-16 14:11           ` Russell Peterson
2019-06-17 12:56             ` Russell Peterson
2019-06-17  9:41         ` Ard Biesheuvel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox