bug-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GAS: Problem with unwind info for IA64 kernel assembly


From: Patil, Harish
Subject: GAS: Problem with unwind info for IA64 kernel assembly
Date: Tue, 5 Mar 2002 19:53:13 -0800

Hi:

Please gunzip and untar the attached file. See README in the resulting
directory; README is also included below.

Thanks,

-Harish
===========================================
README:

as VERSION: GNU assembler version 020305 (ia64-unknown-linux) using BFD
version 
020305 20020305
 Built from the 020305 snapshot

PROBLEM: Unwind info regions do not cover entire code range.

TEST CASE: 'arch/ia64/kernel/entry.S' from 2.4.4 kernel distribution
 [patched for ia64] with a dummy C file 'dum.c' with stubs declared
 for correct compilation. The resulting binary is 'entry'.


HOW TO TEST: Run './doit.entry'

DETAILS:
       For each code range in an ia64 binary:
          Sum[ lengths of unwind regions] should be equal to  number of
slots
          the in code range.
      This condition is violated for two code ranges in 'entry'.
----------------------------------------------------
Code range I
============
>From the output of 'readelf -u entry':
<ia64_trace_syscall>: [0x4000000000000ca0-0x4000000000000d40), info at
+0x2150
    R1:prologue(rlen=0)
..
    R1:body(rlen=28)
..
>From the output of './unwcheck.sh entry':
code_range= 0x4000000000000ca0-0x4000000000000d40
        lo =  CA0  hi = D40
        sum_rlen =  28 no_slots = 30
            *******ERROR ***********
            sum_rlen: 28  != no_slots:30
WHAT WENT WRONG: unwind regions do not cover entire code range
            sum(rlen of regions): 28  != (no of slots in code range):30
WHAT SHOULD HAVE HAPPENED INSTEAD:
            sum(rlen of regions): 30
----------------------------------------------------
Code range II
=============
>From the output of 'readelf -u entry':
<ia64_prepare_handle_unaligned>: [0x40000000000012c0-0x4000000000001320),
info a
t +0x2300
    R1:prologue(rlen=9)
..
    R1:body(rlen=8)
..
>From the output of './unwcheck.sh entry':
code_range= 0x40000000000012c0-0x4000000000001320
        lo =  12C0  hi = 1320
        sum_rlen =  17 no_slots = 18
            *******ERROR ***********
            sum_rlen: 17  != no_slots:18
WHAT WENT WRONG: unwind regions do not cover entire code range
            sum(rlen of regions): 17  != (no of slots in code range):18
WHAT SHOULD HAVE HAPPENED INSTEAD:
            sum(rlen of regions): 18 
====================================================
 <<gas_unwind_info_kernel_assembly.tar.gz>> 

Attachment: gas_unwind_info_kernel_assembly.tar.gz
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]