Message ID | 20180612155013.10993-1-xypron.glpk@gmx.de |
---|---|
State | Superseded, archived |
Delegated to: | Bin Meng |
Headers | show |
Series | [U-Boot,1/1] x86: qemu: do not build car.o with start64.o | expand |
Hi Heinrich, On Tue, Jun 12, 2018 at 11:50 PM, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote: > car.o can only be used with start.o, not with start64.o. > > So on qemu 64bit it should only be built for 32bit SPL but not for u-boot. > > Without this patch but with an unrelated pending patch > ("x86: Add 64-bit setjmp/longjmp implementation") the > following error occurred for qemu-x86_64_defconfig: > I don't understand why Ivan's setmp/longjmp patch triggers this build issue. Can you elaborate? > arch/x86/cpu/built-in.o: In function `car_init': > arch/x86/cpu/qemu/car.S:25: undefined reference to `car_init_ret' > > Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> > --- > arch/x86/cpu/qemu/Makefile | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/cpu/qemu/Makefile b/arch/x86/cpu/qemu/Makefile > index e5ea92545e3..b1daffd4a32 100644 > --- a/arch/x86/cpu/qemu/Makefile > +++ b/arch/x86/cpu/qemu/Makefile > @@ -2,8 +2,11 @@ > # > # Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com> > > +ifndef CONFIG_$(SPL_)X86_64 > +obj-y += car.o > +endif > ifndef CONFIG_EFI_STUB > -obj-y += car.o dram.o > +obj-y += dram.o > endif > obj-y += qemu.o > obj-$(CONFIG_QFW) += cpu.o e820.o > -- BTW: the patch does not apply cleanly on latest u-boot/master. Please rebase. Thanks! Regards, Bin
On 06/19/2018 04:37 AM, Bin Meng wrote: > Hi Heinrich, > > On Tue, Jun 12, 2018 at 11:50 PM, Heinrich Schuchardt > <xypron.glpk@gmx.de> wrote: >> car.o can only be used with start.o, not with start64.o. >> >> So on qemu 64bit it should only be built for 32bit SPL but not for u-boot. >> >> Without this patch but with an unrelated pending patch >> ("x86: Add 64-bit setjmp/longjmp implementation") the >> following error occurred for qemu-x86_64_defconfig: >> > > I don't understand why Ivan's setmp/longjmp patch triggers this build > issue. Can you elaborate? Hello Bin, it was what I observed. As start.S calls car_init() but start_64.S does not the linker could eliminate car.o on x86_64. Why it does not eliminate it with the patch I do not know. But I still think that building car.o on 64bit does not make sense. Best regards Heinrich > >> arch/x86/cpu/built-in.o: In function `car_init': >> arch/x86/cpu/qemu/car.S:25: undefined reference to `car_init_ret' >> >> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> >> --- >> arch/x86/cpu/qemu/Makefile | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/arch/x86/cpu/qemu/Makefile b/arch/x86/cpu/qemu/Makefile >> index e5ea92545e3..b1daffd4a32 100644 >> --- a/arch/x86/cpu/qemu/Makefile >> +++ b/arch/x86/cpu/qemu/Makefile >> @@ -2,8 +2,11 @@ >> # >> # Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com> >> >> +ifndef CONFIG_$(SPL_)X86_64 >> +obj-y += car.o >> +endif >> ifndef CONFIG_EFI_STUB >> -obj-y += car.o dram.o >> +obj-y += dram.o >> endif >> obj-y += qemu.o >> obj-$(CONFIG_QFW) += cpu.o e820.o >> -- > > BTW: the patch does not apply cleanly on latest u-boot/master. Please > rebase. Thanks! > > Regards, > Bin >
Hi Heinrich, On Tue, Jun 19, 2018 at 2:10 PM, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote: > On 06/19/2018 04:37 AM, Bin Meng wrote: >> Hi Heinrich, >> >> On Tue, Jun 12, 2018 at 11:50 PM, Heinrich Schuchardt >> <xypron.glpk@gmx.de> wrote: >>> car.o can only be used with start.o, not with start64.o. >>> >>> So on qemu 64bit it should only be built for 32bit SPL but not for u-boot. >>> >>> Without this patch but with an unrelated pending patch >>> ("x86: Add 64-bit setjmp/longjmp implementation") the >>> following error occurred for qemu-x86_64_defconfig: >>> >> >> I don't understand why Ivan's setmp/longjmp patch triggers this build >> issue. Can you elaborate? > > Hello Bin, > > it was what I observed. > > As start.S calls car_init() but start_64.S does not the linker could > eliminate car.o on x86_64. Why it does not eliminate it with the patch I > do not know. > Thanks. > But I still think that building car.o on 64bit does not make sense. > Yes, so please do the rebase and send v2. You can drop the commit message mentioning Ivan's patch since it has not been applied. Regards, Bin
diff --git a/arch/x86/cpu/qemu/Makefile b/arch/x86/cpu/qemu/Makefile index e5ea92545e3..b1daffd4a32 100644 --- a/arch/x86/cpu/qemu/Makefile +++ b/arch/x86/cpu/qemu/Makefile @@ -2,8 +2,11 @@ # # Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com> +ifndef CONFIG_$(SPL_)X86_64 +obj-y += car.o +endif ifndef CONFIG_EFI_STUB -obj-y += car.o dram.o +obj-y += dram.o endif obj-y += qemu.o obj-$(CONFIG_QFW) += cpu.o e820.o
car.o can only be used with start.o, not with start64.o. So on qemu 64bit it should only be built for 32bit SPL but not for u-boot. Without this patch but with an unrelated pending patch ("x86: Add 64-bit setjmp/longjmp implementation") the following error occurred for qemu-x86_64_defconfig: arch/x86/cpu/built-in.o: In function `car_init': arch/x86/cpu/qemu/car.S:25: undefined reference to `car_init_ret' Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> --- arch/x86/cpu/qemu/Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)