Re: [PATCH] Fix gdb.base/code_elim.exp failures for PowerPC 32-bit

Luis Machado
2014-07-08T05:48:04Z

On 07/08/2014 02:52 AM, Samuel Bronson wrote:
> Luis Machado <lgustavo@codesourcery.com> writes:
>
>> For PowerPC 32-bit though, the small initialized global int variable
>> is sent to the .sdata section as an optimization. Since there is no
>> more data to store, the .data section doesn't get created.
>>
>> GDB complains about the lack of such a section and expect doesn't like
>> seeing that warning, which results in a couple failures for powerpc.
>
> Hmm, seems like a silly thing to complain about ...
>
>> One of them:
>>
>> [snip]
>> add-symbol-file gdb.base/code_elim2 0x200000 -s .data 0x210000 -s .bss 0x220000^M
>> add symbol table from file "gdb.d/gdb.base/code_elim2" at^M
>> .text_addr = 0x200000^M
>> .data_addr = 0x210000^M
>> .bss_addr = 0x220000^M
>> (y or n) y^M
>> Reading symbols from gdb.base/code_elim2...warning: section .data not
>> found in gdb.base/code_elim2^M
>> done.^M
>> (gdb) FAIL: gdb.base/code_elim.exp: order1: add-symbol-file code_elim2
>> 0x200000
>>
>> I have tweaked the testcase sources a little to hold a bigger
>> initialized global variable, forcing the linker to create a regular
>> .data section in order to prevent GDB's warning. The testcase still
>> runs fine, but now PowerPC 32-bit sees full passes on this one.
>
> Is tweaking the testcase really the best approach here? Shouldn't GDB
> just be less picky?
>

Either solution is fine with me, but the warning is actually somewhat
informative since the .data section is relatively common.

The testcase, on the other hand, is not designed to behave the same in
all architectures.

Luis