Thanks, Bill. I finally figured it out. At the bottom of 
tools/pdbgen/pdb/image.pdb, a hard-coded subset of the @proc array is 
passed as the series of functions to add to the library. By adding new 
functions, the bottom ones were no longer included, and so resulted in 
unresolved references.

I will include a couple of lines of comments that explain what is going 
on in the patch I will be submitting. I should also submit a patch for 
the README_NEW_PDB_PROC document to include this information in the 


On 03/14/2011 01:17 PM, Bill Skaggs wrote:
> It compiles because Gimp plug-ins (unlike PhotoShop plug-ins) are
> separate executables, which
> communicate with the main Gimp app via a shared memory channel.  As
> separate executables,
> they are compiled separately and don't necessarily need to avoid
> function namespace conflicts with
> the main app.  (Although in my opinion it would be better design to
> avoid such conflicts.)
> The libgimp function gimp_image_get_parasite_list is actually just the
> C hook for the function
> image_get_parasite_list_invoker, whose autogenerated source code you can find 
> in
> app/pdb/image_cmds.c.  The PDB actually consists of a large set of
> "invoker" functions
> of that sort -- libgimp is simply the C language binding that C
> plug-ins use to access the
> PDB.  Other languages such as Python and Ruby have their own bindings
> -- the function of
> a binding is to transform a native language command into a call to one
> of the invoker functions
> that belong to the PDB.
> (Libgimp also contains some utility functions that are useful for C
> plug-ins but don't involve
> the PDB, but that doesn't affect the main point.)
>    -- Bill
Gimp-developer mailing list

Reply via email to