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 --]
next prev parent 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).