On 09/27/2012 12:48 AM, Amos Jeffries wrote: > On 26/09/2012 4:44 a.m., Kinkie wrote: >> Hi all, >> this new patch addresses the concerns that were raised. >> It stops short of removing typedefs.h (but structs.h is now gone). >> >> It doesn't break the build on the farm; it is in my opinion reasonably >> complete and it is for me a merge-candidate. >> > > > I see a lot of externs being removed in .h files. All fine and well for > statically linked .o files. But when these files are shuffled into > librares the ABI linking operates a little different and is known to > strip away symbol references for "internal" objects (ie those with no > explicit extern marking). Please be wary of that.
Are you sure that such stripping happens in C++ context (rather than some old C context)? AFAIK, C++ function declarations have external C++ linking scope by default, so they all should have "extern" marking from the linker point of view. We may need 'extern "C"' (rather than 'extern "C++"' or default) marks for functions that are shared with some C code but that is a different story. Thank you, Alex.
