public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Marek Behun <marek.behun@nic.cz>
To: u-boot@lists.denx.de
Subject: [RFC PATCH u-boot 00/12] U-Boot LTO (Sandbox + ARM Nokia RX-51)
Date: Sun, 9 May 2021 20:44:57 +0200	[thread overview]
Message-ID: <20210509204457.50f17b41@thinkpad> (raw)
In-Reply-To: <CAHCN7xK8nSbZA+uV8y+OiE04kSzpndwHLR6NXeFSa-GkGGuR_A@mail.gmail.com>

On Sun, 9 May 2021 09:14:14 -0500
Adam Ford <aford173@gmail.com> wrote:

> On Sat, Mar 6, 2021 at 10:06 PM Marek Behun <marek.behun@nic.cz> wrote:
> >
> > On Sat, 6 Mar 2021 21:45:02 -0600
> > Adam Ford <aford173@gmail.com> wrote:
> >  
> > > On Sat, Mar 6, 2021 at 3:49 PM Marek Behun <marek.behun@nic.cz> wrote:  
> > > >
> > > > On Sat, 6 Mar 2021 22:38:52 +0100
> > > > Pali Roh?r <pali@kernel.org> wrote:
> > > >  
> > > > > On Saturday 06 March 2021 22:19:22 Marek Behun wrote:  
> > > > > > On Sat, 6 Mar 2021 22:00:45 +0100
> > > > > > Pali Roh?r <pali@kernel.org> wrote:
> > > > > >  
> > > > > > > On Saturday 06 March 2021 21:54:00 Marek Behun wrote:  
> > > > > > > > On Sat, 6 Mar 2021 21:41:14 +0100
> > > > > > > > Pali Roh?r <pali@kernel.org> wrote:
> > > > > > > >  
> > > > > > > > > On Saturday 06 March 2021 15:08:13 Tom Rini wrote:  
> > > > > > > > > > Perhaps we'll default to yes on some SoCs.  The omap3 thing is a bit
> > > > > > > > > > odd, but we'll see what happens on real N900 hardware.  
> > > > > > > > >
> > > > > > > > > Hello!
> > > > > > > > >
> > > > > > > > > Could you send me a link to git repo / branch and tell me from which
> > > > > > > > > commit should I do tests on real N900 hardware? I will test it and let
> > > > > > > > > you know results.
> > > > > > > > >
> > > > > > > > > Adding maemo ML to the loop as on the maemo list are more people with
> > > > > > > > > N900 HW and U-Boot.  
> > > > > > > >
> > > > > > > > https://github.com/elkablo/u-boot branch lto  
> > > > > > >
> > > > > > > Sorry, compilation is failing :-(
> > > > > > >
> > > > > > > $ git clone https://github.com/elkablo/u-boot -b lto --depth=100
> > > > > > > Cloning into 'u-boot'...
> > > > > > > remote: Enumerating objects: 33644, done.
> > > > > > > remote: Counting objects: 100% (33644/33644), done.
> > > > > > > remote: Compressing objects: 100% (20116/20116), done.
> > > > > > > remote: Total 33644 (delta 15838), reused 19947 (delta 13018), pack-reused 0
> > > > > > > Receiving objects: 100% (33644/33644), 26.28 MiB | 10.21 MiB/s, done.
> > > > > > > Resolving deltas: 100% (15838/15838), done.
> > > > > > >
> > > > > > > $ cd u-boot
> > > > > > >
> > > > > > > $ make CROSS_COMPILE=arm-linux-gnueabi- nokia_rx51_config
> > > > > > >   HOSTCC  scripts/basic/fixdep
> > > > > > >   HOSTCC  scripts/kconfig/conf.o
> > > > > > >   YACC    scripts/kconfig/zconf.tab.c
> > > > > > >   LEX     scripts/kconfig/zconf.lex.c
> > > > > > >   HOSTCC  scripts/kconfig/zconf.tab.o
> > > > > > >   HOSTLD  scripts/kconfig/conf
> > > > > > > #
> > > > > > > # configuration written to .config
> > > > > > > #
> > > > > > >
> > > > > > > $ make CROSS_COMPILE=arm-linux-gnueabi- u-boot.bin
> > > > > > > ...
> > > > > > >   LTO     u-boot
> > > > > > > /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: DWARF error: offset (1258291444) greater than or equal to .debug_str size (676)
> > > > > > > /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: DWARF error: offset (1459618036) greater than or equal to .debug_str size (676)
> > > > > > > /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: DWARF error: could not find abbrev number 48028
> > > > > > > /tmp/cc8l0QSQ.ltrans3.ltrans.o: in function `omap3_set_aux_cr_secure':
> > > > > > > <artificial>:(.text+0x6eb8): undefined reference to `do_omap3_emu_romcode_call'
> > > > > > > collect2: error: ld returned 1 exit status
> > > > > > > make: *** [Makefile:1808: u-boot] Error 1
> > > > > > >
> > > > > > >
> > > > > > > I'm using arm-linux-gnueabi-gcc version 8.3.0 which is available in
> > > > > > > current Debian stable (Debian 10 Buster).  
> > > > > >
> > > > > > Fixed and force-pushed, it seems ar needs the P flag that Bin Meng
> > > > > > questioned.  
> > > > >
> > > > > Problem is fixed, now compilation succeeded. u-boot.bin has size 243788
> > > > > bytes.
> > > > >
> > > > > And seems that compiled U-Boot is working fine!
> > > > >
> > > > > Nokia RX-51 # version
> > > > > U-Boot 2021.04-rc3-00338-g88d0a5042c97 (Mar 06 2021 - 22:19:08 +0100)
> > > > >
> > > > > arm-linux-gnueabi-gcc (Debian 8.3.0-2) 8.3.0
> > > > > GNU ld (GNU Binutils for Debian) 2.31.1
> > > > >
> > > > > I can send binary files via usbtty and 'loadb' command. I can boot linux
> > > > > kernel via 'bootm'. I can chainload to another U-Boot binary (loaded by
> > > > > 'loadb') via 'go' command. Also 'ext4ls' and 'fatls' commands are
> > > > > working. Also 'onenand dump bootloader' is working.
> > > > >
> > > > > Do you need something more to test?
> > > > >
> > > > > If not you can add my 'Tested-by: Pali Roh?r <pali@kernel.org>' line for
> > > > > all patches which are up to the commit 88d0a5042c97.
> > > > >
> > > > > Good job!  
> > > >
> > > > Thanks.
> > > >
> > > > I am still working on these patches, since I have discovered some more
> > > > defconfigs which fail to build for one reason or another.
> > > >
> > > > I will send a patch enabling LTO for Nokia N900 though.
> > > >  
> > >
> > > I have my DM3730 booting now
> > >
> > > diff --git a/arch/arm/mach-omap2/omap3/Makefile
> > > b/arch/arm/mach-omap2/omap3/Makefile
> > > index 91ed8ebc9f..4c96c81bf7 100644
> > > --- a/arch/arm/mach-omap2/omap3/Makefile
> > > +++ b/arch/arm/mach-omap2/omap3/Makefile
> > > @@ -6,6 +6,8 @@
> > >  # If clock.c is compiled for Thumb2, then it fails on OMAP3530
> > >  CFLAGS_clock.o += -marm
> > >
> > > +CFLAGS_REMOVE_board.o := $(LTO_CFLAGS)
> > > +
> > >  obj-y  := lowlevel_init.o
> > >
> > >  obj-y  += board.o
> > >
> > > The board.c file has a few functions with assembly code and some
> > > functions called by assembly.  I wonder if there needs to be some
> > > compiler flags added to it to ensure it boots.  I am not as
> > > experienced with compiler directives and Makefile tweaks, but I am
> > > willing to try stuff if people have suggestions.
> > >
> > > However, at least for now, the omap3_logic board works.  I haven't
> > > tried the AM3517 yet.  It's similar to the omap3 with a different
> > > memory controller so I'm more concerned about it than the OMAP3530.
> > > If I have time tomorrow, I'll run some tests on the AM3517.
> > >
> > > adam  
> >
> > Adding to my patches, thanks.  
> 
> Do you think you'll be re-submitting any of this for the next release of U-Boot?
> I felt like we had some good momentum going.
> 
> >
> > Marek  

I shall look into this again this week. There is one problem I
discovered last month and haven't yet time to look into it. It is
pretty important - network does not work with the mvneta driver on
Turris Omnia when compiled with LTO...

Marek

  reply	other threads:[~2021-05-09 18:44 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-03  4:11 [RFC PATCH u-boot 00/12] U-Boot LTO (Sandbox + ARM Nokia RX-51) Marek Behún
2021-03-03  4:12 ` [RFC PATCH u-boot 01/12] build: use thin archives instead of incremental linking Marek Behún
2021-03-04 10:57   ` Bin Meng
2021-03-04 18:17     ` Marek Behun
2021-03-05 13:34       ` Bin Meng
2021-03-05 13:37         ` Tom Rini
2021-03-06 21:20           ` Marek Behun
2021-03-05 15:39         ` Marek Behun
2021-03-03  4:12 ` [RFC PATCH u-boot 02/12] sandbox: errno: avoid conflict with libc's errno Marek Behún
2021-03-05  3:00   ` Bin Meng
2021-03-05 15:37     ` Marek Behun
2021-03-05 16:39       ` Simon Glass
2021-03-05 16:50         ` Marek Behun
2021-03-05 16:58           ` Simon Glass
2021-03-05 17:24             ` Heinrich Schuchardt
2021-03-05 17:24             ` Marek Behun
2021-03-05 19:42               ` Simon Glass
2021-03-05 17:21       ` Heinrich Schuchardt
2021-03-07  3:14         ` Marek Behun
2021-03-12  4:45   ` Simon Glass
2021-03-03  4:12 ` [RFC PATCH u-boot 03/12] linker_lists: declare entries and lists externally visible Marek Behún
2021-03-04 13:47   ` Marek Behun
2021-03-05  3:04   ` Bin Meng
2021-03-05 15:49     ` Marek Behun
2021-03-03  4:12 ` [RFC PATCH u-boot 04/12] efi_loader: fix warning when linking with LTO Marek Behún
2021-03-05  5:50   ` Bin Meng
2021-03-03  4:12 ` [RFC PATCH u-boot 05/12] binman: declare symbols externally visible Marek Behún
2021-03-04  0:37   ` Tom Rini
2021-03-04  1:53     ` Marek Behun
2021-03-03  4:12 ` [RFC PATCH u-boot 06/12] build: support building with Link Time Optimizations Marek Behún
2021-03-05  6:34   ` Bin Meng
2021-03-03  4:12 ` [RFC PATCH u-boot 07/12] arch: sandbox: make LTO available Marek Behún
2021-03-03  4:12 ` [RFC PATCH u-boot 08/12] sandbox: build with LTO Marek Behún
2021-03-03  4:12 ` [RFC PATCH u-boot 09/12] ARM: make gd a function for LTO Marek Behún
2021-03-03  4:12 ` [RFC PATCH u-boot 10/12] string: make memcpy() visible to fix LTO linking errors Marek Behún
2021-03-03  4:12 ` [RFC PATCH u-boot 11/12] arch: ARM: make LTO available Marek Behún
2021-03-03  4:12 ` [RFC PATCH u-boot 12/12] Nokia RX-51: build with LTO Marek Behún
2021-03-03 16:11 ` [RFC PATCH u-boot 00/12] U-Boot LTO (Sandbox + ARM Nokia RX-51) Tom Rini
2021-03-03 16:41   ` Marek Behun
2021-03-03 16:47     ` Tom Rini
2021-03-03 21:36     ` Tom Rini
2021-03-04  0:40       ` Adam Ford
2021-03-04  7:07         ` [PATCH] arm: fix LTO build for some thumb-interwork cases Marek Behún
2021-03-04 10:43       ` [RFC PATCH u-boot 00/12] U-Boot LTO (Sandbox + ARM Nokia RX-51) Marek Behun
2021-03-04 13:46         ` Adam Ford
2021-03-04 13:50           ` Marek Behun
2021-03-04 13:59             ` Adam Ford
2021-03-04 14:58           ` Tom Rini
2021-03-04 15:07             ` Adam Ford
2021-03-04 15:37               ` Marek Behun
2021-03-04 16:18                 ` Tom Rini
2021-03-04 15:59               ` Marek Behun
2021-03-04 22:18                 ` Adam Ford
2021-03-04 22:33                   ` Marek Behun
2021-03-05 11:25                     ` Adam Ford
2021-03-05 12:31                       ` Stefan Roese
2021-03-05 17:10                         ` Adam Ford
2021-03-06  3:03                           ` Adam Ford
2021-03-06 11:12                             ` Adam Ford
2021-03-06 17:37                               ` Marek Behun
2021-03-06 20:08                                 ` Tom Rini
2021-03-06 20:41                                   ` Pali Rohár
2021-03-06 20:54                                     ` Marek Behun
2021-03-06 21:00                                       ` Pali Rohár
2021-03-06 21:19                                         ` Marek Behun
2021-03-06 21:38                                           ` Pali Rohár
2021-03-06 21:49                                             ` Marek Behun
2021-03-07  3:45                                               ` Adam Ford
2021-03-07  4:06                                                 ` Marek Behun
2021-05-09 14:14                                                   ` Adam Ford
2021-05-09 18:44                                                     ` Marek Behun [this message]
2021-05-10 16:28                                                       ` Simon Glass
2021-05-13  9:22                                                         ` Pali Rohár
2021-03-04 16:17               ` Tom Rini
2021-03-04 16:35                 ` Pali Rohár

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=20210509204457.50f17b41@thinkpad \
    --to=marek.behun@nic.cz \
    --cc=u-boot@lists.denx.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox