QUOTE (spongebob @ Dec 21 2010, 23:06)

в каком порядке создаются глобальные объекты программы
В том порядке, в котором линкер сложит секции *(.ctors*). В пределах одной единицы компиляции получаются в порядке объявления. Между единицами компиляции - можно сортировать по имени файла, можно еще по каким-то признакам (точно не помню). Все это описывается строкой скрипта KEEP(SORT(*)(.ctors)). Описание - (в том числе и сортировок) - в документации на линкер директива SORT(). Но все это нестандандартно и от лукавого, закладываться на это - делать код неперносимым на другой компилятор. Нужна ли такая переносимость если gcc есть под все процы с которыми работаете - решать вам.