From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
To: Tom Rini <trini@konsulko.com>
Cc: Peng Fan <peng.fan@nxp.com>,
"Peng Fan (OSS)" <peng.fan@oss.nxp.com>,
"sbabic@denx.de" <sbabic@denx.de>,
"festevam@gmail.com" <festevam@gmail.com>,
"ariel.dalessandro@collabora.com"
<ariel.dalessandro@collabora.com>,
"michael@amarulasolutions.com" <michael@amarulasolutions.com>,
"tharvey@gateworks.com" <tharvey@gateworks.com>,
"sjg@chromium.org" <sjg@chromium.org>,
"marek.behun@nic.cz" <marek.behun@nic.cz>,
"pali@kernel.org" <pali@kernel.org>, "sr@denx.de" <sr@denx.de>,
Ricardo Salveti <ricardo@foundries.io>,
"patrick.delaunay@foss.st.com" <patrick.delaunay@foss.st.com>,
"u-boot@lists.denx.de" <u-boot@lists.denx.de>
Subject: Re: [PATCH V4 1/8] spl: guard u_boot_any with X86
Date: Tue, 24 May 2022 00:10:02 +0300 [thread overview]
Message-ID: <7651ea81-d63d-2dca-9aa0-97cbb6b030c0@gmail.com> (raw)
In-Reply-To: <20220522145011.GK13239@bill-the-cat>
On 22/05/2022 17:50, Tom Rini wrote:
> On Sun, May 22, 2022 at 04:56:08PM +0300, Alper Nebi Yasak wrote:
>> It looks like we should be able to change things in common/spl/spl.c to:
>>
>> #if CONFIG_IS_ENABLED(BINMAN_SYMBOLS)
>> /* See spl.h for information about this */
>> binman_sym_declare_optional(ulong, u_boot_any, image_pos);
>> binman_sym_declare_optional(ulong, u_boot_any, size);
>> #endif
>>
>> which would mark the symbol as 'weak' and turn the error into a warning
>> on the binman side. But that is somehow being undone by LTO.
>
> So, looking at binman_sym_declare_optional we tell the linker that it's
> weak and might even be unused. LTO gets very aggressive about finding
> things that aren't used in the resulting binary and discarding them.
> Typically we have the problem of a function that is used but it's hard
> for LTO to see it, so we give it the "used" attribute. But for
> something we're already saying is "unused" this would be wrong. So why
> do we mark things as unused here? I assume it's marked weak as it could
> be overridden at link time by a definition elsewhere.
I don't know, but the GCC manual says marking things 'unused' will
suppress a warning if the variable is actually unused. I guess binman
symbols may become unused due to some other config options being unset,
and it's done for those cases?
I think the optional symbols are marked weak just to signal the python
side that they are optional. If I understand it right, binman:
1. Packs an image using the finalized 'spl/u-boot-spl.bin'
2. Figures out the image-pos and size values of every entry
3. Inspects the 'spl/u-boot-spl' ELF file for declared binman symbols
4. Raises an error if any non-'weak' symbol's value is undetermined
5. Updates the u-boot-spl.bin (in memory) with the calculated values
6. Recreates the final image based on that updated bin file.
next prev parent reply other threads:[~2022-05-23 21:13 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-20 14:10 [PATCH V4 0/8] arm64: binman: use binman symbols for imx Peng Fan (OSS)
2022-05-20 14:10 ` [PATCH V4 1/8] spl: guard u_boot_any with X86 Peng Fan (OSS)
2022-05-20 15:21 ` Tom Rini
2022-05-21 8:33 ` Peng Fan
2022-05-21 12:05 ` Tom Rini
2022-05-22 13:56 ` Alper Nebi Yasak
2022-05-22 14:50 ` Tom Rini
2022-05-23 21:10 ` Alper Nebi Yasak [this message]
2022-05-23 6:19 ` Peng Fan (OSS)
2022-05-23 6:28 ` Peng Fan (OSS)
2022-05-23 14:10 ` Tom Rini
2022-05-23 21:10 ` Alper Nebi Yasak
2022-05-22 13:55 ` Alper Nebi Yasak
2022-05-20 14:10 ` [PATCH V4 2/8] arm: dts: imx8m: update binman ddr firmware node name Peng Fan (OSS)
2022-05-22 13:56 ` Alper Nebi Yasak
2022-05-23 7:01 ` Peng Fan (OSS)
2022-05-23 21:11 ` Alper Nebi Yasak
2022-05-20 14:10 ` [PATCH V4 3/8] imx: imx8mm-icore: migrate to use BINMAN Peng Fan (OSS)
2022-05-22 13:56 ` Alper Nebi Yasak
2022-05-23 7:02 ` Peng Fan (OSS)
2022-05-20 14:10 ` [PATCH V4 4/8] armv8: u-boot-spl.lds: mark __image_copy_start as symbol Peng Fan (OSS)
2022-05-20 15:21 ` Tom Rini
2022-05-20 14:10 ` [PATCH V4 5/8] tools: binman: section: replace @ with - Peng Fan (OSS)
2022-05-22 13:57 ` Alper Nebi Yasak
2022-05-23 7:05 ` Peng Fan (OSS)
2022-05-20 14:10 ` [PATCH V4 6/8] ddr: imx8m: helper: load ddr firmware according to binman symbols Peng Fan (OSS)
2022-05-22 13:57 ` Alper Nebi Yasak
2022-05-23 7:08 ` Peng Fan (OSS)
2022-05-20 14:10 ` [PATCH V4 7/8] arm: dts: imx8m: shrink ddr firmware size to actual file size Peng Fan (OSS)
2022-05-23 21:12 ` Alper Nebi Yasak
2022-05-24 5:50 ` Michael Nazzareno Trimarchi
2022-05-20 14:10 ` [PATCH V4 8/8] binman_sym: guard with CONFIG_SPL_BINMAN_SYMBOLS Peng Fan (OSS)
2022-05-22 13:57 ` Alper Nebi Yasak
2022-05-23 7:10 ` Peng Fan (OSS)
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=7651ea81-d63d-2dca-9aa0-97cbb6b030c0@gmail.com \
--to=alpernebiyasak@gmail.com \
--cc=ariel.dalessandro@collabora.com \
--cc=festevam@gmail.com \
--cc=marek.behun@nic.cz \
--cc=michael@amarulasolutions.com \
--cc=pali@kernel.org \
--cc=patrick.delaunay@foss.st.com \
--cc=peng.fan@nxp.com \
--cc=peng.fan@oss.nxp.com \
--cc=ricardo@foundries.io \
--cc=sbabic@denx.de \
--cc=sjg@chromium.org \
--cc=sr@denx.de \
--cc=tharvey@gateworks.com \
--cc=trini@konsulko.com \
--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 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.