gcc 4.0 -fvisibility=hidden, issue with RelativeDateHelper

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

gcc 4.0 -fvisibility=hidden, issue with RelativeDateHelper

Chris Kenyon-2

(Mac + Xcode 2.4) gcc 4.0 -fvisibility=hidden, issue with RelativeDateHelper

  • Issue: RelativeDateHelper's do not link correctly (inconsistently) with Settings::instance().evaluationDate() using Xcode.
  • Effects:
    • Settings::instance().evaluationDate() has no effect on relative date helpers.
    • You cannot build yield curves correctly for any date except the present day (base dates are silently changed).
  • Cause: setting -fvisibility=hidden in the compile step. (possibly also -fvisibility-inlines-hidden and -mfixandcontinue)
  • Resolution: If you use Xcode you MUST turn off the -fvisibility flag. Do this at the Edit Active Target option of the Project settings, by changing the fix and continue flag(!). Check by looking at the build log. Alternatively you may need to check/uncheck the visibility flags just above this one.
  • Description: Xcode uses the gcc compiler setting -fvisibility=hidden by default (although in the gui it appears not to - when you look at the Project Settings - when you look at the build log - or the Active Target - it does). When this is removed problem goes away (you need to change a setting at the Edit Active Target level, specifically turn off Fix & Continue, then this turns off all the visibility settings - if it does not then turn off all three separately). Confirmed by reproducing the behavior outside Xcode using the g++ compiler with and without the -fvisibility=hidden flag.

Fine-grained symbol visibility is a new capability of the gcc 4.0 compiler. It is presented as wonderful, except for some possible interaction with exceptions.


---------------------------------


Best regards,

Chris Kenyon


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users