Binutils objcopy bug (was Re: rebase segfault)
marco atzeri
marco.atzeri@gmail.com
Fri Jan 25 15:12:00 GMT 2013
On 1/25/2013 4:00 PM, Corinna Vinschen wrote:
> On Jan 25 14:19, Kai Tietz wrote:
>> 2013/1/25 marco atzeri <marco.atzeri@gmail.com>:
>>> On 1/24/2013 11:00 AM, Corinna Vinschen wrote:
>>>
>>>> I already explained why: The SEGV happens during relocation.
>>>> The file header has been changed already. If you call the
>>>> same rebase, it will try to rebase the file to the same new
>>>> address. If current file base address == requested file base
>>>> address, rebase will return without performing any action.
>>>>
>>>
>>> Hi Corinna,
>>> I would like your opinion on this .reloc strange issue of
>>> dict_snowball, as I have the impression I found the root cause.
>>> [...]
>>> Questions:
>>> - Is it anomalous to have a .reloc portion addressing the
>>> debug_* sections (so the original build file is broken)
>>> - or should strip recognize and remove reloc portion not
>>> anymore relevant ?
>>>
>>> rebase is choking on this portion of the .reloc table
>>>
>>>>
>>>> Corinna
>>>>
>>>
>>> Thansk in advance
>>> Marco
>>
>> Well, here are my 2-cents about that issue. In general it is a flaw
>> to have an base-relocation in debug-section, as this means such a
>> section can't be moved into a separate debug-file anymore, due that
>> has no relocation-information.
>> Nevertheless it would be good, if objcopy gets adjusted to eliminated
>> base-relocations of stripped sections.
>
> But the tool generating these debug relocs is gas, isn't it? Why
> on earth does it do that?!?
>
> I still think rebase is not to blame here. It has to assume that
> the relocation info is correct, doesn't it?
rebase is not to blame. I agree ;-)
Someone else is incorrectly managing the reloc table,
and also objcopy seems innocent ...
Postgresql dll's are built in this way:
gcc -ggdb -O2 -pipe
-fdebug-prefix-map=/pub/devel/postgresql/postgresql-9.2.2-1/build=/usr/src/debug/postgresql-9.2.2-1
-fdebug-prefix-map=/pub/devel/postgresql/postgresql-9.2.2-1/src/postgresql-9.2.2=/usr/src/debug/postgresql-9.2.2-1
-Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement
-Wendif-labels -Wmissing-format-attribute -Wformat-security
-fno-strict-aliasing -fwrapv -fexcess-precision=standard
-I/pub/devel/postgresql/postgresql-9.2.2-1/src/postgresql-9.2.2/src/include/snowball
-I/pub/devel/postgresql/postgresql-9.2.2-1/src/postgresql-9.2.2/src/include/snowball/libstemmer
-I../../../src/include
-I/pub/devel/postgresql/postgresql-9.2.2-1/src/postgresql-9.2.2/src/include
-c -o dict_snowball.o
/pub/devel/postgresql/postgresql-9.2.2-1/src/postgresql-9.2.2/src/backend/snowball/dict_snowball.c
dllwrap -o dict_snowball.dll --dllname dict_snowball.dll --def
libdict_snowballdll.def dict_snowball.o api.o utilities.o
stem_ISO_8859_1_danish.o stem_ISO_8859_1_dutch.o
stem_ISO_8859_1_english.o stem_ISO_8859_1_finnish.o
stem_ISO_8859_1_french.o stem_ISO_8859_1_german.o
stem_ISO_8859_1_hungarian.o stem_ISO_8859_1_italian.o
stem_ISO_8859_1_norwegian.o stem_ISO_8859_1_porter.o
stem_ISO_8859_1_portuguese.o stem_ISO_8859_1_spanish.o
stem_ISO_8859_1_swedish.o stem_ISO_8859_2_romanian.o
stem_KOI8_R_russian.o stem_UTF_8_danish.o stem_UTF_8_dutch.o
stem_UTF_8_english.o stem_UTF_8_finnish.o stem_UTF_8_french.o
stem_UTF_8_german.o stem_UTF_8_hungarian.o stem_UTF_8_italian.o
stem_UTF_8_norwegian.o stem_UTF_8_porter.o stem_UTF_8_portuguese.o
stem_UTF_8_romanian.o stem_UTF_8_russian.o stem_UTF_8_spanish.o
stem_UTF_8_swedish.o stem_UTF_8_turkish.o -L../../../src/port
-Wl,--allow-multiple-definition -Wl,--enable-auto-import
-L/usr/local/lib -Wl,--as-needed -L../../../src/backend -lpostgres
> Corinna
Marco
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list