[PATCH 17/31] sandbox: Allow weak symbols to be dropped

Bin Meng bmeng.cn at gmail.com
Sun Apr 30 17:10:09 CEST 2023


Hi Simon,

On Sun, Apr 30, 2023 at 2:41 AM Simon Glass <sjg at chromium.org> wrote:
>
> Hi Bin,
>
> On Mon, 24 Apr 2023 at 20:44, Bin Meng <bmeng.cn at gmail.com> wrote:
> >
> > Hi Simon,
> >
> > On Tue, Apr 25, 2023 at 7:09 AM Simon Glass <sjg at chromium.org> wrote:
> > >
> > > The sandbox build makes use of a small number of weak symbols. Allow these
> > > to be dropped when building for the PE format, since its support for weak
> > > symbols is poor.
> > >
> > > Signed-off-by: Simon Glass <sjg at chromium.org>
> > > ---
> > >
> > >  cmd/bootefi.c                     | 3 ++-
> > >  cmd/bootz.c                       | 3 +++
> > >  common/usb.c                      | 3 +++
> > >  drivers/core/root.c               | 3 +++
> > >  drivers/spi/sandbox_spi.c         | 3 +++
> > >  env/env.c                         | 6 ++++++
> > >  lib/efi_loader/efi_image_loader.c | 3 +++
> > >  lib/efi_loader/efi_runtime.c      | 4 ++++
> > >  lib/lmb.c                         | 4 +++-
> > >  lib/time.c                        | 3 +++
> > >  10 files changed, 33 insertions(+), 2 deletions(-)
> > >
> >
> > You probably need to use:
> >
> > __declspec(selectany)
> >
> > to replace __weak in the ELF for the *nix world.
> >
> > Note this Microsoft bizarre does not provide the "strong override
> > weak" effect but I suspect what you only need is to get the build pass
> > on Windows so it should be okay.
>
> With that I get:
>
> lib/sha1.c:226:1: error: ‘selectany’ attribute applies only to
> initialized variables with external linkage
>
> and it dies.
>
> The line is:
>
> __weak void sha1_process(sha1_context *ctx, const unsigned char *data,
> unsigned int blocks)
>
> I tried adding a prototype to the header but got the same error.
>

I will see if I can find some time to check this.

Regards,
Bin


More information about the U-Boot mailing list