On Mon, 20 Aug 2007 16:00:28 -0700 chromatic <[EMAIL PROTECTED]> wrote:
> On Monday 20 August 2007 05:13:07 James E Keenan wrote: > > > t/src/compiler....................................# > > '/usr/bin/g++-3.3 -L/usr/local/lib t/src/compiler_2.o > > src/parrot_config.o -o t/src/compiler_2 blib/lib/libparrot.a -lm' > > failed with exit code 1 # Failed to build 't/src/compiler_2': ld: > > multiple definitions of symbol _PMCNULL # t/src/compiler_2.o > > definition of _PMCNULL in section (__DATA,__common) # > > blib/lib/libparrot.a(pmc.o) definition of _PMCNULL in section > > (__DATA,__common) > > This one looks like fallout of r20649. Mark? I don't believe r20649 would cause duplicate definitions. Missing definitions, sure, but not duplicates. No, I think this is fallout from the win32 workaround I mentioned to you in #parrot a few days ago... a different commit. See r20641. The correct solution is to fix PARROT_API so libparrot.dll exports the PMCNULL global correctly, which will fix win32, and to remove the "PMCNULL" definitions from t/src/compiler.t, which will fix Darwin. I've been working on the win32 linker part of that, but haven't made any progress yet. I've been trying to make a test dll project to play with, but I can't seem to convince the linker to do the same thing with my dll that it does with parrot's. (It neglects to generate a .lib file, which seems needed for linking applications against the dll.) Mark