Re: [PATCH 3/8] add mem64_min/max control

Yinghai Lu
2012-11-18T05:35:35Z

On Sat, Nov 17, 2012 at 9:20 PM, Eric W. Biederman
<ebiederm@xmission.com> wrote:
> Yinghai Lu <yinghai@kernel.org> writes:
>>
>> there is lots of R_X86_64_32 and R_X86_64_32S for 64bit purgatory.
>>
>> those come from global variables...could kill some by converting them static...
>>
>> but still have some global string or ro data....
>>
>> build one big file include all .S ?
>
> For R_x86_64_32 and R_x86_64_32S the problem is that the instructions
> are using absolute 32bit addresses.
>
> It is probably overkill but we should be able to solve this with
> by adding "-mcmodel=large" to the build of purgatory.

it kill some...

still have left.... looks they from .S

yhlu@linux-siqj:~/xx/xx/utils/kexec-tools> readelf --relocs
purgatory/purgatory.ro | grep R_X86_64_32
0000000005e9 00020000000b R_X86_64_32S 0000000000000000 .rodata + c0
0000000005f0 00010000000b R_X86_64_32S 0000000000000000 .text + 5f6
00000000068e 00410000000b R_X86_64_32S 0000000000002008
jump_back_entry + 0
000000000695 00060000000b R_X86_64_32S 0000000000000000 .bss + 1000
000000000006 000b0000000a R_X86_64_32 0000000000000000 .debug_info + 0
000000000036 000b0000000a R_X86_64_32 0000000000000000 .debug_info + 24c
000000000066 000b0000000a R_X86_64_32 0000000000000000 .debug_info + 4c0
000000000096 000b0000000a R_X86_64_32 0000000000000000 .debug_info + 6d8
0000000000c6 000b0000000a R_X86_64_32 0000000000000000 .debug_info + 85b
000000000006 000c0000000a R_X86_64_32 0000000000000000 .debug_abbrev + 0
00000000000c 000e0000000a R_X86_64_32 0000000000000000 .debug_str + c0
000000000011 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 88
000000000015 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 0
000000000029 000d0000000a R_X86_64_32 0000000000000000 .debug_line + 0
000000000030 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 176
000000000037 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 137
000000000045 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 16d
00000000004a 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 5b
000000000057 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 7a
00000000005e 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 48
000000000063 000e0000000a R_X86_64_32 0000000000000000 .debug_str + b7
000000000070 000e0000000a R_X86_64_32 0000000000000000 .debug_str + eb
000000000075 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 63
000000000082 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 9e
000000000087 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 29
000000000094 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 132
000000000099 000e0000000a R_X86_64_32 0000000000000000 .debug_str + b0
0000000000a6 000e0000000a R_X86_64_32 0000000000000000 .debug_str + f8
0000000000ad 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 124
0000000000ba 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 11e
0000000000c8 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 23
0000000000d6 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 141
000000000115 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 10f
000000000120 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 148
00000000013b 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 158
000000000147 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 42
000000000165 000e0000000a R_X86_64_32 0000000000000000 .debug_str + d6
000000000180 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 0
000000000193 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + ed
0000000001a2 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 110
0000000001a7 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 166
0000000001be 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 14f
0000000001da 000e0000000a R_X86_64_32 0000000000000000 .debug_str + cc
0000000001f1 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 185
000000000206 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 33
000000000213 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 6c
000000000220 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 33
000000000236 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 6c
000000000252 000c0000000a R_X86_64_32 0000000000000000
.debug_abbrev + 109
000000000258 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 20c
00000000025d 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 222
000000000261 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 188
000000000275 000d0000000a R_X86_64_32 0000000000000000 .debug_line + 13f
00000000027a 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 1c2
000000000297 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 1df
00000000029c 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 2a9
0000000002a8 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 218
0000000002b6 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 1ab
0000000002c4 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 248
0000000002d2 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 235
0000000002e3 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 1b5
0000000002ea 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 204
0000000002f7 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 29d
0000000002fe 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 278
00000000030c 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 294
000000000313 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 1d1
00000000031a 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 1f1
000000000320 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 2bf
000000000337 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 1d1
000000000340 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 287
00000000034a 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 30e
000000000359 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 344
00000000035e 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 282
000000000368 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 3f2
000000000375 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 428
00000000037a 00100000000a R_X86_64_32 0000000000000000 .debug_ranges + 0
000000000396 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 4ae
00000000039b 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 182
0000000003a5 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 54c
0000000003aa 00100000000a R_X86_64_32 0000000000000000 .debug_ranges + 40
0000000003bb 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 60f
0000000003c8 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 632
0000000003e7 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 699
0000000003ec 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 28e
0000000003f6 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 6cf
000000000406 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 243
00000000042e 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 25a
000000000434 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 2b7
00000000044b 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 6f2
000000000454 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 287
00000000045e 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 73f
00000000046d 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 762
000000000473 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 282
000000000484 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 271
00000000049b 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 785
0000000004aa 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 7d2
0000000004b0 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 282
0000000004c6 000c0000000a R_X86_64_32 0000000000000000
.debug_abbrev + 22b
0000000004cc 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 339
0000000004d1 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 351
0000000004d5 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 2c8
0000000004e9 000d0000000a R_X86_64_32 0000000000000000 .debug_line + 2c7
0000000004f0 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 330
0000000004f5 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 2f0
000000000502 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 303
00000000050f 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 315
00000000053a 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 808
000000000556 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 82b
000000000569 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 32b
00000000056f 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 364
00000000059a 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 862
0000000005bd 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 898
0000000005cb 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 8cf
0000000005da 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 34a
0000000005fd 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 2eb
000000000607 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 905
00000000062e 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 93b
00000000063b 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 972
00000000065b 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 31d
00000000066c 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 2f7
00000000068b 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 2fe
000000000698 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 345
0000000006d2 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 9a8
0000000006de 000c0000000a R_X86_64_32 0000000000000000
.debug_abbrev + 308
0000000006e4 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 3f8
0000000006e9 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 404
0000000006ed 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 37b
000000000701 000d0000000a R_X86_64_32 0000000000000000 .debug_line + 387
000000000708 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 47c
00000000070f 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 469
00000000071d 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 473
000000000722 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 43f
00000000072f 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 3bb
000000000736 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 3db
00000000073d 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 42d
000000000744 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 3c9
00000000074a 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 453
000000000761 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + 9df
000000000767 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 488
000000000783 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 39e
00000000079a 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + a53
00000000079f 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 3ee
0000000007ac 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 45e
0000000007b9 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 4a2
0000000007c6 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 36b
0000000007d3 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 447
0000000007e8 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 43a
0000000007ed 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 3ee
000000000803 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 45e
000000000819 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 4a2
00000000082f 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 36b
000000000845 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 447
000000000861 000c0000000a R_X86_64_32 0000000000000000
.debug_abbrev + 394
000000000867 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 568
00000000086c 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 4ed
000000000870 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 4c3
000000000884 000d0000000a R_X86_64_32 0000000000000000 .debug_line + 453
00000000088b 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 61f
000000000890 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 4af
00000000089d 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 52c
0000000008ab 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 513
0000000008b2 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 53e
0000000008b9 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 58c
0000000008c0 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 628
0000000008c7 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 504
0000000008ce 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 5f5
0000000008d5 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 5a8
0000000008dc 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 5e1
0000000008e1 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 5bf
0000000008ec 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 55f
0000000008ff 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 5db
00000000090d 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 4b6
00000000091b 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 4bc
00000000095a 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 609
000000000966 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 551
00000000097d 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + ac7
00000000099c 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 599
0000000009b3 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + b27
0000000009cb 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 50e
0000000009da 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 5d5
0000000009e8 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 5ef
000000000a80 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 5c7
000000000a97 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + b87
000000000aae 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 521
000000000abc 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 639
000000000aca 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 4ff
000000000ad8 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 527
000000000ae8 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 574
000000000aff 000f0000000a R_X86_64_32 0000000000000000 .debug_loc + be7
000000000b16 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 618
000000000b24 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 634
000000000b32 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 582
000000000b40 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 587
000000000b5c 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 4e6
000000000b81 000e0000000a R_X86_64_32 0000000000000000 .debug_str + 5fa

>
> Hopefully there are not 32bit or 16bit assembly routines getting linked
> in and using problemenatic instructions.

i comment out 32bit/16bit related from Makfile...