Добрый день
Несколько плагинов перестали работать на OSX 10.7. Смотрю, выясняется
- плагины подключаются через экспортируемую ф-цию "main" (ну на OSX POSIX просто ф-цию не делать hidden), причем разрешены 2 варианта имени, выглядит так (псевдокод)
C++ (Qt)
theRoutine = reinterpret_cast <PlugEntry> dlsym(mConnectionID, "main");
if (!theRoutine)
theRoutine = reinterpret_cast <PlugEntry> dlsym(mConnectionID, "Main");
if (!theRoutine)
ShowError("not a valid plug-in");
Когда у плагина есть "main" - все гуд, она находится. Но вот когда "Main" - то все равно (первой) находится "main", посторонка которая к плагину никакого отношения не имеет (см скриншот) и которая начинает молотить вот такую лабуду (что занимает до минуты)
PAProcess.m:-[PAProcess getTaskPort]:279: ERROR: Could not get task for PID [312]
... // здесь еще 300 таких же строк только с разным PID
PAProcess.m:-[PAProcess getTaskPort]:279: ERROR: Could not get task for PID [1]
TestApp [311] (32-bit)
Page Faults: 139687, Page Ins: 24593, COW Faults: 684 Ports: 135
Res: 139.57 MB Dirty: 51.01 MB Copied: 2360 KB Swapped: 0 B
Wired: 0 B, KMEM: 0 B
Malloc data unavailable
User CPU Time: 5.389709 sec, System CPU Time: 1.464170 over 5 threads
А на Леоперде (10.6) все нормально, никаких посторонних "main" нет. Плагины старые, писаны 5 и более лет назад, файлы одни и те же на обоих ОС, исходники отсутствуют. Конечно я перебросил main/Main и с новым билдом все работает - но как мне залатать текущую версию на Lion?
Откуда Lion выдрал тот "main"?
Спасибо