[PATCH 3/8] add mem64_min/max control

Yinghai Lu yinghai at kernel.org
Sun Nov 18 00:35:31 EST 2012


On Sat, Nov 17, 2012 at 9:20 PM, Eric W. Biederman
<ebiederm at xmission.com> wrote:
> Yinghai Lu <yinghai at 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 at 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...



More information about the kexec mailing list