The generic-y is redundant under the following condition:
- arch has its own implementation
- the same header is added to generated-y
- the same header is added to mandatory-y
If a redundant generic-y is found, the warning like follows is displayed:
scripts/Makefile.asm-generic:20: redundant generic-y found in arch/arm/include/asm/Kbuild: timex.h
I fixed up arch Kbuild files found by this.
Suggested-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
12 files changed:
generic-y += serial.h
generic-y += simd.h
generic-y += sizes.h
generic-y += serial.h
generic-y += simd.h
generic-y += sizes.h
generic-y += trace_clock.h
generated-y += mach-types.h
generic-y += trace_clock.h
generated-y += mach-types.h
generic-y += ftrace.h
generic-y += futex.h
generic-y += hardirq.h
generic-y += ftrace.h
generic-y += futex.h
generic-y += hardirq.h
generic-y += hw_irq.h
generic-y += irq_regs.h
generic-y += irq_work.h
generic-y += hw_irq.h
generic-y += irq_regs.h
generic-y += irq_work.h
generated-y += unistd_64.h
generic-y += kvm_para.h
generated-y += unistd_64.h
generic-y += kvm_para.h
generic-y += ftrace.h
generic-y += hardirq.h
generic-y += hw_irq.h
generic-y += ftrace.h
generic-y += hardirq.h
generic-y += hw_irq.h
generic-y += irq_regs.h
generic-y += irq_work.h
generic-y += kdebug.h
generic-y += irq_regs.h
generic-y += irq_work.h
generic-y += kdebug.h
generic-y += sections.h
generic-y += segment.h
generic-y += shmparam.h
generic-y += sections.h
generic-y += segment.h
generic-y += shmparam.h
generic-y += switch_to.h
generic-y += topology.h
generic-y += trace_clock.h
generic-y += switch_to.h
generic-y += topology.h
generic-y += trace_clock.h
generated-y += syscall_table_32.h
generated-y += syscall_table_64.h
generated-y += syscall_table_c32.h
generated-y += syscall_table_32.h
generated-y += syscall_table_64.h
generated-y += syscall_table_c32.h
generic-y += current.h
generic-y += device.h
generic-y += div64.h
generic-y += current.h
generic-y += device.h
generic-y += div64.h
generic-y += preempt.h
generic-y += seccomp.h
generic-y += segment.h
generic-y += preempt.h
generic-y += seccomp.h
generic-y += segment.h
generic-y += trace_clock.h
generic-y += user.h
generic-y += vga.h
generic-y += trace_clock.h
generic-y += user.h
generic-y += vga.h
generic-y += div64.h
generic-y += export.h
generic-y += irq_regs.h
generic-y += div64.h
generic-y += export.h
generic-y += irq_regs.h
generic-y += local64.h
generic-y += mcs_spinlock.h
generic-y += preempt.h
generic-y += local64.h
generic-y += mcs_spinlock.h
generic-y += preempt.h
generic-y += local64.h
generic-y += mcs_spinlock.h
generic-y += mm-arch-hooks.h
generic-y += local64.h
generic-y += mcs_spinlock.h
generic-y += mm-arch-hooks.h
generic-y += rwsem.h
generic-y += trace_clock.h
generic-y += unaligned.h
generic-y += rwsem.h
generic-y += trace_clock.h
generic-y += unaligned.h
generated-y += unistd_32.h
generated-y += unistd_64.h
generated-y += unistd_32.h
generated-y += unistd_64.h
generated-y += unistd_32.h
generated-y += unistd_64.h
generated-y += unistd_x32.h
generated-y += unistd_32.h
generated-y += unistd_64.h
generated-y += unistd_x32.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += kprobes.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += kprobes.h
generic-y += local.h
generic-y += local64.h
generic-y += mcs_spinlock.h
generic-y += local.h
generic-y += local64.h
generic-y += mcs_spinlock.h
generated-y += unistd_32.h
generic-y += kvm_para.h
generated-y += unistd_32.h
generic-y += kvm_para.h
include scripts/Kbuild.include
include scripts/Kbuild.include
+redundant := $(filter $(mandatory-y) $(generated-y), $(generic-y))
+redundant += $(foreach f, $(generic-y), $(if $(wildcard $(srctree)/$(src)/$(f)),$(f)))
+redundant := $(sort $(redundant))
+$(if $(redundant),\
+ $(warning redundant generic-y found in $(src)/Kbuild: $(redundant)))
+
# If arch does not implement mandatory headers, fallback to asm-generic ones.
mandatory-y := $(filter-out $(generated-y), $(mandatory-y))
generic-y += $(foreach f, $(mandatory-y), $(if $(wildcard $(srctree)/$(src)/$(f)),,$(f)))
# If arch does not implement mandatory headers, fallback to asm-generic ones.
mandatory-y := $(filter-out $(generated-y), $(mandatory-y))
generic-y += $(foreach f, $(mandatory-y), $(if $(wildcard $(srctree)/$(src)/$(f)),,$(f)))