Есть программа, написанная на С++ собранная на RH7.2 компилятором GNU GCC 2.96(G++). Отлажена и прекрасно работает. Примерный код
class t_01 {...} c_01;
class t_02 {... обращение к объекту c_30} c_02;
...
class t_30 {...} c_30;
Попытался пересобрать в RH9.0 (компилятор GNU GCC 3.2.2). Неужели, всего пара warnings о строковых константах. Запускаю - не работает. Проставляю в конструкторы отладку и вижу, что ранее сначала отрабатывали все конструкторы , а потом по таймеру с_02 вызывал метод с_30, а в новой версии компилятора это происходит пошагово т.е. создается объект с_02, запускает таймер, вызывает метод с_30 , а объект не проинициализирован (переменная видна , а конструктор не отработал).
Это по логике верно. Но почему это сходило с рук в GCC 2.96(G++)? Эту проблему я решил простым перемещением с_30 вверх. Но программа все равно не работает.(использую сокеты, потоки).
Может кто уже сталкивался с этой проблемой? Или есть какие-то опции компилятора?
Как вариант временного решения сейчас пробую прикрутить к RH9.0 GNU GCC 2.96.