[Development] [5.7-beta] compile error with xcode-6.4
tim at klingt.org
Wed May 4 12:24:05 CEST 2016
>> * legacy code using deprecated sdk functions might not compile a certain
>> codebase (depending on the age of your codebase this maybe lead to
>> significant effort)
> Is that because of bugs you talked about below, or is there another reason why
> this would happen? Why would it not compile?
sometimes the declarations are removed from the sdk, but not from the
binaries, so old binaries still run, but code won't compile anymore. at
one point these methods will be removed from the binaries, but only
apple knows, when ...
eventually this code has to be ported to a new API, but depending on the
effort it will be done sooner or later or never (and the product dies)
>> * compiling with a minimum osx version X of sdk version Y is different
>> than compiling against minimum osx version X of sdk version X. there are
>> subtle differences and this should not be the case if the code were
>> bug-free ... but we've experienced (toolchain) bugs in the past were the
>> only workaround was to downgrade the osx sdk, which implies downgrading
>> the compiler. end-users won't care if a crash is caused by a bug in
>> application code or in qt or in the apple toolchain. they will blame the
>> ... but we had this discussion already in the past
> I don't remember seeing those arguments. They are actually quite important and
> should change the conclusion.
real-world problem in the past:
* host application compiled against 10.8 sdk
* loads a plugin compiled against 10.9 or 10.10 sdk, compiled with 10.8
as minimum osx requirement
* running on 10.8
if the plugin throws a std::exception the plugin could not catch it (no
code of the host is involved). apple acknowledge the bug, but didn't fix
it. we had to stick with the 10.8 sdk until dropping support for 10.8.
i completely agree, that one should try to use the most recent compiler
or sdk when possible. but it should not be a hard requirement imposed by
a general purpose framework like qt ...
More information about the Development