[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MiNT] gcc-4.2.2-mint-20080127
Hi,
On Monday 28 January 2008, Vincent Rivière wrote:
> I tried to cross-build ScummVM from the sources. Of course, it didn't
> link, because I don't have all the required libraries. However, it is
> enough to reproduce the virtual thunk problem !
>
> I finally understood that `non-virtual thunk to
> MidiDriver_Emulated::open()' is simply the demangled name of a symbol
> (i.e. a function with a non-standard name)
>
> An example of demangling using the c++filt tool:
> $ m68k-atari-mint-c++filt __ZTv0_n12_N5Scumm9ScummFileD1Ev
> virtual thunk to Scumm::ScummFile::~ScummFile()
>
> That problematic symbols are defined with .globl in several files, thus
> the linker complains with multiple definitions.
>
> ScummVM uses a complicated class tree with multiple inheritance and
> virtual inheritance (!), which is quite uncommon. The problem may be
> caused by a GCC bug, probably not related with the MiNT patch.
Is the linker upto date?
I think GCC changed the C++ constructor/destructor ABI in v4.x
which required also updates in Gdb. Maybe linker needed updates
too?
- Eero