This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][gdb/testsuite] Compile index-cache.c with -Wl,--build-id


[ENOPATCH]

On 21-06-19 18:50, Tom de Vries wrote:
> On 21-06-19 18:32, Pedro Alves wrote:
>> On 6/21/19 4:54 PM, Tom de Vries wrote:
>>> On 21-06-19 17:47, Pedro Alves wrote:
>>>> On 6/21/19 4:27 PM, Tom de Vries wrote:
>>>>> Hi,
>>>>>
>>>>> When building gdb using a combined gcc/binutils-gdb build and running
>>>>> gdb.base/index-cache.exp we get:
>>>>> ...
>>>>> FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: at least one file was created
>>>>> FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: couldn't get executable build id
>>>>> FAIL: gdb.base/index-cache.exp: test_cache_enabled_hit: check index-cache stats
>>>>> ...
>>>>>
>>>>> With "set debug index-cache on" we get:
>>>>> ...
>>>>> (gdb) file index-cache
>>>>> Reading symbols from index-cache...
>>>>> index cache: objfile index-cache has no build id
>>>>> ...
>>>>>
>>>>> The problem is that the vanilla toolchain does not add a build-id, which is
>>>>> required for the index-cache functionality.
>>>>
>>>> What is "vanilla" here?  A non-combined gcc/build-gdb build?
>>>> Or is "combined gcc/build-gdb build" irrelevant here, and
>>>> "vanilla" means "no-distro-patches build"?
>>>
>>> The latter.
>>
>> OK.  Please tweak the commit log in that direction then.
>>
>> The fix LGTM too.
> 
> Thanks for the review, I've updated the rationale.
> 
> I'll commit in a bit unless there are further comments.
> 


[gdb/testsuite] Compile index-cache.c with -Wl,--build-id

When testing gdb.base/index-cache.exp using a gcc build without
--enable-linker-build-id we get:
...
FAIL: gdb.base/index-cache.exp: \
  test_cache_enabled_miss: at least one file was created
FAIL: gdb.base/index-cache.exp: \
  test_cache_enabled_miss: couldn't get executable build id
FAIL: gdb.base/index-cache.exp: \
test_cache_enabled_hit: check index-cache stats
...

With "set debug index-cache on" we find:
...
(gdb) file index-cache
Reading symbols from index-cache...
index cache: objfile index-cache has no build id
...

The problem is that a build-id is required for the index-cache functionality.

Fix this by compiling index-cache.c with -Wl,--build-id.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2019-06-21  Tom de Vries  <tdevries@suse.de>

	* gdb.base/index-cache.exp: Add additional_flags=-Wl,--build-id.

---
 gdb/testsuite/gdb.base/index-cache.exp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/gdb.base/index-cache.exp b/gdb/testsuite/gdb.base/index-cache.exp
index 075dffe3f5..6f1488e037 100644
--- a/gdb/testsuite/gdb.base/index-cache.exp
+++ b/gdb/testsuite/gdb.base/index-cache.exp
@@ -18,7 +18,8 @@
 
 standard_testfile
 
-if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
+	  {additional_flags=-Wl,--build-id}] } {
     return
 }
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]