Кросспост из
блога автора. Комментировать лучше
там, но можно и тут
Вот есть такой вызов, strnlen:
size_t
strnlen(const char *s, size_t maxlen);
DESCRIPTION
The strnlen() function attempts to compute the length of s, but never scans beyond the
first maxlen bytes of s.
И он есть, например, в Mac OS X 10.7 и новее.
Берем код с этим вызовом, собираем с -mmacosx-version-min=10.5 (должен получиться совместимый c 10.5 код, да?) на 10.8, несем на 10.6, запускаем.
Все падает.
И ладно бы падало с внятным сообщением, вот не могу залинковать такое. Нет, SIGSEGV, нулевой указатель (на функцию?).
После этого начинаешь любить Win32 особенно остро.