[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: Make more of the OLE interface vtables const
From: Marcus Meissner <marcus () jet ! franken ! de>
Date: 2005-05-30 5:02:19
Message-ID: 20050530050219.GA7788 () jet ! franken ! de
[Download RAW message or body]
On Mon, May 30, 2005 at 11:33:28AM +0900, Dmitry Timoshkov wrote:
> "Andreas Mohr" <andi@rhlx01.fht-esslingen.de> wrote:
>
> > On Sun, May 29, 2005 at 07:05:49PM +0900, Dmitry Timoshkov wrote:
> > > Hello,
> > >
> > > Changelog:
> > > Dmitry Timoshkov <dmitry@codeweavers.com>
> > > Make more of the OLE interface vtables const.
> > You do know that those will *not* end up const?
> >
> > filemoniker.c:static const IClassFactoryVtbl FileMonikerCFVtbl =
> > objdump -x ole32.dll.so:
> > 0008efb0 l O .data 00000014 FileMonikerCFVtbl
> >
> > My suspicion is that this is due to winegcc compile, all other binaries
> > with normal compile (e.g. winedump, ...) have all their const data in .rodata segment...
> >
> > So, does anybody know what seems to be wrong with winegcc or why it chose to do that?
>
> It appears to be not a winegcc problem. That's how gcc generates pointer tables
> (regardless of the pointer type). Although it (gcc) correctly produces warnings
> about losing 'const' attribute while passing a pointer to a const table around, it
> still places contents of the table into r/w section. I'd call it a gcc limitation,
> if not a bug.
The problem is that the pointers in the table need relocation, so it needs to
be modified during linking, so it cannot be fully const.
Ciao, Marcus
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic