__attribute__((destructor[(priority)]))
where priority is
an optional integer value denoting the priority. A destructor with
a high integer value runs before a destructor with a low value.
A destructor with a priority runs before a destructor without a
priority.
Priority values up to and including 100 are
reserved for internal use. If you use these values, the compiler
gives a warning. Priority values above 100 are
not reserved.