about .data.rel.ro

Wang Jiong wong.kwongyuan at gmail.com
Tue Jan 18 14:51:50 UTC 2011


Dear all:

Currently I am upgrading a gcc target from 4.0.3 to 4.3.5
After test, I have found that gcc 4.3.5 will employee the .data.rel.ro
section and this has caused trouble when work with uclibc 0.9.31
4.3.5 will generate code like



.type __FUNCTION__.4211, @object
.size __FUNCTION__.4211, 21
__FUNCTION__.4211:
.string "_dl_get_ready_to_run"
.align 2

.section .data.rel.ro
.align 2
.LC108:
.word __FUNCTION__.4211
.align 2

t.lw $6,%got_page(.LC108)($28)
s.addiu $2,$6,%got_ofst(.LC108)
t.lw $6,0($2) // $6 now contains the value of ".word __FUNCTION__.4211"
and we wish it will point to the string "_dl_get_ready_to_run", but only
after it's also updated by ldso to the relocated value, otherwise it
will be wrong


the address of .LC108 and __FUNCTION__.4211 alone will be relocated by
ldso correctly while LC108's contents will not

My problem is related with .data.rel.ro? and have uclibc 0.9.31
supportted .data.rel.ro yet?


Thanks in advance

Best,
KwongYuan


More information about the uClibc mailing list