[Top][All Lists]
[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>>
gas_unwind_info_kernel_assembly.tar.gz
Description: Binary data
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- GAS: Problem with unwind info for IA64 kernel assembly,
Patil, Harish <=