This is the mail archive of the
mailing list for the Cygwin project.
Re: HEADSUP: Python 2.7 upgrade
On 1/26/2013 6:50 AM, marco atzeri wrote:
On 1/26/2013 1:08 AM, szgyg wrote:
Strip copies the whole .reloc section, including entries for removed
debug sections. This is documented in rebase/README. Rebase checks for
this condition in Relocations::relocate and silently ignores wrong
entries. Well, except in Marco's dict_snowball.dll.
probably the FixImage does no work as rebase is not applied
to the stripped dll, but after the addittion of the
.gnu_debuglink section. The section is small and usually
it is not likely to be covered by the reloc table.
Postgresql has 77 dll's and only 1 hit the problem.
Indeed. Rebase checks whether the base address in a relocation block
points into an existing section. It does, because there is
.gnu_debuglink, but this section is only 0x200 bytes while a relocation
block covers 0x1000 bytes, so rebase segfaults if we have a relocation
in this gap.
I also noted that using "gcc -shared" instead of "dllwrap" produce
a dict_snowball.dll without the reloc table covering the ".debug_*"
As workaround I will deploy a postgresql release without
Changing the build system to not use dllwrap will
take some additional time, specially for the testing all
the 77 dll's behaviour.
Another workaround would be fixing .reloc between stripping and adding
.gnu_debuglink. Running `make rebase.exe' in rebase/imagehelper creates
a rebase which have an -f flag for this. (But it inserts a zero
terminator block instead of changing VirtualSize, so it may or may not