2021-10-26 17:13:38

by Christophe Leroy

[permalink] [raw]
Subject: [PATCH v3] powerpc/boot: Set LC_ALL=C in wrapper script

While trying to build a simple Image for ACADIA platform, I got the
following error:

WRAP arch/powerpc/boot/simpleImage.acadia
INFO: Uncompressed kernel (size 0x6ae7d0) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0x700000)
powerpc64-linux-gnu-ld : mode d'émulation non reconnu : -T
Émulations prises en charge : elf64ppc elf32ppc elf32ppclinux elf32ppcsim elf64lppc elf32lppc elf32lppclinux elf32lppcsim
make[1]: *** [arch/powerpc/boot/Makefile:424 : arch/powerpc/boot/simpleImage.acadia] Erreur 1
make: *** [arch/powerpc/Makefile:285 : simpleImage.acadia] Erreur 2

Trying again with V=1 shows the following command

powerpc64-linux-gnu-ld -m -T arch/powerpc/boot/zImage.lds -Ttext 0x700000 --no-dynamic-linker -o arch/powerpc/boot/simpleImage.acadia -Map wrapper.map arch/powerpc/boot/fixed-head.o arch/powerpc/boot/simpleboot.o ./zImage.3278022.o arch/powerpc/boot/wrapper.a

The argument of '-m' is missing.

This is due to the wrapper script calling 'objdump -p vmlinux' and
looking for 'file format', whereas the output of objdump is:

vmlinux: format de fichier elf32-powerpc

En-tête de programme:
LOAD off 0x00010000 vaddr 0xc0000000 paddr 0x00000000 align 2**16
filesz 0x0069e1d4 memsz 0x006c128c flags rwx
NOTE off 0x0064591c vaddr 0xc063591c paddr 0x0063591c align 2**2
filesz 0x00000054 memsz 0x00000054 flags ---

Add LC_ALL=C at the beginning of the wrapper script in order to get the
output expected by the script:

vmlinux: file format elf32-powerpc

Program Header:
LOAD off 0x00010000 vaddr 0xc0000000 paddr 0x00000000 align 2**16
filesz 0x0069e1d4 memsz 0x006c128c flags rwx
NOTE off 0x0064591c vaddr 0xc063591c paddr 0x0063591c align 2**2
filesz 0x00000054 memsz 0x00000054 flags ---

Signed-off-by: Christophe Leroy <[email protected]>
---
v3: Also change patch's subject:
v2: Use LC_ALL=C per Segher
---
arch/powerpc/boot/wrapper | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
index 1cd82564c996..9184eda780fd 100755
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
@@ -26,6 +26,8 @@
# Stop execution if any command fails
set -e

+export LC_ALL=C
+
# Allow for verbose output
if [ "$V" = 1 ]; then
set -x
--
2.31.1


2021-10-26 21:29:22

by Segher Boessenkool

[permalink] [raw]
Subject: Re: [PATCH v3] powerpc/boot: Set LC_ALL=C in wrapper script

On Tue, Oct 26, 2021 at 03:48:29PM +0200, Christophe Leroy wrote:
> While trying to build a simple Image for ACADIA platform, I got the
> following error:
>
> WRAP arch/powerpc/boot/simpleImage.acadia
> INFO: Uncompressed kernel (size 0x6ae7d0) overlaps the address of the wrapper(0x400000)
> INFO: Fixing the link_address of wrapper to (0x700000)
> powerpc64-linux-gnu-ld?: mode d'?mulation non reconnu?: -T
> ?mulations prises en charge?: elf64ppc elf32ppc elf32ppclinux elf32ppcsim elf64lppc elf32lppc elf32lppclinux elf32lppcsim
> make[1]: *** [arch/powerpc/boot/Makefile:424 : arch/powerpc/boot/simpleImage.acadia] Erreur 1
> make: *** [arch/powerpc/Makefile:285 : simpleImage.acadia] Erreur 2
>
> Trying again with V=1 shows the following command
>
> powerpc64-linux-gnu-ld -m -T arch/powerpc/boot/zImage.lds -Ttext 0x700000 --no-dynamic-linker -o arch/powerpc/boot/simpleImage.acadia -Map wrapper.map arch/powerpc/boot/fixed-head.o arch/powerpc/boot/simpleboot.o ./zImage.3278022.o arch/powerpc/boot/wrapper.a
>
> The argument of '-m' is missing.
>
> This is due to the wrapper script calling 'objdump -p vmlinux' and
> looking for 'file format', whereas the output of objdump is:
>
> vmlinux: format de fichier elf32-powerpc
>
> En-t?te de programme:
> LOAD off 0x00010000 vaddr 0xc0000000 paddr 0x00000000 align 2**16
> filesz 0x0069e1d4 memsz 0x006c128c flags rwx
> NOTE off 0x0064591c vaddr 0xc063591c paddr 0x0063591c align 2**2
> filesz 0x00000054 memsz 0x00000054 flags ---
>
> Add LC_ALL=C at the beginning of the wrapper script in order to get the
> output expected by the script:
>
> vmlinux: file format elf32-powerpc
>
> Program Header:
> LOAD off 0x00010000 vaddr 0xc0000000 paddr 0x00000000 align 2**16
> filesz 0x0069e1d4 memsz 0x006c128c flags rwx
> NOTE off 0x0064591c vaddr 0xc063591c paddr 0x0063591c align 2**2
> filesz 0x00000054 memsz 0x00000054 flags ---
>
> Signed-off-by: Christophe Leroy <[email protected]>

Acked-by: Segher Boessenkool <[email protected]>

Thanks,


Segher

2021-11-02 11:44:30

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH v3] powerpc/boot: Set LC_ALL=C in wrapper script

On Tue, 26 Oct 2021 15:48:29 +0200, Christophe Leroy wrote:
> While trying to build a simple Image for ACADIA platform, I got the
> following error:
>
> WRAP arch/powerpc/boot/simpleImage.acadia
> INFO: Uncompressed kernel (size 0x6ae7d0) overlaps the address of the wrapper(0x400000)
> INFO: Fixing the link_address of wrapper to (0x700000)
> powerpc64-linux-gnu-ld : mode d'émulation non reconnu : -T
> Émulations prises en charge : elf64ppc elf32ppc elf32ppclinux elf32ppcsim elf64lppc elf32lppc elf32lppclinux elf32lppcsim
> make[1]: *** [arch/powerpc/boot/Makefile:424 : arch/powerpc/boot/simpleImage.acadia] Erreur 1
> make: *** [arch/powerpc/Makefile:285 : simpleImage.acadia] Erreur 2
>
> [...]

Applied to powerpc/next.

[1/1] powerpc/boot: Set LC_ALL=C in wrapper script
https://git.kernel.org/powerpc/c/b949d009dd52ecdced248889cf11297677f9e8a6

cheers