parisc: Switch to generic COMPAT_BINFMT_ELF
Quoted 4 lines · Helge Deller
Drop our own compat binfmt implementation in
arch/parisc/kernel/binfmt_elf32.cin favour of the generic implementation withCONFIG_COMPAT_BINFMT_ELF.
Quoted 8 lines
While cleaning up the dependencies, I noticed that
ELF_PLATFORMwas strangely
defined: On a 32-bit kernel, it was defined to "PARISC", while when running in compat mode on a 64-bit kernel it was defined to "PARISC32". Since it doesn't seem to be used in glibc yet, it's now defined in both cases to "PARISC". In any case, it can be distinguished because it's either a 32-bit or a 64-bit ELF file.Signed-off-by Helge Deller <[email protected]>
This patch results in:
Building parisc:a500_defconfig ... failed
--------------
Error log:
make[2]: *** No rule to make target 'arch/parisc/kernel/binfmt_elf32.o', needed by 'arch/parisc/kernel/built-in.a'. Stop.
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [arch/parisc/kernel] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [sub-make] Error 2
--------------
Building parisc:generic-64bit_defconfig ... failed
--------------
Error log:
make[2]: *** No rule to make target 'arch/parisc/kernel/binfmt_elf32.o', needed by 'arch/parisc/kernel/built-in.a'. Stop.
Indeed, arch/parisc/kernel/binfmt_elf32.o is still listed in Makefile for 64-bit builds.
$ git grep binfmt_elf32.o arch/parisc/ arch/parisc/kernel/Makefile:obj-$(CONFIG_64BIT) += binfmt_elf32.o sys_parisc32.o signal32.o
Guenter
Helge Deller
maintainer* Guenter Roeck <[email protected]>:
Quoted 32 lines · Helge Deller
Quoted 4 lines
Drop our own compat binfmt implementation in
arch/parisc/kernel/binfmt_elf32.cin favour of the generic implementation withCONFIG_COMPAT_BINFMT_ELF.Quoted 8 lines
While cleaning up the dependencies, I noticed that
ELF_PLATFORMwas strangely
defined: On a 32-bit kernel, it was defined to "PARISC", while when running in compat mode on a 64-bit kernel it was defined to "PARISC32". Since it doesn't seem to be used in glibc yet, it's now defined in both cases to "PARISC". In any case, it can be distinguished because it's either a 32-bit or a 64-bit ELF file.Signed-off-by Helge Deller <[email protected]>This patch results in:
Building parisc:a500_defconfig ... failed
--------------
Error log:
make[2]: *** No rule to make target 'arch/parisc/kernel/binfmt_elf32.o', needed by 'arch/parisc/kernel/built-in.a'. Stop.
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [arch/parisc/kernel] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [sub-make] Error 2
--------------
Building parisc:generic-64bit_defconfig ... failed
--------------
Error log:
make[2]: *** No rule to make target 'arch/parisc/kernel/binfmt_elf32.o', needed by 'arch/parisc/kernel/built-in.a'. Stop.
Quoted 5 lines
Indeed,
arch/parisc/kernel/binfmt_elf32.ois still listed inMakefilefor 64-bit builds.$ git grep binfmt_elf32.o arch/parisc/ arch/parisc/kernel/Makefile:obj-$(CONFIG_64BIT) += binfmt_elf32.o sys_parisc32.o signal32.o
You are right.
I got fooled because I still had the binfmt_elf32.o object in my build directory and so I didn't faced this build error. And even 0-day builds didn't complained...
Thanks for testing!
Patch below fixes it.
Helge
---
[PATCH] parisc: Fix missing binfmt_elf32.o build error
Commit 71d577db01a5 ("parisc: Switch to generic COMPAT_BINFMT_ELF") removed the binfmt_elf32.c source file, but missed to drop the object file from list of object files the Makefile too, which then results in a build error.
arch/parisc/kernel/Makefile +1 -1
@@ -23,7 +23,7 @@ obj-$(CONFIG_SMP) += smp.o obj-$(CONFIG_PA11) += pci-dma.o obj-$(CONFIG_PCI) += pci.o obj-$(CONFIG_MODULES) += module.o -obj-$(CONFIG_64BIT) += binfmt_elf32.o sys_parisc32.o signal32.o +obj-$(CONFIG_64BIT) += sys_parisc32.o signal32.o obj-$(CONFIG_STACKTRACE)+= stacktrace.o obj-$(CONFIG_AUDIT) += audit.o obj64-$(CONFIG_AUDIT) += compat_audit.o
Guenter Roeck
Tested-byQuoted 53 lines · Helge Deller
* Guenter Roeck <[email protected]>:
Quoted 32 lines · Helge Deller
Quoted 4 lines
Drop our own compat binfmt implementation in
arch/parisc/kernel/binfmt_elf32.cin favour of the generic implementation withCONFIG_COMPAT_BINFMT_ELF.Quoted 8 lines
While cleaning up the dependencies, I noticed that
ELF_PLATFORMwas strangely
defined: On a 32-bit kernel, it was defined to "PARISC", while when running in compat mode on a 64-bit kernel it was defined to "PARISC32". Since it doesn't seem to be used in glibc yet, it's now defined in both cases to "PARISC". In any case, it can be distinguished because it's either a 32-bit or a 64-bit ELF file.Signed-off-by Helge Deller <[email protected]>This patch results in:
Building parisc:a500_defconfig ... failed
--------------
Error log:
make[2]: *** No rule to make target 'arch/parisc/kernel/binfmt_elf32.o', needed by 'arch/parisc/kernel/built-in.a'. Stop.
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [arch/parisc/kernel] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [sub-make] Error 2
--------------
Building parisc:generic-64bit_defconfig ... failed
--------------
Error log:
make[2]: *** No rule to make target 'arch/parisc/kernel/binfmt_elf32.o', needed by 'arch/parisc/kernel/built-in.a'. Stop.Quoted 5 lines
Indeed,
arch/parisc/kernel/binfmt_elf32.ois still listed inMakefilefor 64-bit builds.$ git grep binfmt_elf32.o arch/parisc/ arch/parisc/kernel/Makefile:obj-$(CONFIG_64BIT) += binfmt_elf32.o sys_parisc32.o signal32.oYou are right.
I got fooled because I still had the binfmt_elf32.o object in my build directory and so I didn't faced this build error. And even 0-day builds didn't complained...Thanks for testing!
Patch below fixes it.
Helge
---[PATCH] parisc: Fix missing binfmt_elf32.o build error
Quoted 8 lines
Commit
71d577db01a5("parisc: Switch to genericCOMPAT_BINFMT_ELF") removed thebinfmt_elf32.csource file, but missed to drop the object file from list of object files theMakefiletoo, which then results in a build error.Fixes 71d577db01a5 ("parisc: Switch to generic COMPAT_BINFMT_ELF")Reported-by Guenter Roeck <[email protected]>Signed-off-by Helge Deller <[email protected]>
Quoted 15 lines
arch/parisc/kernel/Makefile +1
-1@@ -23,7 +23,7 @@ obj-$(CONFIG_SMP) += smp.o obj-$(CONFIG_PA11) += pci-dma.o obj-$(CONFIG_PCI) += pci.o obj-$(CONFIG_MODULES) += module.o -obj-$(CONFIG_64BIT) += binfmt_elf32.o sys_parisc32.o signal32.o +obj-$(CONFIG_64BIT) += sys_parisc32.o signal32.o obj-$(CONFIG_STACKTRACE)+= stacktrace.o obj-$(CONFIG_AUDIT) += audit.o obj64-$(CONFIG_AUDIT) += compat_audit.o