lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK7LNASrzZnoLeRQz9FH6EUEz1rSPY_-GHvmS=8JA2R8eCjSKg@mail.gmail.com>
Date: Sat, 11 Jan 2025 10:13:44 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Ard Biesheuvel <ardb@...nel.org>, Ard Biesheuvel <ardb+git@...gle.com>, linux-kbuild@...r.kernel.org, 
	linux-kernel@...r.kernel.org, linux-riscv@...ts.infradead.org, 
	linux-s390@...r.kernel.org
Subject: Re: [PATCH] kbuild: Strip runtime const RELA sections correctly

On Sat, Jan 11, 2025 at 3:33 AM Linus Torvalds
<torvalds@...ux-foundation.org> wrote:
>
> On Fri, 10 Jan 2025 at 10:11, Ard Biesheuvel <ardb@...nel.org> wrote:
> >
> > I suppose this is a consequence of 8962b6b475bddc ("kbuild: print
> > short log in addition to the whole command with V=1") which introduced
> > an $(if ) where the else branch is simply ':' and so it always
> > succeeds.
>
> Hmm. Odd. I don't see why that part of the commit exists, and you're
> right, that seems like a bad idea.
>
> And removing that odd $(if..) and making it just do
>
>    cmd = @set -e; $($(quiet)log_print) $(delete-on-interrupt) $(cmd_$(1))
>
> doesn't seem to have any obvious negative effects.

When cmd_foo is not defined, $(call if_changed,foo) will fail with this change,
but $(call cmd,foo) will succeed regardless.

In Makefile, the variable expansion works like the latter.
When X is not defined, $(X) is expanded to an empty string successfully.
This is useful.


> I'm probably missing some obvious reason why that $(if..) was added,
> it's been that way for two years now.

We do not need to guard both a definition and its callsite.

For example, the current code in arch/powerpc/Makefile.postlink:

vmlinux: FORCE
        @true
ifdef CONFIG_PPC64
        $(call cmd,head_check)
endif
ifdef CONFIG_RELOCATABLE
        $(call if_changed,relocs_check)
endif
ifdef CONFIG_FUNCTION_TRACER
ifndef CONFIG_PPC64_ELF_ABI_V1
        $(call cmd,ftrace_check)
endif
endif


... can be simplified into:

vmlinux: FORCE
        $(call cmd,head_check)
        $(call if_changed,relocs_check)
        $(call cmd,ftrace_check)






-- 
Best Regards
Masahiro Yamada

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ