From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1791) id 88A893857703; Wed, 19 Jul 2023 19:24:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 88A893857703 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1689794669; bh=e5oKJJtKP1hMSTy6ZxCljOyVbKMcYE/PpILhFs2fqKg=; h=From:To:Subject:Date:From; b=Tfo0psjxAK8c0JzMdmaVdnW4tqJvAjFljHQW5WGBaJVI17y5WXJC38hvFvUNSKvSz Almf0CEENvzfv4ea+ncazJdEp+Zu2ceUQlZEtsYpA4nveha5z/gT7YEBGW5eC6at4y Ic6n6P/zQpTwPv37ta9Tpc1EWxo78gSIw8O393MA= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Adhemerval Zanella To: glibc-cvs@sourceware.org Subject: [glibc] scripts: Add fortify checks on installed headers X-Act-Checkin: glibc X-Git-Author: Adhemerval Zanella X-Git-Refname: refs/heads/master X-Git-Oldrev: 6d457ff36a45872d66762fb31106145ff753060d X-Git-Newrev: 30379efad117b85cc56a255cac628d0ad745bfe3 Message-Id: <20230719192429.88A893857703@sourceware.org> Date: Wed, 19 Jul 2023 19:24:29 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=30379efad117b85cc56a255cac628d0ad745bfe3 commit 30379efad117b85cc56a255cac628d0ad745bfe3 Author: Adhemerval Zanella Date: Wed Jul 19 11:37:01 2023 -0300 scripts: Add fortify checks on installed headers The _FORTIFY_SOURCE is used as default by some system compilers, and there is no way to check if some fortify extension does not trigger any conformance issue. Checked on x86_64-linux-gnu. Reviewed-by: Carlos O'Donell Diff: --- scripts/check-installed-headers.sh | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/scripts/check-installed-headers.sh b/scripts/check-installed-headers.sh index 5a50a491ca..23506a2514 100644 --- a/scripts/check-installed-headers.sh +++ b/scripts/check-installed-headers.sh @@ -29,6 +29,9 @@ cxx_modes="-std=c++98 -std=gnu++98 -std=c++11 -std=gnu++11" # These are probably the most commonly used three. lib_modes="-D_DEFAULT_SOURCE=1 -D_GNU_SOURCE=1 -D_XOPEN_SOURCE=700" +# Also check for fortify modes, since it might be enabled as default. +fortify_modes="1 2 3" + if [ $# -lt 3 ]; then echo "usage: $0 c|c++ \"compile command\" header header header..." >&2 exit 2 @@ -100,29 +103,36 @@ EOF echo :: "$header" for lang_mode in "" $lang_modes; do for lib_mode in "" $lib_modes; do - echo :::: $lang_mode $lib_mode - if [ -z "$lib_mode" ]; then - expanded_lib_mode='/* default library mode */' - else - expanded_lib_mode=$(echo : $lib_mode | \ - sed 's/^: -D/#define /; s/=/ /') - fi - cat >"$cih_test_c" <"$cih_test_c" < int avoid_empty_translation_unit; EOF - if $cc_cmd -finput-charset=ascii -fsyntax-only $lang_mode \ - "$cih_test_c" 2>&1 - then : - else failed=1 - fi + if $cc_cmd -finput-charset=ascii -fsyntax-only $lang_mode \ + "$cih_test_c" 2>&1 + then : + else failed=1 + fi + done done done done