[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] arm-coreboot: Declare global struct ps2_state as static so s
From: |
Glenn Washburn |
Subject: |
Re: [PATCH] arm-coreboot: Declare global struct ps2_state as static so symbols don't cause link failure |
Date: |
Thu, 3 Dec 2020 07:47:59 -0600 |
On Thu, 3 Dec 2020 00:15:27 -0600
Glenn Washburn <development@efficientek.com> wrote:
> Here is a log file showing the build failure.
>
> https://gitlab.com/grub2-testing/grub/-/jobs/885372725/raw
Accidentally deleted this pipeline. Here's another log with the same
error.
https://gitlab.com/grub2-testing/grub/-/jobs/888562636/raw
> On Thu, 3 Dec 2020 00:10:26 -0600
> Glenn Washburn <development@efficientek.com> wrote:
>
> > This appears to be a new issue surfaced by switching from gcc 9.3.0
> > to 10.1.0 cross compiling toolchain. When linking these two object
> > files together, there is an error generated: "multiple definition of
> > `ps2_state'". This only appears to be an issue when
> > --target=arm-linux-gnueabi and --with-platform=coreboot. There's no
> > need for these structs to have global as opposed to file scope, so
> > declaring them as static fixes this issue.
> >
> > Signed-off-by: Glenn Washburn <development@efficientek.com>
> > ---
> > grub-core/term/arm/cros.c | 2 +-
> > grub-core/term/arm/pl050.c | 2 +-
> > 2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/grub-core/term/arm/cros.c b/grub-core/term/arm/cros.c
> > index 1ff9f8ccf..a17e49c32 100644
> > --- a/grub-core/term/arm/cros.c
> > +++ b/grub-core/term/arm/cros.c
> > @@ -30,7 +30,7 @@
> > #include <grub/fdtbus.h>
> > #include <grub/arm/cros_ec.h>
> >
> > -struct grub_ps2_state ps2_state;
> > +static struct grub_ps2_state ps2_state;
> >
> > struct grub_cros_ec_keyscan old_scan;
> >
> > diff --git a/grub-core/term/arm/pl050.c b/grub-core/term/arm/pl050.c
> > index e4cda3056..b082243b0 100644
> > --- a/grub-core/term/arm/pl050.c
> > +++ b/grub-core/term/arm/pl050.c
> > @@ -29,7 +29,7 @@
> >
> > static volatile grub_uint32_t *pl050_regs;
> >
> > -struct grub_ps2_state ps2_state;
> > +static struct grub_ps2_state ps2_state;
> >
> > static void
> > keyboard_controller_wait_until_ready (void)