Commit 734e03fdcf375d93db48947a2150b3b9cf5022c8

Authored by Jürgen Knödlseder
1 parent 07659949

Export MACOSX_DEPLOYMENT_TARGET only if --enable-universalsdk option is selected.

The export of MACOSX_DEPLOYMENT_TARGET led to some problems when trying to compile GammaLib on Mac OS X using the MacPorts gcc 4.4 compiler. The problems were uncatched exceptions that occured in some of the unit tests. After some debugging I discovered (by chance) that commenting the export of MACOSX_DEPLOYMENT_TARGET solved the problem.

Going into the Apple documentation (http://developer.apple.com/library/mac/#technotes/tn2064/_index.html) it appears that weak linking could be the root cause of the problems. With the current configuration on the Mac OS X 10.6 system on which the tests were done, MACOSX_DEPLOYMENT_TARGET=10.4. Following Apple's documentation, weak linking is implement from Mac OS X 10.2 on. Not specifying MACOSX_DEPLOYMENT_TARGET will automatically set the version to 10.1, hence no weak linking will be used.

Although I'm not 100% sure that weak linking indeed was the issue, removing the export of MACOSX_DEPLOYMENT_TARGET also removed the problems. I thus moved the export of MACOSX_DEPLOYMENT_TARGET into the --enable-universalsdk block, i.e. the export will only be done of the --enable-universalsdk option is selected. It remains to be seen whether this is the wanted behaviour.
Showing 1 changed file with 9 additions and 8 deletions
configure.ac
... ... @@ -387,16 +387,17 @@ yes)
387 387 ;;
388 388 esac
389 389  
390   - # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
391   - # environment with a value that is the same as what we'll use
392   - # in the Makefile to ensure that we'll get the same compiler
393   - # environment during configure and build time.
394   - MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
395   - export MACOSX_DEPLOYMENT_TARGET
396   - EXPORT_MACOSX_DEPLOYMENT_TARGET=''
397   -
398 390 # Set compile, link and pre-processor flags dependent on architecture
399 391 if test "${enable_universalsdk}"; then
  392 +
  393 + # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
  394 + # environment with a value that is the same as what we'll use
  395 + # in the Makefile to ensure that we'll get the same compiler
  396 + # environment during configure and build time.
  397 + MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
  398 + export MACOSX_DEPLOYMENT_TARGET
  399 + EXPORT_MACOSX_DEPLOYMENT_TARGET=''
  400 +
400 401 UNIVERSAL_ARCH_FLAGS=""
401 402 if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
402 403 UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
... ...