This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Constructors of library objects doesn't get called


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi list,

I figured out a stange behavior, when a progamm is linked aginst a lib
archive. If there are object files in the archive, which have
constrution functions, they do not get called, unless some other symbol
of the object file is referenced by the using program. When the linking
is done directly with the .o files instead an .a file, the ctors are
called. Also the ctors are get called when a symbol of the library is
referenced from another program part. So I guess when there is no
referencing part to the library during linking, the whole archive gets
silently dropped by the linker.

I attached a test case for this behavior, which builds 4 demonstration
programs:
~    | Residence of i | link    | result
- ----+----------------+---------+-------
vll | lib            | lib     | ok
vlo | lib            | objects | ok
vpl | program        | lib     | BAD
vpo | program        | objects | ok

The main problem for me is that I use a tool for generating some
autoregistration stuff for a plugin system, which relies on the call to
the constructors of a c++ object inside the sources.

bye
Rudi.

PS: Please CC me, I'm not on the list

- --
GPG encrypted mails preferred.
GPG verschlüsselte Mails bevorzugt.
- ---> https://dsred.ccc.de/085/tkuev <----

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQERAwUBRCAAbCHRAwx/e+nvAQLVQwfgii8U2XYmraffip3qo8+Ra+BaTVOA4Vt2
54b1mqTKh4UTEu6F36pLxEY8ath1nisNdptGFrz/KI6Kqr/XNK6JhVwMZHbNUC02
17xTv4pr6nNrmlm1JT7rqkYlXaTjt/wnG2af5usXnf+BRwRAsxKN46aMeshDDVPd
3jxjEsoSevPg+g8G/Je3FlJ7NOdIN/QW5jz58re0xZW5YHfEHHylr4CW+nhf5Ri3
k/kP5YNqhvDcMyarj8C35z+89IgE4y5bFYVPfcWitoCt8HkHt3h6JZe7/D5MXy3b
OfDnqm/8QAweGs+nAGGAmP5B3vSJDKMkoRQa1nX7OL8IpXMs
=qaJ3
-----END PGP SIGNATURE-----

Attachment: testcase.tar.bz2
Description: BZip2 compressed data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]