|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 1/4] build: make cc-option properly deal with unrecognized sub-options
On 19.07.2023 11:43, Jan Beulich wrote:
> In options like -march=, it may be only the sub-option which is
> unrecognized by the compiler. In such an event the error message often
> splits option and argument, typically saying something like "bad value
> '<argument>' for '<option>'. Extend the grep invocation accordingly,
> also accounting for Clang to not mention e.g. -march at all when an
> incorrect argument was given for it.
>
> To keep things halfway readable, re-wrap and re-indent the entire
> construct.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> ---
> In principle -e "$$pat" could now be omitted from the grep invocation,
> since if that matches, both $$opt and $$arg will, too. But I thought I'd
> leave it for completeness.
> ---
> v2: Further relax grep patterns for clang, which doesn't mention -march
> when complaining about an invalid argument to it.
I wonder whether it would be sufficient (and a little less lax) ...
> --- a/Config.mk
> +++ b/Config.mk
> @@ -90,9 +90,14 @@ PYTHON_PREFIX_ARG ?= --prefix="$(prefix)
> # of which would indicate an "unrecognized command-line option"
> warning/error.
> #
> # Usage: cflags-y += $(call cc-option,$(CC),-march=winchip-c6,-march=i586)
> -cc-option = $(shell if test -z "`echo 'void*p=1;' | \
> - $(1) $(2) -c -o /dev/null -x c - 2>&1 | grep --
> $(2:-Wa$(comma)%=%) -`"; \
> - then echo "$(2)"; else echo "$(3)"; fi ;)
> +cc-option = $(shell pat='$(2:-Wa$(comma)%=%)'; \
> + opt="$${pat%%=*}" arg="$${pat\#*=}"; \
> + if test -z "`echo 'void*p=1;' | \
> + $(1) $(2) -c -o /dev/null -x c - 2>&1 | \
> + grep -e "$$pat" -e "$$opt" -e "$$arg" -`"; \
... to check for only $$arg here (which will be the same as $$pat when
there's no = in the full option).
In either case there's likely going to be an issue with options taking
very simple (e.g. plain numeric) arguments.
Jan
> + then echo "$(2)"; \
> + else echo "$(3)"; \
> + fi;)
>
> # cc-option-add: Add an option to compilation flags, but only if supported.
> # Usage: $(call cc-option-add CFLAGS,CC,-march=winchip-c6)
>
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |