public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Stefano Brivio <sbrivio@redhat.com>
Cc: passt-dev@passt.top
Subject: Re: [PATCH 1/8] Makefile: Honour passed CPPFLAGS, not just CFLAGS
Date: Tue, 15 Nov 2022 16:00:24 +1100	[thread overview]
Message-ID: <Y3Mc6AG3B6dSsfPH@yekko> (raw)
In-Reply-To: <20221115012349.2240096-2-sbrivio@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 3631 bytes --]

On Tue, Nov 15, 2022 at 02:23:42AM +0100, Stefano Brivio wrote:
> CPPFLAGS allow the user to pass pre-processor flags. This is unlikely
> to be needed at the moment, but the Debian Hardening Walkthrough
> reasonably requests it to be handled in order to fully support
> hardened build flags:
>   https://wiki.debian.org/HardeningWalkthrough#Handling_dpkg-buildflags_in_your_upstream_build_system
> 
> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>

Reviewed-by: David Gibson <david@gibson.dropbear.id.au>

Possible refinement, though:  if we moved our own flags which are
really for the preprocessor (-D*) to CPPFLAGS, then we can probably
pass just CPPFLAGS, not CFLAGS to the static checkers and avoid the
ugly filter/filter-out expressions.

> ---
>  Makefile | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 6b22408..a6e3164 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -60,8 +60,8 @@ HEADERS = $(PASST_HEADERS) seccomp.h
>  # csum_unaligned(). Mark csum_unaligned() as "noipa" as a quick work-around,
>  # while we figure out if a corresponding gcc issue has already been reported.
>  ifeq (,$(filter-out 11 12, $(shell $(CC) -dumpversion)))
> -ifneq (,$(filter -flto%,$(FLAGS) $(CFLAGS)))
> -ifneq (,$(filter -O2,$(FLAGS) $(CFLAGS)))
> +ifneq (,$(filter -flto%,$(FLAGS) $(CFLAGS) $(CPPFLAGS)))
> +ifneq (,$(filter -O2,$(FLAGS) $(CFLAGS) $(CPPFLAGS)))
>  	FLAGS += -DTCP_HASH_NOINLINE
>  	FLAGS += -DSIPHASH_20B_NOINLINE
>  	FLAGS += -DCSUM_UNALIGNED_NO_IPA
> @@ -121,11 +121,11 @@ seccomp.h: seccomp.sh $(PASST_SRCS) $(PASST_HEADERS)
>  	@ EXTRA_SYSCALLS="$(EXTRA_SYSCALLS)" ./seccomp.sh $(PASST_SRCS) $(PASST_HEADERS)
>  
>  passt: $(PASST_SRCS) $(HEADERS)
> -	$(CC) $(FLAGS) $(CFLAGS) $(PASST_SRCS) -o passt $(LDFLAGS)
> +	$(CC) $(FLAGS) $(CFLAGS) $(CPPFLAGS) $(PASST_SRCS) -o passt $(LDFLAGS)
>  
>  passt.avx2: FLAGS += -Ofast -mavx2 -ftree-vectorize -funroll-loops
>  passt.avx2: $(PASST_SRCS) $(HEADERS)
> -	$(CC) $(filter-out -O2,$(FLAGS) $(CFLAGS)) \
> +	$(CC) $(filter-out -O2,$(FLAGS) $(CFLAGS) $(CPPFLAGS)) \
>  		$(PASST_SRCS) -o passt.avx2 $(LDFLAGS)
>  
>  passt.avx2: passt
> @@ -134,7 +134,7 @@ pasta.avx2 pasta.1 pasta: pasta%: passt%
>  	ln -s $< $@
>  
>  qrap: $(QRAP_SRCS) passt.h
> -	$(CC) $(FLAGS) $(CFLAGS) $(QRAP_SRCS) -o qrap $(LDFLAGS)
> +	$(CC) $(FLAGS) $(CFLAGS) $(CPPFLAGS) $(QRAP_SRCS) -o qrap $(LDFLAGS)
>  
>  valgrind: EXTRA_SYSCALLS += rt_sigprocmask rt_sigtimedwait rt_sigaction	\
>  			    getpid gettid kill clock_gettime mmap	\
> @@ -283,7 +283,7 @@ clang-tidy: $(SRCS) $(HEADERS)
>  	-concurrency-mt-unsafe,\
>  	-readability-identifier-length \
>  	-config='{CheckOptions: [{key: bugprone-suspicious-string-compare.WarnOnImplicitComparison, value: "false"}]}' \
> -	--warnings-as-errors=* $(SRCS) -- $(filter-out -pie,$(FLAGS) $(CFLAGS))
> +	--warnings-as-errors=* $(SRCS) -- $(filter-out -pie,$(FLAGS) $(CFLAGS) $(CPPFLAGS))
>  
>  SYSTEM_INCLUDES := /usr/include $(wildcard /usr/include/$(TARGET))
>  ifeq ($(shell $(CC) -v 2>&1 | grep -c "gcc version"),1)
> @@ -299,5 +299,5 @@ cppcheck: $(SRCS) $(HEADERS)
>  	$(SYSTEM_INCLUDES:%=--suppress=unmatchedSuppression:%/*)	\
>  	--inline-suppr							\
>  	--suppress=unusedStructMember					\
> -	$(filter -D%,$(FLAGS) $(CFLAGS))				\
> +	$(filter -D%,$(FLAGS) $(CFLAGS) $(CPPFLAGS))			\
>  	.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2022-11-15  9:22 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-15  1:23 [PATCH 0/8] Fixes for Debian package functionality and build Stefano Brivio
2022-11-15  1:23 ` [PATCH 1/8] Makefile: Honour passed CPPFLAGS, not just CFLAGS Stefano Brivio
2022-11-15  5:00   ` David Gibson [this message]
2022-11-15  1:23 ` [PATCH 2/8] Makefile: Don't filter out -O2 from supplied flags for AVX2 builds Stefano Brivio
2022-11-15  5:15   ` David Gibson
2022-11-15  1:23 ` [PATCH 3/8] Makefile: It's AUDIT_ARCH_MIPSEL64, not AUDIT_ARCH_MIPS64EL Stefano Brivio
2022-11-16  5:14   ` David Gibson
2022-11-15  1:23 ` [PATCH 4/8] Makefile: Change HPPA into PARISC while building PASST_AUDIT_ARCH Stefano Brivio
2022-11-16  5:15   ` David Gibson
2022-11-15  1:23 ` [PATCH 5/8] util, pasta: Use __clone2() instead of clone() on ia64 Stefano Brivio
2022-11-16  5:17   ` David Gibson
2022-11-16  8:12     ` Stefano Brivio
2022-11-15  1:23 ` [PATCH 6/8] README: Add links to Debian package tracker Stefano Brivio
2022-11-16  5:18   ` David Gibson
2022-11-15  1:23 ` [PATCH 7/8] contrib/apparmor: Merge pasta and passt profiles, update rules Stefano Brivio
2022-11-15  1:23 ` [PATCH 8/8] Remove contrib/debian, Debian package development now happens on Salsa Stefano Brivio

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y3Mc6AG3B6dSsfPH@yekko \
    --to=david@gibson.dropbear.id.au \
    --cc=passt-dev@passt.top \
    --cc=sbrivio@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).