config.gcc (default_use_cxa_atexit): Extend the description of this configure variable.
authorNick Clifton <nickc@redhat.com>
Thu, 2 Mar 2006 10:01:21 +0000 (10:01 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Thu, 2 Mar 2006 10:01:21 +0000 (10:01 +0000)
* config.gcc (default_use_cxa_atexit): Extend the description of
  this configure variable.  Set its default value to "yes" for
  Linux, NetBSD and ELF targets on the assumption that they will
  use C libraries with the __cxa_atexit function.

From-SVN: r111636

gcc/ChangeLog
gcc/config.gcc

index d45c3a337742124ee90e00951cb213f754ef9a39..f6bad00d139eee27e7f53def75101350f9a79398 100644 (file)
@@ -1,3 +1,10 @@
+2006-03-02  Nick Clifton  <nickc@redhat.com>
+
+       * config.gcc (default_use_cxa_atexit): Extend the description of
+       this configure variable.  Set its default value to "yes" for
+       Linux, NetBSD and ELF targets on the assumption that they will
+       use C libraries with the __cxa_atexit function.
+
 2006-03-02  Ben Elliston  <bje@au.ibm.com>
 
        * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
index 9aea7ced157fc88767017d907807125b268eb709..c7890374c3b378c3fb237a4cf3c68a6af7641201 100644 (file)
 #                      threads support was requested.
 #
 #  default_use_cxa_atexit
-#                      "no" by default, can be set to "yes" if a target
-#                      wishes to use __cxa_atexit() by default if the
-#                      $enable___cxa_atexit variable is not set.
+#                        The default value for the $enable___cxa_atexit
+#                      variable.  enable___cxa_atexit needs to be set to
+#                      "yes" for the correct operation of C++ destructors
+#                      but it relies upon the presence of a non-standard C
+#                      library function called __cxa_atexit.
+#                        Since not all C libraries provide __cxa_atexit the
+#                      default value of $default_use_cxa_atexit is set to
+#                      "no" except for targets which are known to be OK.
 #
 #  gas_flag            Either yes or no depending on whether GNU as was
 #                      requested.
@@ -461,6 +466,8 @@ case ${target} in
       tm_defines="${tm_defines} UCLIBC_DEFAULT=0"
       ;;
   esac
+  # Assume that glibc or uClibc are being used and so __cxa_atexit is provided.
+  default_use_cxa_atexit=yes
   ;;
 *-*-gnu*)
   # On the Hurd, the setup is just about the same on
@@ -482,6 +489,8 @@ case ${target} in
       tm_file="${cpu_type}/${cpu_type}.h i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h gnu.h ${tm_file}"
       ;;
   esac
+  # Assume that glibc is being used and so __cxa_atexit is provided.
+  default_use_cxa_atexit=yes
   ;;
 *-*-netbsd*)
   tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd t-libgcc-pic"
@@ -551,6 +560,10 @@ case ${target} in
     *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
   esac
   ;;
+*-*-elf)
+  # Assume that newlib is being used and so __cxa_atexit is provided.
+  default_use_cxa_atexit=yes
+  ;;
 esac
 
 case ${target} in