Message ID | 1579774839-19562-16-git-send-email-amit.kachhap@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: return address signing | expand |
On Thu, 23 Jan 2020 at 11:22, Amit Daniel Kachhap <amit.kachhap@arm.com> wrote: > > From: Vincenzo Frascino <vincenzo.frascino@arm.com> > > Currently kconfig does not have a feature that allows to detect if the > used assembler supports a specific compilation option. > > Introduce 'as-option' to serve this purpose in the context of Kconfig: > > config X > def_bool $(as-option,...) > > Cc: Masahiro Yamada <yamada.masahiro@socionext.com> > Cc: linux-kbuild@vger.kernel.org > Acked-by: Masahiro Yamada <masahiroy@kernel.org> > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com> > --- > Changes since v3: > *) Changed the assembler option to -c instead of earlier -E. > *) Added Masahiro Acked-by. > > scripts/Kconfig.include | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/scripts/Kconfig.include b/scripts/Kconfig.include > index d4adfbe..c4b4424 100644 > --- a/scripts/Kconfig.include > +++ b/scripts/Kconfig.include > @@ -31,6 +31,10 @@ cc-option = $(success,$(CC) -Werror $(CLANG_FLAGS) $(1) -E -x c /dev/null -o /de > # Return y if the linker supports <flag>, n otherwise > ld-option = $(success,$(LD) -v $(1)) > > +# $(as-option,<flag>) > +# Return y if the assembler supports <flag>, n otherwise > +as-option = $(success, $(CC) $(CLANG_FLAGS) $(1) -c -x assembler /dev/null -o /dev/zero) Did you mean '-o /dev/null' here? > + > # check if $(CC) and $(LD) exist > $(error-if,$(failure,command -v $(CC)),compiler '$(CC)' not found) > $(error-if,$(failure,command -v $(LD)),linker '$(LD)' not found) > -- > 2.7.4 >
On 23/01/2020 10:30, Ard Biesheuvel wrote: > On Thu, 23 Jan 2020 at 11:22, Amit Daniel Kachhap <amit.kachhap@arm.com> wrote: >> >> From: Vincenzo Frascino <vincenzo.frascino@arm.com> >> >> Currently kconfig does not have a feature that allows to detect if the >> used assembler supports a specific compilation option. >> >> Introduce 'as-option' to serve this purpose in the context of Kconfig: >> >> config X >> def_bool $(as-option,...) >> >> Cc: Masahiro Yamada <yamada.masahiro@socionext.com> >> Cc: linux-kbuild@vger.kernel.org >> Acked-by: Masahiro Yamada <masahiroy@kernel.org> >> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> >> Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com> >> --- >> Changes since v3: >> *) Changed the assembler option to -c instead of earlier -E. >> *) Added Masahiro Acked-by. >> >> scripts/Kconfig.include | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/scripts/Kconfig.include b/scripts/Kconfig.include >> index d4adfbe..c4b4424 100644 >> --- a/scripts/Kconfig.include >> +++ b/scripts/Kconfig.include >> @@ -31,6 +31,10 @@ cc-option = $(success,$(CC) -Werror $(CLANG_FLAGS) $(1) -E -x c /dev/null -o /de >> # Return y if the linker supports <flag>, n otherwise >> ld-option = $(success,$(LD) -v $(1)) >> >> +# $(as-option,<flag>) >> +# Return y if the assembler supports <flag>, n otherwise >> +as-option = $(success, $(CC) $(CLANG_FLAGS) $(1) -c -x assembler /dev/null -o /dev/zero) > > Did you mean '-o /dev/null' here? > No /dev/zero because otherwise I get a warning that says that I am trying to compile an object into the same file. If I invert /dev/zero and /dev/null this trashes the compilation. It took me a while to get the right combination. >> + >> # check if $(CC) and $(LD) exist >> $(error-if,$(failure,command -v $(CC)),compiler '$(CC)' not found) >> $(error-if,$(failure,command -v $(LD)),linker '$(LD)' not found) >> -- >> 2.7.4 >>
On Thu, Jan 23, 2020 at 7:52 PM Vincenzo Frascino <vincenzo.frascino@arm.com> wrote: > > On 23/01/2020 10:30, Ard Biesheuvel wrote: > > On Thu, 23 Jan 2020 at 11:22, Amit Daniel Kachhap <amit.kachhap@arm.com> wrote: > >> > >> From: Vincenzo Frascino <vincenzo.frascino@arm.com> > >> > >> Currently kconfig does not have a feature that allows to detect if the > >> used assembler supports a specific compilation option. > >> > >> Introduce 'as-option' to serve this purpose in the context of Kconfig: > >> > >> config X > >> def_bool $(as-option,...) > >> > >> Cc: Masahiro Yamada <yamada.masahiro@socionext.com> > >> Cc: linux-kbuild@vger.kernel.org > >> Acked-by: Masahiro Yamada <masahiroy@kernel.org> > >> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > >> Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com> > >> --- > >> Changes since v3: > >> *) Changed the assembler option to -c instead of earlier -E. > >> *) Added Masahiro Acked-by. > >> > >> scripts/Kconfig.include | 4 ++++ > >> 1 file changed, 4 insertions(+) > >> > >> diff --git a/scripts/Kconfig.include b/scripts/Kconfig.include > >> index d4adfbe..c4b4424 100644 > >> --- a/scripts/Kconfig.include > >> +++ b/scripts/Kconfig.include > >> @@ -31,6 +31,10 @@ cc-option = $(success,$(CC) -Werror $(CLANG_FLAGS) $(1) -E -x c /dev/null -o /de > >> # Return y if the linker supports <flag>, n otherwise > >> ld-option = $(success,$(LD) -v $(1)) > >> > >> +# $(as-option,<flag>) > >> +# Return y if the assembler supports <flag>, n otherwise > >> +as-option = $(success, $(CC) $(CLANG_FLAGS) $(1) -c -x assembler /dev/null -o /dev/zero) > > > > Did you mean '-o /dev/null' here? > > > > No /dev/zero because otherwise I get a warning that says that I am trying to > compile an object into the same file. > > If I invert /dev/zero and /dev/null this trashes the compilation. It took me a > while to get the right combination. What compiler produces such a warning? GCC? Clang? -- Best Regards Masahiro Yamada
Hi Masahiro, On 26/01/2020 14:45, Masahiro Yamada wrote: > On Thu, Jan 23, 2020 at 7:52 PM Vincenzo Frascino > <vincenzo.frascino@arm.com> wrote: >> [...] >> >> No /dev/zero because otherwise I get a warning that says that I am trying to >> compile an object into the same file. >> >> If I invert /dev/zero and /dev/null this trashes the compilation. It took me a >> while to get the right combination. > > > What compiler produces such a warning? > GCC? Clang? > It is GCC: $ aarch64-none-linux-gnu-gcc -c -x assembler /dev/null -o /dev/null Assembler messages: Fatal error: The input '/dev/null' and output '/dev/null' files are the same > > > > -- > Best Regards > Masahiro Yamada >
diff --git a/scripts/Kconfig.include b/scripts/Kconfig.include index d4adfbe..c4b4424 100644 --- a/scripts/Kconfig.include +++ b/scripts/Kconfig.include @@ -31,6 +31,10 @@ cc-option = $(success,$(CC) -Werror $(CLANG_FLAGS) $(1) -E -x c /dev/null -o /de # Return y if the linker supports <flag>, n otherwise ld-option = $(success,$(LD) -v $(1)) +# $(as-option,<flag>) +# Return y if the assembler supports <flag>, n otherwise +as-option = $(success, $(CC) $(CLANG_FLAGS) $(1) -c -x assembler /dev/null -o /dev/zero) + # check if $(CC) and $(LD) exist $(error-if,$(failure,command -v $(CC)),compiler '$(CC)' not found) $(error-if,$(failure,command -v $(LD)),linker '$(LD)' not found)