Úgy tűnik nekem, hogy AIX-on a collect2 olyan konstruktorokra/destruktorokra is lecsap, amelyek ott vannak ugyan a *.a fájlban, de a konkrét executabléba nem kellenének. A példaprogram:
/* collect2_main.cc */
#include <cstdio>
int main ()
{
fprintf (stderr, "A főprogram vagyok, semmi különös\n");
fflush (stderr);
}
Futásának eredménye, ha csak úgy 'normálisan' linkeljük:
$ ./collect2_prob
A főprogram vagyok, semmi különös
Ha hozzálinkelünk egy másik objektet, amit nem hívunk és nem használunk ugyan, de amiben van egy globális objektum, akkor annak azért lefut a konstruktora (AIX-on és linuxon is):
$ ./collect2_prob_o
HibaProvokalo: Nekem qrvára nem kellene futnom
A főprogram vagyok, semmi különös