On Fri, 2006-08-25 at 12:17 +1000, Void wrote:
I then got to the final link step and there's just one undefined reference: src/print.c:118: undefined reference to `sp_module_new'
'sp_module_new' is defined in module.c: static SPModule * sp_module_new (GType type, SPRepr *repr);
Okay, I got it to compile. My memory of 'static' was vague, I was thinking of variables, but then checked and found that in front of a function definition it makes it visible in the current file only. So, I removed the 'static' prefix and moved the definition to 'modules.h' and it compiled.
...but, why was it static anyway? Have I broken something by remving the 'static'?
It's unlikely that you broke anything. I'm not sure why it was static before. Typically the modules were only created by one function that would read in the files. Perhaps there was an optimization there. I'm more curious how it compiled before. Earlier GCCs must have not completely listened to the static identifier.
Also, you might put yourself on the 0.36 branch. If there were fixes to the release they might have been put there. I don't remember any that didn't get on a tag, but if we ever had a brown bag the fixes would be on that branch. It's a better target than the label.
--Ted