[PATCH] undefined symbols compiling for macosx >10.8
Ken Thomases
ken at codeweavers.com
Thu Apr 2 13:14:15 CDT 2015
That symbol is in the 10.8 SDK. We build against that SDK all the time. It works fine.
Here's the documentation for that function: <https://developer.apple.com/library/mac/documentation/Security/Reference/secureTransportRef/#//apple_ref/c/func/SSLGetProtocolVersionMax>. Notice that under Availability it says, "Available in OS X v10.8 and later."
Here is the declaration from Security.framework/Headers/SecureTransport.h:
----------
OSStatus
SSLGetProtocolVersionMax (SSLContextRef context,
SSLProtocol *maxVersion)
__OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_5_0);
----------
Notice the __MAC_10_8 identifier in the __OSX_AVAILABLE_STARTING() decorator.
You need to fix your build environment and/or your build commands. Whatever problem you're encountering while trying to build is specific to your system.
-Ken
On Apr 2, 2015, at 11:58 AM, Sergey Isakov <isakov-sl at bk.ru> wrote:
> Your proposition that SDK10.8 contains the symbol is wrong
> ——
> #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
> +#ifdef SSLGetProtocolVersionMax
> if(SSLGetProtocolVersionMax != NULL) {
> ----
>
> On 01 апр. 2015 г., at 21:36, Ken Thomases <ken at codeweavers.com> wrote:
>
>> If you were having problems building Wine without this patch, then you have a system configuration problem. Or you're configuring Wine incorrectly.
>>
>> -Ken
>>
>> On Apr 1, 2015, at 11:52 AM, Sergey Isakov <isakov-sl at bk.ru> wrote:
>>
>>> Sorry but I committed the patch make me compilation be possible.
>>>
>>> On 01 апр. 2015 г., at 18:34, Ken Thomases <ken at codeweavers.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> This patch makes no sense. Wine builds just fine for OS X versions greater than 10.8. Indeed, as near as I know, it still builds just fine for 10.5 and up (the Mac driver requires 10.6 or later, but on 10.5 it just will be skipped; it won't break anything).
>>>>
>>>> On Apr 1, 2015, at 6:48 AM, Sergey Isakov <isakov-sl at bk.ru> wrote:
>>>>
>>>>> Undefined symbols for architecture i386:
>>>>> "_kCGDisplayShowDuplicateLowResolutionModes", referenced from:
>>>>> -[WineApplicationController modeMatchingMode:forDisplay:] in cocoa_app.o
>>>>> ld: symbol(s) not found for architecture i386
>>>>
>>>> If you're getting this error, you're not building against a 10.8+ SDK properly. The compiler is seeing the headers for a 10.8+ SDK but the linker is seeing libraries and frameworks from some pre-10.8 SDK.
>>>>
>>>>
>>>>> Instead of checking for NULL we should check #ifdef
>>>>
>>>> No. The things being tested are not macros in any version of the SDK. Your #ifdef checks will never pass. You have effectively done "#if 0".
>>>>
>>>> Finally, changes to separate DLLs (secur32 and winemac.drv, in this case) should be in separate patches unless they are inter-dependent.
>>>>
>>>> -Ken
>>>>
>>>
>>
>
More information about the wine-devel
mailing list