[GRASS5] Re: [GRASSLIST:3471] Grass 53cvs with shared libs for OSX ready

Scott Mitchell smitch at mac.com
Mon May 24 13:41:44 EDT 2004


 From what I can tell from web and documentation reading, it looks like 
when -flat_namespace is defined, then it is impossible to suppress the 
errors regarding multiple symbol definitions.  And flat_namespace does 
seem to be defined in the GRASS build as distributed.

I have experimented a bit with undefining it, but haven't made any 
progress yet.  Also I don't really understand all the possibilities 
here (e.g. two level name spaces seem to be recommended, but I am also 
advised: "For the most part, however, unless you are designing a 
library from scratch, it is not practical to avoid using 
-flat_namespace if you need to override a library’s references to 
another library." in the Apple Developer notes).

This is dealt with at:
http://developer.apple.com/technotes/tn2002/tn2071.html#Section8
and
http://www.metapkg.org/wiki/12
and
http://developer.apple.com/documentation/Porting/Conceptual/PortingUnix/

However, I've just tried taking -flat_namespace out of SHLIB_LD in 
mk/vars.mk and starting the compile over completely, and it doesn't 
seem to have made a difference.  From the documentation, apparently 
this would put the compiler back in the default of two level namespace 
and make the default behaviour to be issuing a warning instead of an 
error for multiply defined symbols, but I am still getting errors.  
I've also experimented with putting in -twolevel_namespace and 
-multiply_defined suppress for compiling just v.digit, as suggested by 
Paul below, but I always get the same errors.

Well, I'm definitely over my head and am giving up for now, but maybe 
this will mean something to someone...

Scott

On 24 May 2004, at 6:04, Paul Kelly wrote:

> Hello Lorenzo
>
> On Mon, 24 May 2004, Lorenzo Moretti wrote:
>
>> Grass 5.3cvs 2004_05_15 built with shared libraries is ready.
>> IT'S ONLY FOR CURIOSITY, NOT FOR WORKING.
>> It's missing some modules respect than normal 5.3cvs static:
>
> Do you think there might be some command-line flag for your Mac OSX 
> C-compiler that will allow it to ignore the multiply-defined symbols 
> warning and compile all those other modules? Or does anybody else know 
> whether this is possible or not?
>
------
Scott W. Mitchell		Scott_Mitchell at carleton.ca
Department of Geography and Environmental Studies
Carleton University, B349 Loeb Building
Ottawa, ON Canada
+1-613-520-2600 ext 2695




More information about the grass-dev mailing list