From: Ron <ro...@de...> - 2003-01-24 12:53:08
|
Thanks Earnie, On Fri, Jan 24, 2003 at 07:02:58AM -0500, Earnie Boyd wrote: > It is known that the name mangling differ between g++ and MSVC++. I.E.: > I don't think it's possible to do a build of your assembler parts with > MinGW GCC and mix it with your VC++ objects. Yes, this was going to be my initial response to the OP, except then I noticed the source he was talking about was C/asm not C++ and thought I'd better run it past the list first. > You state in your report that building all objects with MinGW GCC gives > working results. You either need to stop using VC++ or you need to use > MASM to build the assembler code. Then there's the syntax issue for > assembler with intel vs at&t. Binutils gas understands both syntaxes, I > don't know if MASM or NASM do. If not you'll need to convert to intel > syntax. His problem seems to be with the allocation of memory for an uninitialised static int inside a function. mingw-gcc and vc appear to have different rules for that, though personally I don't know if that makes one or the other in breach of some standard, or if they are perfectly entitled to differ in this at the expense of the unsuspecting. I've not had my head deep in assembly since 6502 days, nor am I current with C ABI lore, so I held off closing it with the "don't mix compilers" macro until someone here could confirm that its not really a bug in gcc. I'm more inclined to suspect it's a bug (optimisation?) in vc to not allocate memory for the static even if its still uninitialised, or a bug in his code for not declaring it volatile, but I'm completely unburdened by hard facts in forming that opinion.. still unsure, Ron > >I thought I forwarded this one here already, but apparently not. Could > >someone please take a look at: > > > >http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=170468 > > > >and comment on whether this is fixed, fixable, or not a bug in binutils. |