From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 63CZLnowlWrGuBYAWB0awg (envelope-from ) for ; Mon, 31 Aug 2026 03:42:50 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=w+z/9l9s; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=poRDNgS3; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=2EfJfYGq; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=+dfr9O0w; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id A35E21E09B; Mon, 31 Aug 2026 03:42:50 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 952B51E09B for ; Mon, 31 Aug 2026 03:42:48 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1FE774BA23F5 for ; Mon, 31 Aug 2026 07:42:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1FE774BA23F5 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=w+z/9l9s; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=poRDNgS3; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=2EfJfYGq; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=+dfr9O0w Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by sourceware.org (Postfix) with ESMTPS id 99ED24BA2E2B for ; Mon, 31 Aug 2026 07:42:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 99ED24BA2E2B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 99ED24BA2E2B Authentication-Results: sourceware.org; arc=none smtp.remote-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1788162125; cv=none; b=n0VI5zsCLW/FHm1xLYUDR68OKABNelPTS2GxzmSmVyaY0VtXM8b7F5pK+ijZ8P97MVfdp69kM+iE6gGN1aXnrDf0hBqW4v9c5qZX1NgeEHF0/R5V5E6wFlDjReJ7zvLx2omWZgks24+p63vO2BXmOT+GDtbMyUq3EwsPcs7jD0A= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1788162125; c=relaxed/simple; bh=DiJ0g2MntcOKX3SaeVL25P1n3Hz7Qh1pFxWq7PryI14=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=abSAD0hclIh0au5R4O3q0WlcTM/Kwn2hidoH9NzwKtlo/KquVMfZehVXRWL5crtiw9njMYT4WH8ZqzdiaVH18JnV63tuHY3d6M8SJRuzgw5gimeKO2oGh8H+nophy6UXzl39MYD9AxlLhV7SCLMlZLesNXZLBtAz/dGVV3H+ypw= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=w+z/9l9s; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=poRDNgS3; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=2EfJfYGq; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=+dfr9O0w DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 99ED24BA2E2B Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 6BCCF1FB71 for ; Mon, 31 Aug 2026 07:41:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1788162120; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=j2JovKbjtj1juk7q2GjQ9WU2Bts9yIDQ7TAzYLU0M+4=; b=w+z/9l9slHrXazI2gjLtEpERV4Sh5vLK5Xw45pyTvTE633umN0g21txYZ0NiPl/FceiWJD qm2l7bHl0gZfJp+58ETgZAYah1LhcOkrSZ9la6QBEAGzFuKeFbPUyBu60tWjrMD6wAfA39 28WnGs8jII6vlrNt24MCm3GxSHLvOAw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1788162120; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=j2JovKbjtj1juk7q2GjQ9WU2Bts9yIDQ7TAzYLU0M+4=; b=poRDNgS33HjsnG8Mm4E4ngdKHb4axUwTXznr0vUiK9adtTDwj3S9IrOKVQS2/t4QSsx+AG QhlTujKY20OoQaCg== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=2EfJfYGq; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=+dfr9O0w DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1788162116; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=j2JovKbjtj1juk7q2GjQ9WU2Bts9yIDQ7TAzYLU0M+4=; b=2EfJfYGqjhpcL23EVItJuh+EmkL+za/4Zke6WuByBAYSRXaMihzP1KkyiEDltdIGZiyKj9 4o/DdIk1gwbRvQe5lT9VirNH2xtra4NXv1XLLa4BqQSx82IBiyJyMK7ybkCjelRJhuvW5G LlxsAuZYN5NZsn6kB6EDwGwKBAhtRqU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1788162116; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=j2JovKbjtj1juk7q2GjQ9WU2Bts9yIDQ7TAzYLU0M+4=; b=+dfr9O0w6+Svn80SDR37WdJlhiD5IjqVDvAX4uLHd3RM/1Fre7d+B0MfW2n5mI7inXumKa F/QqwTE/On3LomDQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 1A3D0136D1 for ; Mon, 31 Aug 2026 07:41:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id gFoHBUQwlWqkYwAAD6G6ig (envelope-from ) for ; Mon, 31 Aug 2026 07:41:56 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH v2 3/3] [gdb] Make gdb_buildall.sh shellcheck-clean Date: Mon, 31 Aug 2026 09:41:55 +0200 Message-ID: <20260831074155.3500918-4-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260831074155.3500918-1-tdevries@suse.de> References: <20260831074155.3500918-1-tdevries@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Action: no action X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Queue-Id: 6BCCF1FB71 X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-0.999]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; FROM_EQ_ENVFROM(0.00)[]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; RCVD_TLS_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.de:dkim,suse.de:mid]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+]; DKIM_TRACE(0.00)[suse.de:+] X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org Make gdb_buildall.sh shellcheck-clean: - add missing quoting - use $() - use bash instead of sh to allow non-POSIX features - use makejobs="$1" instead of makejobs="-j $1" - use array for targexp - use read -r - add missing definition of gdbopts and simopts - use '' for trap argument - remove useless cat --- gdb/contrib/shellcheck.sh | 1 - gdb/gdb_buildall.sh | 82 +++++++++++++++++++++------------------ 2 files changed, 44 insertions(+), 39 deletions(-) diff --git a/gdb/contrib/shellcheck.sh b/gdb/contrib/shellcheck.sh index a3e80a553f4..7dd896218f3 100755 --- a/gdb/contrib/shellcheck.sh +++ b/gdb/contrib/shellcheck.sh @@ -45,7 +45,6 @@ for f in "$@"; do | gdb/config/djgpp/djconfig.sh \ | gdb/contrib/cc-with-tweaks.sh \ | gdb/contrib/gdb-add-index.sh \ - | gdb/gdb_buildall.sh \ | gdb/gdb_mbuild.sh \ | gdb/testsuite/lib/pdtrace.in) # Skip unclean files. diff --git a/gdb/gdb_buildall.sh b/gdb/gdb_buildall.sh index 57211ca887a..0462889e52f 100644 --- a/gdb/gdb_buildall.sh +++ b/gdb/gdb_buildall.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Build script to build GDB with all targets enabled. @@ -53,7 +53,7 @@ EOF ### Command line options. makejobs= force=false -targexp="" +targexp=() bfd_flag="" clean=false while test $# -gt 0 @@ -63,7 +63,7 @@ do # Number of parallel make jobs. shift test $# -ge 1 || usage - makejobs="-j $1" + makejobs="$1" ;; --clean ) # Shall the build directory be deleted after processing? @@ -73,7 +73,7 @@ do # A regular expression for selecting targets shift test $# -ge 1 || usage - targexp="${targexp} -e ${1}" + targexp=("${targexp[@]}" -e "${1}") ;; --force ) # Force a rebuild @@ -97,8 +97,8 @@ fi ### Environment. # Convert these to absolute directory paths. -srcdir=`cd $1 && /bin/pwd` || exit 1 -builddir=`cd $2 && /bin/pwd` || exit 1 +srcdir=$(cd "$1" && /bin/pwd) || exit 1 +builddir=$(cd "$2" && /bin/pwd) || exit 1 # Version of make to use make=${MAKE:-make} MAKE=${make} @@ -108,9 +108,9 @@ ulimit -c 0 # Just make sure we're in the right directory. maintainers=${srcdir}/gdb/MAINTAINERS -if [ ! -r ${maintainers} ] +if [ ! -r "${maintainers}" ] then - echo Maintainers file ${maintainers} not found + echo "Maintainers file ${maintainers} not found" exit 1 fi @@ -125,15 +125,15 @@ dir=${builddir}/ALL if ${force} then echo ... forcing rebuild - rm -rf ${dir} + rm -rf "${dir}" fi # Did the previous configure attempt fail? If it did restart from scratch -if test -d ${dir} -a ! -r ${dir}/Makefile +if test -d "${dir}" -a ! -r "${dir}/Makefile" then echo ... removing partially configured - rm -rf ${dir} - if test -d ${dir} + rm -rf "${dir}" + if test -d "${dir}" then echo "... ERROR: Unable to remove directory ${dir}" exit 1 @@ -141,27 +141,33 @@ then fi # Create build directory. -mkdir -p ${dir} -cd ${dir} || exit 1 +mkdir -p "${dir}" +cd "${dir}" || exit 1 # Configure GDB. if test ! -r Makefile then + # Set custom gdb/sim build warnings here. The code using these two vars + # seems be copied from gdb_mbuild.sh, where they are set from --target lines + # in MAINTAINERS. + gdbopts="" + simopts="" + # Default SIMOPTS to GDBOPTS. test -z "${simopts}" && simopts="${gdbopts}" # The config options. __build="--enable-targets=all" - __enable_gdb_build_warnings=`test -z "${gdbopts}" \ - || echo "--enable-gdb-build-warnings=${gdbopts}"` - __enable_sim_build_warnings=`test -z "${simopts}" \ - || echo "--enable-sim-build-warnings=${simopts}"` + __enable_gdb_build_warnings=$(test -z "${gdbopts}" \ + || echo "--enable-gdb-build-warnings=${gdbopts}") + __enable_sim_build_warnings=$(test -z "${simopts}" \ + || echo "--enable-sim-build-warnings=${simopts}") __configure="${srcdir}/configure \ ${__build} ${bfd_flag}\ ${__enable_gdb_build_warnings} \ ${__enable_sim_build_warnings}" - echo ... ${__configure} - trap "echo Removing partially configured ${dir} directory ...; rm -rf ${dir}; exit 1" 1 2 15 + echo "... ${__configure}" + trap 'echo Removing partially configured ${dir} directory ...; rm -rf ${dir}; exit 1' 1 2 15 ${__configure} > Config.log 2>&1 trap "exit 1" 1 2 15 @@ -178,8 +184,8 @@ fi gdb_bin="gdb/gdb" if test ! -x gdb/gdb -a ! -x gdb/gdb.exe then - echo ... ${make} ${makejobs} - ( ${make} ${makejobs} all-gdb || rm -f gdb/gdb gdb/gdb.exe + echo "... ${make} ${makejobs:+-j $makejobs}" + ( "${make}" ${makejobs:+-j $makejobs} all-gdb || rm -f gdb/gdb gdb/gdb.exe ) > Build.log 2>&1 # If the build fails, exit. @@ -206,17 +212,17 @@ EOF tail -n 1 gdb_archs | sed 's/auto./\n/g' | sed 's/,/\n/g' | sed 's/Requires an argument. Valid arguments are/\n/g' | sed '/^[ ]*$/d' > arch mv arch gdb_archs -if test "${targexp}" != "" +if test ${#targexp[@]} -ne 0 then - alltarg=`cat gdb_archs | grep ${targexp}` + alltarg=$(grep "${targexp[@]}" gdb_archs) else - alltarg=`cat gdb_archs` + alltarg=$(cat gdb_archs) fi rm -f gdb_archs # Test all architectures available in ALLTARG echo "maint print architecture for" -echo "$alltarg" | while read target +echo "$alltarg" | while read -r target do cat < x set architecture ${target} @@ -226,14 +232,14 @@ EOF log_file=$target.log log_file=${log_file//:/_} echo -n "... ${target}" - ./gdb/gdb --data-directory gdb/data-directory -batch -nx -x x 2>&1 | cat > $log_file + ./gdb/gdb --data-directory gdb/data-directory -batch -nx -x x 2>&1 | cat > "$log_file" # Check GDBs results - if test ! -s $log_file + if test ! -s "$log_file" then - echo " ERR: gdb printed no output" | tee -a $log_file - elif test `grep -o internal-error $log_file | tail -n 1` + echo " ERR: gdb printed no output" | tee -a "$log_file" + elif test "$(grep -o internal-error "$log_file" | tail -n 1)" then - echo " ERR: gdb panic" | tee -a $log_file + echo " ERR: gdb panic" | tee -a "$log_file" else echo " OK" fi @@ -241,20 +247,20 @@ EOF # Create a sed script that cleans up the output from GDB. rm -f mbuild.sed # Rules to replace <0xNNNN> with the corresponding function's name. - sed -n -e '/<0x0*>/d' -e 's/^.*<0x\([0-9a-f]*\)>.*$/0x\1/p' $log_file \ + sed -n -e '/<0x0*>/d' -e 's/^.*<0x\([0-9a-f]*\)>.*$/0x\1/p' "$log_file" \ | sort -u \ - | while read addr + | while read -r addr do - func="`addr2line -f -e ./$gdb_bin -s ${addr} | sed -n -e 1p`" + func="$(addr2line -f -e ./$gdb_bin -s "${addr}" | sed -n -e 1p)" echo "s/<${addr}>/<${func}>/g" done >> mbuild.sed # Rules to strip the leading paths off of file names. echo 's/"\/.*\/gdb\//"gdb\//g' >> mbuild.sed # Run the script. - sed -f mbuild.sed $log_file > Mbuild.log + sed -f mbuild.sed "$log_file" > Mbuild.log - mv Mbuild.log ${builddir}/$log_file - rm -rf $log_file x mbuild.sed + mv Mbuild.log "${builddir}/$log_file" + rm -rf "$log_file" x mbuild.sed done echo "done." @@ -262,7 +268,7 @@ echo "done." if ${clean} then echo "cleaning up $dir" - rm -rf ${dir} + rm -rf "${dir}" fi exit 0 -- 2.51.0