All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick DELAUNAY <patrick.delaunay@foss.st.com>
To: U-Boot Mailing List <u-boot@lists.denx.de>
Cc: "Tom Rini" <trini@konsulko.com>,
	"Marek Behún" <marek.behun@nic.cz>,
	"Simon Glass" <sjg@chromium.org>,
	"Patrice CHOTARD" <patrice.chotard@foss.st.com>,
	"Marek Vasut" <marex@denx.de>,
	"U-Boot STM32" <uboot-stm32@st-md-mailman.stormreply.com>
Subject: Question: LTO and failing objcopy in "u-boot-initial-env" target
Date: Fri, 22 Oct 2021 17:16:18 +0200	[thread overview]
Message-ID: <927b122e-1f62-e790-f5ca-30bae4332c77@foss.st.com> (raw)

Hi,


I made tests with LTO option activated on stm32mp15 boards but if have a 
issue

with the U-Boot target  "u-boot-initial-env" (this command used by YOCTO)


$> make u-boot-initial-env

...

GENENV  u-boot-initial-env
arm-none-linux-gnueabihf-objcopy: env/common.o: can't dump section 
'.rodata.default_environment' - it does not exist: file format not 
recognized
sed: can't read u-boot-initial-env: No such file or directory
make[1]: *** [/local/home/frq07632/views/u-boot/Makefile:2315: 
u-boot-initial-env] Error 2
make[1]: Leaving directory 
'/local/home/frq07632/views/build/stm32mp15_defconfig'
make: *** [Makefile:177: sub-make] Error 2


But I reproduced it with sandbox:

$> make sandbox_defconfig

$> make all

$> make u-boot-initial-env

....

   LTO     u-boot
   OBJCOPY u-boot-nodtb.bin
   COPY    u-boot.bin
   GENENV  u-boot-initial-env
objcopy: env/common.o: can't dump section '.rodata.default_environment' 
- it does not exist: file format not recognized
sed: can't read u-boot-initial-env: No such file or directory
make: *** [Makefile:2315: u-boot-initial-env] Error 2



Do you already know this issue for other board which activate the LTO 
feature ?

I don't see any remarks about this issue on mailing list.

Today I am known how to solve this issue.


PS: The same command is executed in "scripts/get_default_envs.sh"


Regards

Patrick



I am ussing gcc 10.2

gcc version 10.2.1 20201103 (GNU Toolchain for the A-profile 
Architecture 10.2-2020.11 (arm-10.16))


And the name of the section change with LTO: .gnu.lto_default_environment.*

for exmaple:


$> arm-none-linux-gnueabihf-objdump -x -g -S common.o

common.o:     file format elf32-littlearm
common.o
architecture: armv7, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x00000000
private flags = 5000000: [Version5 EABI]

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
   0 .text         00000000  00000000  00000000  00000034  2**0
                   CONTENTS, ALLOC, LOAD, READONLY, CODE
   1 .data         00000000  00000000  00000000  00000034  2**0
                   CONTENTS, ALLOC, LOAD, DATA
   2 .bss          00000000  00000000  00000000  00000034  2**0
                   ALLOC
   3 .gnu.debuglto_.debug_info 000010a5  00000000  00000000 00000034  2**0
                   CONTENTS, RELOC, READONLY, EXCLUDE
   4 .gnu.debuglto_.debug_abbrev 000002a1  00000000  00000000 000010d9  2**0
                   CONTENTS, READONLY, EXCLUDE
   5 .gnu.debuglto_.debug_line 00000214  00000000  00000000 0000137a  2**0
                   CONTENTS, READONLY, EXCLUDE
   6 .gnu.debuglto_.debug_str 000012e3  00000000  00000000 0000158e  2**0
                   CONTENTS, READONLY, EXCLUDE
   7 .gnu.lto_.profile.69d69ac49136740e 0000000b  00000000 00000000  
00002871  2**0
                   CONTENTS, READONLY, EXCLUDE
   8 .gnu.lto_.icf.69d69ac49136740e 0000007b  00000000  00000000 
0000287c  2**0
                   CONTENTS, READONLY, EXCLUDE
   9 .gnu.lto_.ipa_sra.69d69ac49136740e 0000008c  00000000 00000000  
000028f7  2**0
                   CONTENTS, READONLY, EXCLUDE
  10 .gnu.lto_.inline.69d69ac49136740e 000002bc  00000000 00000000  
00002983  2**0
                   CONTENTS, READONLY, EXCLUDE
  11 .gnu.lto_.jmpfuncs.69d69ac49136740e 0000031c  00000000 00000000  
00002c3f  2**0
                   CONTENTS, READONLY, EXCLUDE
  12 .gnu.lto_.pureconst.69d69ac49136740e 0000002f  00000000 00000000  
00002f5b  2**0
                   CONTENTS, READONLY, EXCLUDE
  13 .gnu.lto_.lto.69d69ac49136740e 00000008  00000000  00000000 
00002f8a  2**0
                   CONTENTS, READONLY, EXCLUDE
  14 .gnu.lto_default_environment.154.69d69ac49136740e 00000507 
00000000  00000000  00002f92  2**0
                   CONTENTS, READONLY, EXCLUDE
  15 .gnu.lto_env_htab.155.69d69ac49136740e 00000062  00000000 00000000  
00003499  2**0
                   CONTENTS, READONLY, EXCLUDE
  16 .gnu.lto_env_get_yesno.156.69d69ac49136740e 00000244 00000000  
00000000  000034fb  2**0
                   CONTENTS, READONLY, EXCLUDE
  17 .gnu.lto_env_get_default.157.69d69ac49136740e 000003dc 00000000  
00000000  0000373f  2**0
                   CONTENTS, READONLY, EXCLUDE
  18 .gnu.lto_env_set_default.158.69d69ac49136740e 000004bf 00000000  
00000000  00003b1b  2**0
                   CONTENTS, READONLY, EXCLUDE
  19 .gnu.lto_env_set_default_vars.159.69d69ac49136740e 000001c1 
00000000  00000000  00003fda  2**0
                   CONTENTS, READONLY, EXCLUDE
  20 .gnu.lto_env_import.160.69d69ac49136740e 00000582  00000000 
00000000  0000419b  2**0
                   CONTENTS, READONLY, EXCLUDE
  21 .gnu.lto_env_check_redund.162.69d69ac49136740e 0000088a 00000000  
00000000  0000471d  2**0
                   CONTENTS, READONLY, EXCLUDE
  22 .gnu.lto_env_import_redund.163.69d69ac49136740e 00000461 00000000  
00000000  00004fa7  2**0
                   CONTENTS, READONLY, EXCLUDE
  23 .gnu.lto_env_export.164.69d69ac49136740e 000003a0  00000000 
00000000  00005408  2**0
                   CONTENTS, READONLY, EXCLUDE
  24 .gnu.lto_env_relocate.165.69d69ac49136740e 00000231  00000000 
00000000  000057a8  2**0
                   CONTENTS, READONLY, EXCLUDE
  25 .gnu.lto_env_complete.166.69d69ac49136740e 00000880  00000000 
00000000  000059d9  2**0
                   CONTENTS, READONLY, EXCLUDE
  26 .gnu.lto_env_relocate.part.0.203.69d69ac49136740e 000001ab 
00000000  00000000  00006259  2**0
                   CONTENTS, READONLY, EXCLUDE
  27 .gnu.lto_.symbol_nodes.69d69ac49136740e 000001f2  00000000 
00000000  00006404  2**0
                   CONTENTS, READONLY, EXCLUDE
  28 .gnu.lto_.refs.69d69ac49136740e 0000004f  00000000  00000000 
000065f6  2**0
                   CONTENTS, READONLY, EXCLUDE
  29 .gnu.lto_.decls.69d69ac49136740e 00001fbf  00000000  00000000 
00006645  2**0
                   CONTENTS, READONLY, EXCLUDE
  30 .gnu.lto_.symtab.69d69ac49136740e 000002de  00000000 00000000  
00008604  2**0
                   CONTENTS, READONLY, EXCLUDE
  31 .gnu.lto_.ext_symtab.69d69ac49136740e 00000039  00000000 00000000  
000088e2  2**0
                   CONTENTS, READONLY, EXCLUDE
  32 .gnu.lto_.opts 000001d6  00000000  00000000  0000891b  2**0
                   CONTENTS, READONLY, EXCLUDE
  33 .comment      0000005e  00000000  00000000  00008af1  2**0
                   CONTENTS, READONLY
  34 .note.GNU-stack 00000000  00000000  00000000  00008b4f  2**0
                   CONTENTS, READONLY
  35 .ARM.attributes 00000031  00000000  00000000  00008b4f  2**0
                   CONTENTS, READONLY
SYMBOL TABLE:
00000000 l    df *ABS*    00000000 common.c
00000000 l    d  .text    00000000 .text
00000000 l    d  .data    00000000 .data
00000000 l    d  .bss    00000000 .bss
00000000 l    d  .gnu.debuglto_.debug_info    00000000 
.gnu.debuglto_.debug_info
00000000 l    d  .gnu.debuglto_.debug_abbrev    00000000 
.gnu.debuglto_.debug_abbrev
00000000 l    d  .gnu.debuglto_.debug_line    00000000 
.gnu.debuglto_.debug_line
00000000 l    d  .gnu.debuglto_.debug_str    00000000 
.gnu.debuglto_.debug_str
00000000 l    d  .gnu.lto_.profile.69d69ac49136740e    00000000 
.gnu.lto_.profile.69d69ac49136740e
00000000 l    d  .gnu.lto_.icf.69d69ac49136740e    00000000 
.gnu.lto_.icf.69d69ac49136740e
00000000 l    d  .gnu.lto_.ipa_sra.69d69ac49136740e    00000000 
.gnu.lto_.ipa_sra.69d69ac49136740e
00000000 l    d  .gnu.lto_.inline.69d69ac49136740e    00000000 
.gnu.lto_.inline.69d69ac49136740e
00000000 l    d  .gnu.lto_.jmpfuncs.69d69ac49136740e    00000000 
.gnu.lto_.jmpfuncs.69d69ac49136740e
00000000 l    d  .gnu.lto_.pureconst.69d69ac49136740e    00000000 
.gnu.lto_.pureconst.69d69ac49136740e
00000000 l    d  .gnu.lto_.lto.69d69ac49136740e    00000000 
.gnu.lto_.lto.69d69ac49136740e
00000000 l    d .gnu.lto_default_environment.154.69d69ac49136740e    
00000000 .gnu.lto_default_environment.154.69d69ac49136740e
00000000 l    d  .gnu.lto_env_htab.155.69d69ac49136740e00000000 
.gnu.lto_env_htab.155.69d69ac49136740e
00000000 l    d  .gnu.lto_env_get_yesno.156.69d69ac49136740e 00000000 
.gnu.lto_env_get_yesno.156.69d69ac49136740e
00000000 l    d  .gnu.lto_env_get_default.157.69d69ac49136740e 00000000 
.gnu.lto_env_get_default.157.69d69ac49136740e
00000000 l    d  .gnu.lto_env_set_default.158.69d69ac49136740e 00000000 
.gnu.lto_env_set_default.158.69d69ac49136740e
00000000 l    d .gnu.lto_env_set_default_vars.159.69d69ac49136740e    
00000000 .gnu.lto_env_set_default_vars.159.69d69ac49136740e
00000000 l    d  .gnu.lto_env_import.160.69d69ac49136740e 00000000 
.gnu.lto_env_import.160.69d69ac49136740e
00000000 l    d  .gnu.lto_env_check_redund.162.69d69ac49136740e 00000000 
.gnu.lto_env_check_redund.162.69d69ac49136740e
00000000 l    d .gnu.lto_env_import_redund.163.69d69ac49136740e    
00000000 .gnu.lto_env_import_redund.163.69d69ac49136740e
00000000 l    d  .gnu.lto_env_export.164.69d69ac49136740e 00000000 
.gnu.lto_env_export.164.69d69ac49136740e
00000000 l    d  .gnu.lto_env_relocate.165.69d69ac49136740e 00000000 
.gnu.lto_env_relocate.165.69d69ac49136740e
00000000 l    d  .gnu.lto_env_complete.166.69d69ac49136740e 00000000 
.gnu.lto_env_complete.166.69d69ac49136740e
00000000 l    d .gnu.lto_env_relocate.part.0.203.69d69ac49136740e    
00000000 .gnu.lto_env_relocate.part.0.203.69d69ac49136740e
00000000 l    d  .gnu.lto_.symbol_nodes.69d69ac49136740e 00000000 
.gnu.lto_.symbol_nodes.69d69ac49136740e
00000000 l    d  .gnu.lto_.refs.69d69ac49136740e    00000000 
.gnu.lto_.refs.69d69ac49136740e
00000000 l    d  .gnu.lto_.decls.69d69ac49136740e    00000000 
.gnu.lto_.decls.69d69ac49136740e
00000000 l    d  .gnu.lto_.symtab.69d69ac49136740e    00000000 
.gnu.lto_.symtab.69d69ac49136740e
00000000 l    d  .gnu.lto_.ext_symtab.69d69ac49136740e    00000000 
.gnu.lto_.ext_symtab.69d69ac49136740e
00000000 l    d  .gnu.lto_.opts    00000000 .gnu.lto_.opts
00000000 l    d  .note.GNU-stack    00000000 .note.GNU-stack
00000000 l    d  .comment    00000000 .comment
00000000 l    d  .ARM.attributes    00000000 .ARM.attributes
00000000  w      .gnu.debuglto_.debug_info    00000000 .hidden 
common.c.2c9afba8
00000001       O *COM*    00000001 __gnu_lto_slim



             reply	other threads:[~2021-10-22 15:16 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-22 15:16 Patrick DELAUNAY [this message]
2021-10-22 19:19 ` Question: LTO and failing objcopy in "u-boot-initial-env" target Adam Ford
2021-10-22 19:26   ` Marek Behún
2021-10-22 19:49     ` Adam Ford
2021-10-23 17:25       ` Tom Rini
2021-10-22 19:25 ` Marek Behún

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=927b122e-1f62-e790-f5ca-30bae4332c77@foss.st.com \
    --to=patrick.delaunay@foss.st.com \
    --cc=marek.behun@nic.cz \
    --cc=marex@denx.de \
    --cc=patrice.chotard@foss.st.com \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=uboot-stm32@st-md-mailman.stormreply.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.