[Libreoffice] MacOS SDK support: summary and patches

Norbert Thiebaud nthiebaud at gmail.com
Mon Jul 25 20:02:56 PDT 2011


Mac OSX, SDK and runtime compatibility

Currently configure.in hardcode /Developer/SDKs/MacOSX10.4u.sdk as the
SDK to use and set_soenv.in hardcode MACOSX_DEPLOYMENT_TARGET to
"10.4"

MacOS use the following piece of information:

-isysroot=<MACOSX_SDK_PATH>  : This is given to the compiler/linker to
tell it to use a particular SDK.
MAC_OS_X_VERSION_MIN_REQUIRED : this define tell the compiler which
minimum level or API is required at runtime
MAC_OS_X_VERSION_MAX_ALLOWED : this define tell the compiler the
maximum level of API that can be optionally used at run time
MACOSX_DEPLOYMENT_TARGET : this is a essentially a synonym of
MAC_OS_X_VERSION_MIN_REQUIRED, except that the compiler used to detect
that in the environment to  set some internal variable that is used in
the absence of MAC_OS_X_VERSION_MIN_REQUIRED. This is the legacy flags
from a time where the MIN/MAX mechanism was not supported.

for reference and more detailed explanation see:
http://developer.apple.com/library/mac/#technotes/tn2064/_index.html


The Patch 0001-setup-the-infrastructure-in-configure.in-to-be-more.bootstrap.patch
attached add to configure.in the infrastructure to define these value.
there are 3 new options:

--with-macosx-sdk=<10.4|10.5|10.6>
--with-macosx-version-min-required=<10.4|10.5|10.6>
--with-macosx-version-max-allowed=<10.4|10.5|10.6>

if --with-macosx-version-min-required is not specified it default to 10.4
if --with-macosx-version-max-allowed is not specified it default to
--with-macosx-version-min-required
if --with-macosx-sdk is not specified it default to
--with-macosx-version-max-allowed

--with-macosx-version-min-required must be inferior or equal to
--with-macosx-version-max-allowed
--with-macosx-version-max-allowed must be inferior or equal to --with-macosx-sdk

--with-macosx-sdk must of course exist on the build machine

at the end
MAC_OS_X_VERSION_MIN_REQUIRED is set based on
--with-macosx-version-min-required (but as an integer value : 10.4 =>
1040)
MAC_OS_X_VERSION_MAX_ALLOWED is set based on
--with-macosx-version-max-allowed (but as an integer value : 10.4 =>
1040)
MACOSX_DEPLOYMENT_TARGET is set based on
--with-macosx-version-min-required. This is used because some external
library use that value under that form (10.4 instead of 1040) to build
MACOSX_SDK_PATH=/Developer/SDKs/MacOSX10.[4u|5|6].sdk


The Patch 0002-Use-MACOSX_SDK_PATH-and-other-configured-variables-i.bootstrap.patch
make use of the above variables in dmake (solenv/inc/) and in gbuild
(solenv/gbuild/platform)


The Patch 0001-Use-MACOSX_SDK_PATH.libs-extern-sys.patch
modify moz and python makefile to use the new environment variables.

At this point only 10.4/10.4./10.4 is known to work (and behave
exactly like before the patch)

I already know that using anything but 10.4 will fail, for instance
CFLAGS contain un-conditionally -Wno-long-double which is not
supported by gcc after 4.0
but at least with these patches we an start working on improving the
code and build system to support more recent SDKs.

Since there was some argument about that whole topic, I did not push
these patches yet....


Norbert
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-setup-the-infrastructure-in-configure.in-to-be-more.bootstrap.patch
Type: application/mbox
Size: 11707 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20110725/09f7c54a/attachment-0003.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Use-MACOSX_SDK_PATH-and-other-configured-variables-i.bootstrap.patch
Type: application/mbox
Size: 2342 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20110725/09f7c54a/attachment-0004.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Use-MACOSX_SDK_PATH.libs-extern-sys.patch
Type: application/mbox
Size: 1650 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20110725/09f7c54a/attachment-0005.bin>


More information about the LibreOffice mailing list