[Mesa-dev] [PATCH] ralloc: Use __attribute__((destructor)) instead of atexit(3)

Jose Fonseca jfonseca at vmware.com
Mon Sep 7 06:54:08 PDT 2015


On 07/09/15 10:17, Jean-Sébastien Pédron wrote:
> On 04.09.2015 01:37, Matt Turner wrote:
>> You need to test for this support in configure.ac. It's as simple as
>> adding a call to AX_GCC_FUNC_ATTRIBUTE in the existing alphabetized
>> list and then a little bit of preprocessor in src/util/macros.h.
>
> Should the code fallbacks on atexit(3) if the attribute is not
> supported?

At least on Windows, with MSVC,  atexit should be the right thing to do, 
since we statically link MSVC RunTime,


 > Can I use the HAVE_FUNC_ATTRIBUTE_DESTRUCTOR macro in
> ralloc.c for this purpose?




For the record, another alternative (way more portable), is you have a 
simple .cpp file with a static destructior:


   class AtExit
   {
   public:
      ~AtExit() {
          // do what must be done
       }
   };

   AtExit atExit();


After all, it seems wrong to use non-standard C to replicate what 
standard C++ can do.


Jose



More information about the mesa-dev mailing list