Re: [PATCH v2 3/3] microblaze: uapi header and system call table file generation

From: Michal Simek
Date: Wed Oct 03 2018 - 07:26:45 EST


On 3.10.2018 07:08, Firoz Khan wrote:
> Hi Michal,
>
> On Tue, 2 Oct 2018 at 19:37, Michal Simek <michal.simek@xxxxxxxxxx> wrote:
>>
>> On 1.10.2018 14:43, Firoz Khan wrote:
>>> System call table generation script must be run to generate
>>> unistd_32.h and syscall_table.h files. This patch will have
>>> changes which will invokes the script.
>>>
>>> This patch will generate unistd_32.h and syscall_table.h
>>> files by the syscall table generation script invoked by
>>> arch/microblaze/Makefile and the generated files against the
>>> removed files will be identical.
>>>
>>> The generated uapi header file will be included in
>>> uapi/asm/unistd.h and generated system call table support
>>> file will be included by kernel/syscall_table.S file.
>>>
>>> Signed-off-by: Firoz Khan <firoz.khan@xxxxxxxxxx>
>>> ---
>>> arch/microblaze/Makefile | 3 +
>>> arch/microblaze/include/asm/Kbuild | 1 +
>>> arch/microblaze/include/uapi/asm/Kbuild | 1 +
>>> arch/microblaze/include/uapi/asm/unistd.h | 411 +-----------------------------
>>> arch/microblaze/kernel/syscall_table.S | 406 +----------------------------
>>> 5 files changed, 10 insertions(+), 812 deletions(-)
>>>
>>> diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
>>> index 4f3ab57..cda5e03 100644
>>> --- a/arch/microblaze/Makefile
>>> +++ b/arch/microblaze/Makefile
>>> @@ -81,6 +81,9 @@ all: linux.bin
>>> archclean:
>>> $(Q)$(MAKE) $(clean)=$(boot)
>>>
>>> +archheaders:
>>> + $(Q)$(MAKE) $(build)=arch/microblaze/kernel/syscalls all
>>> +
>>> linux.bin linux.bin.gz linux.bin.ub: vmlinux
>>> $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
>>>
>>> diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
>>> index 569ba9e..d64f5e7 100644
>>> --- a/arch/microblaze/include/asm/Kbuild
>>> +++ b/arch/microblaze/include/asm/Kbuild
>>> @@ -31,3 +31,4 @@ generic-y += trace_clock.h
>>> generic-y += vga.h
>>> generic-y += word-at-a-time.h
>>> generic-y += xor.h
>>> +generic-y += syscall_table.h
>>> \ No newline at end of file
>>
>> Still the problem with "No newline at end of file"
>>
>>> diff --git a/arch/microblaze/include/uapi/asm/Kbuild b/arch/microblaze/include/uapi/asm/Kbuild
>>> index 2c6a6bf..3a40659 100644
>>> --- a/arch/microblaze/include/uapi/asm/Kbuild
>>> +++ b/arch/microblaze/include/uapi/asm/Kbuild
>>> @@ -28,3 +28,4 @@ generic-y += termbits.h
>>> generic-y += termios.h
>>> generic-y += types.h
>>> generic-y += ucontext.h
>>> +generic-y += unistd_32.h
>>> \ No newline at end of file
>>
>> and here too.
>
> Thanks for your comment. checkpatch script didn't warn this one:(
> Hopefully, I can fix this one in the next version.
>
> I would appreciate if you can perform the boot test on the actual
> platform and share the result with me.

I see one issue there.
Run
make mrproper
make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/1/

And then

make mrproper
make archheaders V=1
make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/2/

And compare output.
What I see is that in the first part asm/unistd_32.h pointing to
asm-generic/unistd_32.h

But when archheaders is run before there is expected content.

That means there is incorrect/missing dependency in Makefiles.


Time to time I am able to see compilation warnings
but I didn't find exact steps to replicate this but it also looks like
on missing dependency somewhere.

[linux](next)$ make mmu_defconfig
#
# configuration written to .config
#
[linux](next)$ make -j8 simpleImage.system
WRAP arch/microblaze/include/generated/asm/barrier.h
WRAP arch/microblaze/include/generated/asm/bitops.h
WRAP arch/microblaze/include/generated/asm/bug.h
WRAP arch/microblaze/include/generated/asm/bugs.h
WRAP arch/microblaze/include/generated/asm/device.h
WRAP arch/microblaze/include/generated/asm/compat.h
WRAP arch/microblaze/include/generated/asm/div64.h
WRAP arch/microblaze/include/generated/asm/dma-mapping.h
WRAP arch/microblaze/include/generated/asm/emergency-restart.h
WRAP arch/microblaze/include/generated/asm/exec.h
WRAP arch/microblaze/include/generated/asm/extable.h
WRAP arch/microblaze/include/generated/asm/fb.h
WRAP arch/microblaze/include/generated/asm/hardirq.h
WRAP arch/microblaze/include/generated/asm/irq_regs.h
WRAP arch/microblaze/include/generated/asm/kdebug.h
WRAP arch/microblaze/include/generated/asm/kmap_types.h
WRAP arch/microblaze/include/generated/asm/irq_work.h
WRAP arch/microblaze/include/generated/asm/kprobes.h
WRAP arch/microblaze/include/generated/asm/linkage.h
WRAP arch/microblaze/include/generated/asm/local.h
WRAP arch/microblaze/include/generated/asm/local64.h
WRAP arch/microblaze/include/generated/asm/mcs_spinlock.h
WRAP arch/microblaze/include/generated/asm/mm-arch-hooks.h
WRAP arch/microblaze/include/generated/asm/parport.h
WRAP arch/microblaze/include/generated/asm/percpu.h
WRAP arch/microblaze/include/generated/asm/preempt.h
WRAP arch/microblaze/include/generated/asm/topology.h
WRAP arch/microblaze/include/generated/asm/syscalls.h
WRAP arch/microblaze/include/generated/asm/trace_clock.h
WRAP arch/microblaze/include/generated/asm/vga.h
WRAP arch/microblaze/include/generated/asm/serial.h
WRAP arch/microblaze/include/generated/asm/word-at-a-time.h
WRAP arch/microblaze/include/generated/asm/xor.h
HOSTCC scripts/bin2c
HOSTCC scripts/kallsyms
HOSTCC scripts/dtc/dtc.o
HOSTCC scripts/mod/mk_elfconfig
HOSTCC scripts/sortextable
CC scripts/mod/empty.o
HOSTCC scripts/dtc/flattree.o
UPD include/config/kernel.release
HOSTCC scripts/dtc/fstree.o
HOSTCC scripts/dtc/data.o
HOSTCC scripts/dtc/livetree.o
CC scripts/mod/devicetable-offsets.s
HOSTCC scripts/dtc/treesource.o
HOSTCC scripts/dtc/srcpos.o
MKELF scripts/mod/elfconfig.h
UPD scripts/mod/devicetable-offsets.h
HOSTCC scripts/dtc/checks.o
HOSTCC scripts/dtc/util.o
HOSTCC scripts/mod/sumversion.o
LEX scripts/dtc/dtc-lexer.lex.c
YACC scripts/dtc/dtc-parser.tab.h
YACC scripts/dtc/dtc-parser.tab.c
UPD include/generated/utsrelease.h
HOSTCC scripts/dtc/dtc-lexer.lex.o
CC kernel/bounds.s
UPD include/generated/timeconst.h
HOSTCC scripts/dtc/dtc-parser.tab.o
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/modpost.o
UPD include/generated/bounds.h
CC arch/microblaze/kernel/asm-offsets.s
In file included from ./arch/microblaze/include/uapi/asm/unistd.h:14:0,
from ./arch/microblaze/include/asm/unistd.h:12,
from ./include/uapi/linux/unistd.h:8,
from ./arch/microblaze/include/asm/seccomp.h:5,
from ./include/linux/seccomp.h:14,
from ./include/linux/sched.h:21,
from arch/microblaze/kernel/asm-offsets.c:13:
./arch/microblaze/include/generated/uapi/asm/unistd_32.h:1:35: fatal
error: asm-generic/unistd_32.h: No such file or directory
#include <asm-generic/unistd_32.h>
^
compilation terminated.
make[1]: *** [arch/microblaze/kernel/asm-offsets.s] Error 1
make: *** [prepare0] Error 2
make: *** Waiting for unfinished jobs....
HOSTLD scripts/dtc/dtc
HOSTLD scripts/mod/modpost



When build is fine system is booting fine (v4.19-rc6 + your patches).

Thanks,
Michal