"Переносимых приложений не существует, только портированные приложения"
Сначала начните с использования одинаковых инструментов на обеих платформах, если можете. И.Е. если версия Solaris не была изменена для использования GCC, GNU make и т. д., я советую сначала изменить это и заставить сборку Solaris работать. Вы обнаружите, что сначала исправите проблемы с компилятором, а не пытаетесь их исправить в Linux одновременно с попыткой портировать приложение.
Во-вторых, убедитесь, что вы можете получить все одинаковые библиотеки на каждой платформе в одной и той же версии. Я думаю, что вы можете получить ACE для Linux. Убедитесь, что библиотеки этой версии работают на Solaris. Это ограничит проблемы совместимости.
Как только вы это сделаете, начинается настоящая работа.
Вам нужно будет скомпилировать каждый исходный файл по одному и найти функции, которые недоступны в Linux. Сначала ищите замену, которая доступна в обеих ОС. Если нет простой замены, создайте две библиотеки, одну для Solaris и одну для Linux. Создайте классы-оболочки или функции, чтобы абстрагироваться от несовместимости.
Если это звучит как большая работа - это так.