Strange characters in System.map file
naveen yadav
yad.naveen@gmail.com
Wed Mar 24 12:57:00 GMT 2010
Hi all ,
we are using gcc 4.4.1 and build cross tool chain with binutils 2.19.51.
I am building 2.6.30 kernel for ARM. It build and run well on my
target, but i am seeing some strange char in
System.map file
. .
c0064434 T NvRmPrivDfsDeinit
c0064540 t DfsIsr
c0064cf8 t T.285
c0064d3c t T.288
c0064f2c T NvRmDfsSetState
c0064ff0 t T.289
c0065078 T NvRmPrivDfsInit
c006607c t T.291 <<<Example
c00661c8 T NvRmPrivDvsInit
I found that c0064cf8 t T.285 function are small function which are
declared as static void
. . .
For example : The below static function will not be there if we see
assembly code of the obj file.
static void DvsChangeCpuVoltage( NvRmDeviceHandle hRm,NvRmDvs* pDvs,
NvRmMilliVolts TargetMv)
{
NV_ASSERT(TargetMv >= pDvs->MinCpuMv);
NV_ASSERT(TargetMv <= pDvs->NominalCpuMv);
if (pDvs->CurrentCpuMv != TargetMv)
{
NvRmPmuSetVoltage(hRm, pDvs->CpuRailAddress, TargetMv, NULL);
pDvs->CurrentCpuMv = TargetMv;
}
}
instead it will be look like as shown below.
0000205c <T.286>:
205c: e1a0c00d mov ip, sp
2060: e92dd878 push {r3, r4, r5, r6, fp, ip, lr, pc}
2064: e24cb004 sub fp, ip, #4 ; 0x4
2068: e3004000 movw r4, #0 ; 0x0
206c: e301670c movw r6, #5900 ; 0x170c
2070: e3404000 movt r4, #0 ; 0x0
2074: e1a05001 mov r5, r1
2078: e7943006 ldr r3, [r4, r6]
207c: e1530001 cmp r3, r1
2080: 089da878 ldmeq sp, {r3, r4, r5, r6, fp, sp, pc}
2084: e3012708 movw r2, #5896 ; 0x1708
2088: e3a03000 mov r3, #0 ; 0x0
208c: e7941002 ldr r1, [r4, r2]
2090: e1a02005 mov r2, r5
2094: ebfffffe bl 0 <NvRmPmuSetVoltage>
2098: e7845006 str r5, [r4, r6]
209c: e89da878 ldm sp, {r3, r4, r5, r6, fp, sp, pc}
If i build kernel with O1 or O0 flag, these strange character
disappear. also i check on GCC 4.3.3 there is no problem .
Is there some flag to disable these strange characters ?
kind regards
Naveen
More information about the Gcc-help
mailing list