From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id T30oNqNc218pSQAAWB0awg (envelope-from ) for ; Thu, 17 Dec 2020 08:26:59 -0500 Received: by simark.ca (Postfix, from userid 112) id D19D41F0AA; Thu, 17 Dec 2020 08:26:59 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RDNS_NONE,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from sourceware.org (unknown [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 3B56A1E965 for ; Thu, 17 Dec 2020 08:26:59 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8ABF4388A433; Thu, 17 Dec 2020 13:26:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8ABF4388A433 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1608211618; bh=rIs/XcP2+E6px1PU/t7IoecHzq8hgbjBkPalNzna6Ds=; h=Subject:To:References:Date:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=MRFVHLR/tc+Kqt/bDcXVOQtN/Q/jLghbPOE2tmktOujxYiW1Olg2fxd3OTgHvM57v m1T+5NQRi/c19dwxefg12e8ylbKvVBPjXgaRngBcKPtEFyUuPNsN56qw3E1P9t2XVI q8QW8ji/onskoDxCcHLeCAZNMP3gLsNxQPPzss0M= Received: from mail-qv1-xf31.google.com (mail-qv1-xf31.google.com [IPv6:2607:f8b0:4864:20::f31]) by sourceware.org (Postfix) with ESMTPS id 2937A388A029 for ; Thu, 17 Dec 2020 13:26:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 2937A388A029 Received: by mail-qv1-xf31.google.com with SMTP id d11so13237635qvo.11 for ; Thu, 17 Dec 2020 05:26:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=rIs/XcP2+E6px1PU/t7IoecHzq8hgbjBkPalNzna6Ds=; b=mPklOIow7WZ/1ey1ZearR/qsrdZp9bqP+gi+LLmjGRFeik/Ier9elmGxAQs8BlHvE1 peAb0h8tDExpXP43TGD/RBabZwJr27DaCDZQkGZY7LinKppt/kqS/ASsphArztBCCh95 frz5wO8Xb6tLvaDwv8gf8ZzHd4vKsImdBiM73iiMmX7eNNuxYZnKjS1MnleQMfOElDbW 2PA21dhMUZyzXMB++GwfncVvFz/hS4AyQJmCwFzc2plz1MiaqNTxT3ErxnbUFsirZsK8 uON4n1z4djlqZui3Mh+BxLcxZ/x5CZxsnU7RO+nIaqX9OrHfAldeWjVuHTRSSJkolwRb dR7A== X-Gm-Message-State: AOAM532HEdaIHANScQeVY1mSZX7k54B1AmEfl6PsgpOoQcH2tH2z8ack jltsZDEC5disv8GO9a8VqiBamtylfap89A== X-Google-Smtp-Source: ABdhPJwCQy2+565aG/wAs5+fHZbpf5THrsWQN4iwM5spMn5mVTy8s96jOqa9mFg/Pi91SJKz55JWWA== X-Received: by 2002:a05:6214:15c1:: with SMTP id p1mr49325883qvz.8.1608211615401; Thu, 17 Dec 2020 05:26:55 -0800 (PST) Received: from ?IPv6:2804:7f0:8284:370e:0:5030:e4ec:1586? ([2804:7f0:8284:370e:0:5030:e4ec:1586]) by smtp.gmail.com with ESMTPSA id 8sm3497899qkr.28.2020.12.17.05.26.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Dec 2020 05:26:54 -0800 (PST) Subject: Re: [PATCH][gdb/testsuite] Don't pass -fPIC to gdb_compile_shlib To: Tom de Vries , gdb-patches@sourceware.org References: <20201207122016.GA14320@delia> <2055f6f4-910c-9916-fa8d-58315ede14bb@linaro.org> Message-ID: Date: Thu, 17 Dec 2020 10:26:52 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Luis Machado via Gdb-patches Reply-To: Luis Machado Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" On 12/16/20 7:00 PM, Tom de Vries wrote: > On 12/15/20 4:34 PM, Luis Machado wrote: >> This regresses gdb.base/break-probes.exp for Ubuntu 18.04 and 20.04 on >> aarch64. >> >> I suppose the right switch is not getting passed any longer. >> > > I cannot reproduce a regression on Ubuntu 18.04 x86_64. > > Could you provide (f.i. in a PR) gdb.log versions without/with patch > applied, such that we can understand what the problem is? I went to try to reproduce this but I couldn't any longer. It keeps failing for me with an unexpected backtrace: (gdb) bt^M #0 0x0000ffffb7fd4b68 in ?? () from /lib/ld-linux-aarch64.so.1^M #1 0x0000ffffb7ffe7b0 in __stack_chk_guard () from /lib/ld-linux-aarch64.so.1^M Backtrace stopped: previous frame identical to this frame (corrupt stack?)^M I've recently reinstalled 18.04 and also added 20.04, so I'm still assessing what is new, in terms of failures, in 20.04 and what is not. You can ignore this one. Sorry for the noise. > > Thanks, > - Tom > >> On 12/7/20 9:20 AM, Tom de Vries wrote: >>> Hi, >>> >>> When running test-case gdb.base/info-shared.exp, I see in gdb.log: >>> ... >>> Executing on host: \ >>>    gcc ... -fPIC -fpic -c -o info-shared-solib1.c.o info-shared-solib1.c >>> ... >>> >>> The -fPIC comes from the test-case: >>> ... >>> if { [gdb_compile_shlib $srcfile_lib1 $binfile_lib1 \ >>>           [list additional_flags=-fPIC]] != "" } { >>> ... >>> but the -fpic, which overrides the -fPIC comes from gdb_compile_shlib. >>> >>> The proc gdb_compile_shlib adds the -fpic or similar dependent on >>> platform >>> and compiler.  However, in some cases it doesn't add anything, which is >>> probably why all those test-case pass -fPIC. >>> >>> Fix this by removing -fPIC from all the calls to gdb_compile_shlib, and >>> ensuring that gdb_compile_shlib takes care of adding it, if required. >>> >>> Tested on x86_64-linux. >>> >>> Any comments? >>> >>> Thanks, >>> - Tom >>> >>> [gdb/testsuite] Don't pass -fPIC to gdb_compile_shlib >>> >>> gdb/testsuite/ChangeLog: >>> >>> 2020-12-07  Tom de Vries  >>> >>>     * lib/gdb.exp (gdb_compile_shlib): Make sure it's not necessary to >>>     pass -fPIC. >>>     * gdb.ada/catch_ex_std.exp: Don't pass -fPIC to gdb_compile_shlib. >>>     * gdb.base/break-probes.exp: Same. >>>     * gdb.base/ctxobj.exp: Same. >>>     * gdb.base/dso2dso.exp: Same. >>>     * gdb.base/global-var-nested-by-dso.exp: Same. >>>     * gdb.base/info-shared.exp: Same. >>>     * gdb.base/jit-reader-simple.exp: Same. >>>     * gdb.base/print-file-var.exp: Same. >>>     * gdb.base/skip-solib.exp: Same. >>>     * gdb.btrace/dlopen.exp: Same. >>> >>> --- >>>   gdb/testsuite/gdb.ada/catch_ex_std.exp              |  3 +-- >>>   gdb/testsuite/gdb.base/break-probes.exp             |  3 +-- >>>   gdb/testsuite/gdb.base/ctxobj.exp                   |  4 ++-- >>>   gdb/testsuite/gdb.base/dso2dso.exp                  |  4 ++-- >>>   gdb/testsuite/gdb.base/global-var-nested-by-dso.exp |  4 ++-- >>>   gdb/testsuite/gdb.base/info-shared.exp              |  6 ++---- >>>   gdb/testsuite/gdb.base/jit-reader-simple.exp        |  2 +- >>>   gdb/testsuite/gdb.base/print-file-var.exp           |  2 +- >>>   gdb/testsuite/gdb.base/skip-solib.exp               |  2 +- >>>   gdb/testsuite/gdb.btrace/dlopen.exp                 |  3 +-- >>>   gdb/testsuite/lib/gdb.exp                           | 13 +++++++++---- >>>   11 files changed, 23 insertions(+), 23 deletions(-) >>> >>> diff --git a/gdb/testsuite/gdb.ada/catch_ex_std.exp >>> b/gdb/testsuite/gdb.ada/catch_ex_std.exp >>> index c8acd70241..5ed0b4d172 100644 >>> --- a/gdb/testsuite/gdb.ada/catch_ex_std.exp >>> +++ b/gdb/testsuite/gdb.ada/catch_ex_std.exp >>> @@ -29,8 +29,7 @@ set sofile [standard_output_file libsome_package.so] >>>   set outdir [file dirname $binfile] >>>     # Create the shared library. >>> -if {[gdb_compile_shlib $srcfile2 $sofile \ >>> -     {ada debug additional_flags=-fPIC}] != ""} { >>> +if {[gdb_compile_shlib $srcfile2 $sofile {ada debug}] != ""} { >>>       return -1 >>>   } >>>   diff --git a/gdb/testsuite/gdb.base/break-probes.exp >>> b/gdb/testsuite/gdb.base/break-probes.exp >>> index 08513ddbb2..96ef93d9f5 100644 >>> --- a/gdb/testsuite/gdb.base/break-probes.exp >>> +++ b/gdb/testsuite/gdb.base/break-probes.exp >>> @@ -30,8 +30,7 @@ if { [istarget "*bsd*"] } { >>>   } >>>   set probes_bp "dl_main" >>>   -if { [gdb_compile_shlib $srcfile_lib $binfile_lib \ >>> -      [list additional_flags=-fPIC]] != "" } { >>> +if { [gdb_compile_shlib $srcfile_lib $binfile_lib {}] != "" } { >>>       untested "failed to compile shared library" >>>       return -1 >>>   } >>> diff --git a/gdb/testsuite/gdb.base/ctxobj.exp >>> b/gdb/testsuite/gdb.base/ctxobj.exp >>> index b8931bafb4..faf209cc0d 100644 >>> --- a/gdb/testsuite/gdb.base/ctxobj.exp >>> +++ b/gdb/testsuite/gdb.base/ctxobj.exp >>> @@ -33,10 +33,10 @@ set libsrc [list "${srcdir}/${subdir}/ctxobj-v.c" \ >>>   set libobj1 [standard_output_file libctxobj1.so] >>>   set libobj2 [standard_output_file libctxobj2.so] >>>   -set libobj1_opts { debug additional_flags=-fPIC >>> +set libobj1_opts { debug >>>                      additional_flags=-DVERSION=104 >>>                      additional_flags=-DGET_VERSION=get_version_1 } >>> -set libobj2_opts { debug additional_flags=-fPIC >>> +set libobj2_opts { debug >>>                      additional_flags=-DVERSION=203 >>>                      additional_flags=-DGET_VERSION=get_version_2 } >>>   diff --git a/gdb/testsuite/gdb.base/dso2dso.exp >>> b/gdb/testsuite/gdb.base/dso2dso.exp >>> index 7d8ea7057c..4c0b27955d 100644 >>> --- a/gdb/testsuite/gdb.base/dso2dso.exp >>> +++ b/gdb/testsuite/gdb.base/dso2dso.exp >>> @@ -40,13 +40,13 @@ set srcfile_libdso1 $srcdir/$subdir/$libdso1.c >>>   set binfile_libdso1 [standard_output_file $libdso1.so] >>>     if { [gdb_compile_shlib $srcfile_libdso2 $binfile_libdso2 \ >>> -    [list debug additional_flags=-fPIC]] != "" } { >>> +    [list debug]] != "" } { >>>     untested "failed to compile shared library 2" >>>     return -1 >>>   } >>>     if { [gdb_compile_shlib $srcfile_libdso1 $binfile_libdso1 \ >>> -    [list debug additional_flags=-fPIC]] != "" } { >>> +    [list debug]] != "" } { >>>     untested "failed to compile shared library 1" >>>     return -1 >>>   } >>> diff --git a/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp >>> b/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp >>> index f88c5d094f..c277595015 100644 >>> --- a/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp >>> +++ b/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp >>> @@ -28,13 +28,13 @@ set srcfile_lib2 $srcdir/$subdir/$lib2name.c >>>   set binfile_lib2 [standard_output_file $lib2name.so] >>>     if { [gdb_compile_shlib $srcfile_lib1 $binfile_lib1 \ >>> -    [list debug additional_flags=-fPIC]] != "" } { >>> +    [list debug]] != "" } { >>>     untested "failed to compile shared library 1" >>>     return -1 >>>   } >>>     if { [gdb_compile_shlib $srcfile_lib2 $binfile_lib2 \ >>> -    [list debug additional_flags=-fPIC]] != "" } { >>> +    [list debug]] != "" } { >>>     untested "failed to compile shared library 2" >>>     return -1 >>>   } >>> diff --git a/gdb/testsuite/gdb.base/info-shared.exp >>> b/gdb/testsuite/gdb.base/info-shared.exp >>> index 9a54100f8a..7b8ce5b11e 100644 >>> --- a/gdb/testsuite/gdb.base/info-shared.exp >>> +++ b/gdb/testsuite/gdb.base/info-shared.exp >>> @@ -29,14 +29,12 @@ set srcfile_lib2 $srcdir/$subdir/$lib2name.c >>>   set binfile_lib2 [standard_output_file $lib2name.so] >>>   set define2 -DSHLIB2_NAME=\"$binfile_lib2\" >>>   -if { [gdb_compile_shlib $srcfile_lib1 $binfile_lib1 \ >>> -      [list additional_flags=-fPIC]] != "" } { >>> +if { [gdb_compile_shlib $srcfile_lib1 $binfile_lib1 {}] != "" } { >>>       untested "failed to compile shared library 1" >>>       return -1 >>>   } >>>   -if { [gdb_compile_shlib $srcfile_lib2 $binfile_lib2 \ >>> -      [list additional_flags=-fPIC]] != "" } { >>> +if { [gdb_compile_shlib $srcfile_lib2 $binfile_lib2 {}] != "" } { >>>       untested "failed to compile shared library 2" >>>       return -1 >>>   } >>> diff --git a/gdb/testsuite/gdb.base/jit-reader-simple.exp >>> b/gdb/testsuite/gdb.base/jit-reader-simple.exp >>> index a8f33c6d7a..99c4dcf732 100644 >>> --- a/gdb/testsuite/gdb.base/jit-reader-simple.exp >>> +++ b/gdb/testsuite/gdb.base/jit-reader-simple.exp >>> @@ -56,7 +56,7 @@ proc build_shared_jit {{options ""}} { >>>       global testfile >>>       global srcfile_lib binfile_lib binfile_lib2 >>>   -    lappend options "debug additional_flags=-fPIC" >>> +    lappend options "debug" >>>       if { [gdb_compile_shlib $srcfile_lib $binfile_lib $options] != >>> "" } { >>>       return -1 >>>       } >>> diff --git a/gdb/testsuite/gdb.base/print-file-var.exp >>> b/gdb/testsuite/gdb.base/print-file-var.exp >>> index 62e5f230eb..219bedcde4 100644 >>> --- a/gdb/testsuite/gdb.base/print-file-var.exp >>> +++ b/gdb/testsuite/gdb.base/print-file-var.exp >>> @@ -42,7 +42,7 @@ proc test {hidden dlopen version_id_main lang} { >>>       set libobj1 [standard_output_file ${lib1}$suffix.so] >>>       set libobj2 [standard_output_file ${lib2}$suffix.so] >>>   -    set lib_opts { debug additional_flags=-fPIC $lang } >>> +    set lib_opts { debug $lang } >>>       lappend lib_opts "additional_flags=-DHIDDEN=$hidden" >>>         if { [gdb_compile_shlib ${srcdir}/${subdir}/${lib1}.c \ >>> diff --git a/gdb/testsuite/gdb.base/skip-solib.exp >>> b/gdb/testsuite/gdb.base/skip-solib.exp >>> index 528410a0d5..8ecba70aa0 100644 >>> --- a/gdb/testsuite/gdb.base/skip-solib.exp >>> +++ b/gdb/testsuite/gdb.base/skip-solib.exp >>> @@ -39,7 +39,7 @@ set binfile_lib [standard_output_file ${libname}.so] >>>   # the main program. >>>   # >>>   -if {[gdb_compile_shlib ${srcdir}/${subdir}/${srcfile_lib} >>> ${binfile_lib} [list debug additional_flags=-fPIC >>> -Wl,-soname,${libname}.so]] != ""} { >>> +if {[gdb_compile_shlib ${srcdir}/${subdir}/${srcfile_lib} >>> ${binfile_lib} [list debug -Wl,-soname,${libname}.so]] != ""} { >>>       return -1 >>>   } >>>   diff --git a/gdb/testsuite/gdb.btrace/dlopen.exp >>> b/gdb/testsuite/gdb.btrace/dlopen.exp >>> index fc910a933a..6839b0f4f4 100644 >>> --- a/gdb/testsuite/gdb.btrace/dlopen.exp >>> +++ b/gdb/testsuite/gdb.btrace/dlopen.exp >>> @@ -31,8 +31,7 @@ set basename_lib dlopen-dso >>>   set srcfile_lib $srcdir/$subdir/$basename_lib.c >>>   set binfile_lib [standard_output_file $basename_lib.so] >>>   -if { [gdb_compile_shlib $srcfile_lib $binfile_lib \ >>> -      [list additional_flags=-fPIC]] != "" } { >>> +if { [gdb_compile_shlib $srcfile_lib $binfile_lib {}] != "" } { >>>       untested "failed to prepare shlib" >>>       return -1 >>>   } >>> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp >>> index e413bab93c..e35d236018 100644 >>> --- a/gdb/testsuite/lib/gdb.exp >>> +++ b/gdb/testsuite/lib/gdb.exp >>> @@ -4304,17 +4304,21 @@ proc gdb_compile_shlib {sources dest options} { >>>               lappend obj_options "additional_flags=-qpic" >>>           } >>>       "clang-*" { >>> -        if { !([istarget "*-*-cygwin*"] >>> -           || [istarget "*-*-mingw*"]) } { >>> +        if { [istarget "*-*-cygwin*"] >>> +         || [istarget "*-*-mingw*"] } { >>> +        lappend obj_options "additional_flags=-fPIC" >>> +        } else { >>>           lappend obj_options "additional_flags=-fpic" >>>           } >>>       } >>>           "gcc-*" { >>> -            if { !([istarget "powerpc*-*-aix*"] >>> +            if { [istarget "powerpc*-*-aix*"] >>>                      || [istarget "rs6000*-*-aix*"] >>>                      || [istarget "*-*-cygwin*"] >>>                      || [istarget "*-*-mingw*"] >>> -                   || [istarget "*-*-pe*"]) } { >>> +         || [istarget "*-*-pe*"] } { >>> +                lappend obj_options "additional_flags=-fPIC" >>> +        } else { >>>                   lappend obj_options "additional_flags=-fpic" >>>               } >>>           } >>> @@ -4323,6 +4327,7 @@ proc gdb_compile_shlib {sources dest options} { >>>           } >>>           default { >>>           # don't know what the compiler is... >>> +        lappend obj_options "additional_flags=-fPIC" >>>           } >>>       } >>>