16 lines
718 B
Text
16 lines
718 B
Text
This test is here to check that all constructors and destructors
|
|
are placed in the .init_array and .fini_array sections. More precisely:
|
|
|
|
- The address of functions with __attribute__((constructor)) are placed in
|
|
the .init_array section.
|
|
|
|
- The address of functions with __attribute__((destructor)) are placed in
|
|
the .fini_array section
|
|
|
|
- The address of static C++ constructors are placed in the .init_array
|
|
section. There is no corresponding entry in the .fini_array for the
|
|
corresponding destructors. Instead, the constructor must call __cxa_atexit
|
|
to register the destructors manually.
|
|
|
|
The main idea is to check that there is no .ctors or .dtors section in the
|
|
generated shared library.
|