I think that I must be missing something. In ponie, src/pmc/perl5pmcs.h looks
like this:

------------------------------------------------------------------------------
/*
 * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 *
 * This file is generated automatically from 'various files'
 * by /home/nick/Ponie/ponie00/parrot/tools/build/pmc2c.pl.
 *
 * Any changes made here will be lost!
 *
 */

#define PARROT_IN_EXTENSION
PARROT_DYNEXT_EXPORT Parrot_PMC Parrot_lib_perl5pmcs_load(Parrot_INTERP 
interpreter);
------------------------------------------------------------------------------

To me, that PARROT_IN_EXTENSION is not helping. The relevance seems to be
for <parrot/config.h>:

/* Symbol export and import decoration. At the time of writing, note that
 * PARROT_IN_CORE won't always imply !PARROT_IN_EXTENSION. */
#if defined(PARROT_IN_EXTENSION)
#define PARROT_API
#define PARROT_DYNEXT_EXPORT
#else
#define PARROT_API
#endif


yet the way it's currently defined it's too late to be of any use -
<parrot/config.h> has already been and gone. And even if I re-order the
include files so that src/pmc/perl5pmcs.h is included before
<parrot/config.h> in my source, then it still doesn't help. (Probably because
<parrot/config.h> has been included even earlier).

The compile only works if I define PARROT_IN_EXTENSION myself (on the compiler
command line)

So what should be going on? Or am I missing something completely obvious?

Nicholas Clark

Reply via email to