The NetBSD Project

CVS log for src/lib/libc/stdlib/atexit.c

[BACK] Up to [cvs.NetBSD.org] / src / lib / libc / stdlib

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.32 / (download) - annotate - [select for diffs], Mon Nov 6 14:26:03 2017 UTC (6 years, 5 months ago) by joerg
Branch: MAIN
CVS Tags: phil-wifi-base, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, phil-wifi, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, is-mlppp-base, is-mlppp, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, HEAD
Changes since 1.31: +13 -6 lines
Diff to previous 1.31 (colored)

Assert that __cxa_atexit is not used with NULL as DSO. Don't use
__cxa_atexit directly from atexit, they have different behavior.

Revision 1.31 / (download) - annotate - [select for diffs], Thu Nov 2 19:39:33 2017 UTC (6 years, 5 months ago) by kamil
Branch: MAIN
Changes since 1.30: +1 -1 lines
Diff to previous 1.30 (colored)

Revert previous on demand.

Rationale:

The DSO handle is a required part of the (external) __cxa_atexit interface.
The atexit mapping is an implementation detail and not part of the public
interface. Doing it directly creates UB as it involves casting function
pointers between incompatible types.

  -- Joerg

Revision 1.30 / (download) - annotate - [select for diffs], Thu Nov 2 18:37:14 2017 UTC (6 years, 5 months ago) by kamil
Branch: MAIN
Changes since 1.29: +3 -3 lines
Diff to previous 1.29 (colored)

Correct handling of __cxa_atexit(a,b,NULL) in libc

In the NetBSD implementation and suggested by Itanium C++ ABI, we wrap
the atexit(x) call as __cxa_atexit(x,NULL,NULL).

__cxa_atexit() is an internal function for the usage of C++.

Correct a bug that __cxa_atexit(x,y,NULL) is handled in the same way as
atexit(x) (which is simplified to __cxa_atexit(x,NULL,NULL).

This misbehavior has been detected in the Thread Sanitizer port to NetBSD.

Patch reviewed by <christos>

Sponsored by <The NetBSD Foundation>

Revision 1.29 / (download) - annotate - [select for diffs], Sun Apr 19 18:15:26 2015 UTC (9 years ago) by joerg
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Changes since 1.28: +10 -3 lines
Diff to previous 1.28 (colored)

Redo __aeabi_atexit by shuffling the arguments and dropping the code in
libstdc++.

Revision 1.28 / (download) - annotate - [select for diffs], Sat Apr 18 21:44:31 2015 UTC (9 years ago) by joerg
Branch: MAIN
Changes since 1.27: +6 -2 lines
Diff to previous 1.27 (colored)

Add __aeabi_atexit alias for another case of NIH on ARM.

Revision 1.27 / (download) - annotate - [select for diffs], Tue Jan 20 18:31:25 2015 UTC (9 years, 2 months ago) by christos
Branch: MAIN
Changes since 1.26: +4 -2 lines
Diff to previous 1.26 (colored)

Fix non _REENTRANT build.

Revision 1.26 / (download) - annotate - [select for diffs], Mon Aug 19 22:14:37 2013 UTC (10 years, 8 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, netbsd-7-base
Branch point for: netbsd-7
Changes since 1.25: +3 -3 lines
Diff to previous 1.25 (colored)

Put the startup code in .text.startup

Revision 1.25 / (download) - annotate - [select for diffs], Fri Apr 26 18:29:55 2013 UTC (10 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2
Changes since 1.24: +12 -12 lines
Diff to previous 1.24 (colored)

add {at_,}quick_exit(3) from FreeBSD

Revision 1.24 / (download) - annotate - [select for diffs], Thu Oct 8 16:33:45 2009 UTC (14 years, 6 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-pagecache-tag8, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-premerge-20091211, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, matt-mips64-premerge-20101231, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2, agc-symver-base, agc-symver
Branch point for: yamt-pagecache, tls-maxphys
Changes since 1.23: +3 -5 lines
Diff to previous 1.23 (colored)

When converting the locking path of mutex+counter to a real recursive
mutex, it's a good idea to convert the unlock path too so that the
recursive mutex gets released as many times as it was locked.
Fixes pthread + cxa deadlock.

Revision 1.23 / (download) - annotate - [select for diffs], Mon Apr 28 20:23:00 2008 UTC (15 years, 11 months ago) by martin
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, jym-xensuspend-nbase, jym-xensuspend-base, jym-xensuspend, hpcarm-cleanup-nbase, christos-time_t-nbase, christos-time_t-base
Branch point for: christos-time_t
Changes since 1.22: +2 -9 lines
Diff to previous 1.22 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.22 / (download) - annotate - [select for diffs], Mon Feb 25 14:35:54 2008 UTC (16 years, 1 month ago) by xtraeme
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, matt-armv6-nbase, keiichi-mipv6-base, hpcarm-cleanup-base
Branch point for: yamt-pf42
Changes since 1.21: +3 -15 lines
Diff to previous 1.21 (colored)

There's no need to do the mutex_trylock dance anymore in __cxa_finalize(),
just using mutex_lock() is enough.

Revision 1.21 / (download) - annotate - [select for diffs], Mon Feb 25 14:15:10 2008 UTC (16 years, 1 month ago) by xtraeme
Branch: MAIN
Changes since 1.20: +6 -2 lines
Diff to previous 1.20 (colored)

Add a comment for __libc_atexit_init() missed in previous that was
available in the original patch.

Revision 1.20 / (download) - annotate - [select for diffs], Mon Feb 25 14:06:13 2008 UTC (16 years, 1 month ago) by xtraeme
Branch: MAIN
Changes since 1.19: +14 -3 lines
Diff to previous 1.19 (colored)

Make the atexit mutex recursive and initialize it in __libc_init()
as suggested by ad@, based on the patch provided by Sverre Froyen
in lib/37654.

Reviewed by ad@ and jmcneill@.

Revision 1.19 / (download) - annotate - [select for diffs], Wed Aug 8 01:05:34 2007 UTC (16 years, 8 months ago) by kristerw
Branch: MAIN
CVS Tags: matt-armv6-prevmlocking, matt-armv6-base, cube-autoconf-base, cube-autoconf
Branch point for: matt-armv6, keiichi-mipv6
Changes since 1.18: +7 -2 lines
Diff to previous 1.18 (colored)

Keep track of atexit functions that are added while processing
atexit functions, to ensure that the new functions will be called.

Revision 1.18 / (download) - annotate - [select for diffs], Wed Aug 8 00:51:18 2007 UTC (16 years, 8 months ago) by kristerw
Branch: MAIN
Changes since 1.17: +6 -4 lines
Diff to previous 1.17 (colored)

Ensure that the struct atexit_handler has been removed from the list
of pending atexit handlers before the structure is reused.  This prevents
__cxa_finalize from going into an infinite loop when an atexit handler
register a new atexit handler as in:

   #include <stdlib.h>

   void two(void) {
   }

   void one(void) {
           atexit(two);
   }

   int main(void) {
           atexit(one);
           return 0;
   }

Revision 1.17 / (download) - annotate - [select for diffs], Sun Jun 12 05:21:28 2005 UTC (18 years, 10 months ago) by lukem
Branch: MAIN
CVS Tags: netbsd-4-base, matt-mips64-base, matt-mips64, hpcarm-cleanup, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: wrstuden-fixsa, netbsd-4
Changes since 1.16: +6 -1 lines
Diff to previous 1.16 (colored)

Add missing __RCSID()

Revision 1.16 / (download) - annotate - [select for diffs], Wed Mar 19 22:26:47 2003 UTC (21 years, 1 month ago) by nathanw
Branch: MAIN
CVS Tags: netbsd-3-base, netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0, netbsd-2-base, netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1, netbsd-2-0-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, netbsd-2-0, netbsd-2
Branch point for: netbsd-3
Changes since 1.15: +4 -2 lines
Diff to previous 1.15 (colored)

When implementing a recursive mutex, it helps if you remember to
decrement the recursion count.

Fixes the problem of uic dying with a no-next-thread assertion while
building kdeadmin3; reported by Perry Metzger and others on
tech-pkg.

Revision 1.15 / (download) - annotate - [select for diffs], Tue Mar 4 18:09:48 2003 UTC (21 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.14: +54 -14 lines
Diff to previous 1.14 (colored)

Fix lib/20558:
A dynamically linked program invokes the rtld cleanup routine via
an atexit handler.  This rtld cleanup routine invokes _fini() for
shared libraries, which in-turn invoke __cxa_finalize() with their
DSO handle.  By luck, this happens to work okay for non-threaded
programs, but for a threaded program, this leads to deadlock (sometimes
manifested as an assertion failure, if the program didn't actually
create any threads).

Fixed by teaching __cxa_finalize() that it can be recursively invoked,
adjusting the handler list manipulation accordingly.

Revision 1.14 / (download) - annotate - [select for diffs], Sat Mar 1 04:19:37 2003 UTC (21 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.13: +166 -55 lines
Diff to previous 1.13 (colored)

Rewrite atexit(3), and add support for __cxa_atexit()/__cxa_finalize(),
as specified by the C++ ABI for Itanium.  Despite the ABI document's name,
many of the items in it are implemented for other architectures.

See the following URL for a reference:

	http://www.codesourcery.com/cxx-abi/abi.html#dso-dtor

Fixes lib/18379 (from Joel Baker).

Revision 1.13 / (download) - annotate - [select for diffs], Sat Jan 18 11:32:03 2003 UTC (21 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.12: +3 -3 lines
Diff to previous 1.12 (colored)

Merge the nathanw_sa branch.

Revision 1.12 / (download) - annotate - [select for diffs], Mon Sep 20 04:39:36 1999 UTC (24 years, 7 months ago) by lukem
Branch: MAIN
CVS Tags: wrstuden-devbsize-base, wrstuden-devbsize-19991221, wrstuden-devbsize, netbsd-1-6-base, netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1, netbsd-1-6-PATCH002-RELEASE, netbsd-1-6-PATCH002-RC4, netbsd-1-6-PATCH002-RC3, netbsd-1-6-PATCH002-RC2, netbsd-1-6-PATCH002-RC1, netbsd-1-6-PATCH002, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001-RC1, netbsd-1-6-PATCH001, netbsd-1-6, netbsd-1-5-base, netbsd-1-5-RELEASE, netbsd-1-5-PATCH003, netbsd-1-5-PATCH002, netbsd-1-5-PATCH001, netbsd-1-5-BETA2, netbsd-1-5-BETA, netbsd-1-5-ALPHA2, netbsd-1-5, nathanw_sa_before_merge, nathanw_sa_base, minoura-xpg4dl-base, minoura-xpg4dl, fvdl_fs64_base, comdex-fall-1999-base, comdex-fall-1999
Branch point for: nathanw_sa
Changes since 1.11: +2 -8 lines
Diff to previous 1.11 (colored)

back out the #ifdef _DIAGNOSTIC argument checks; too many people complained.
_DIAGASSERT() is still retained.

Revision 1.11 / (download) - annotate - [select for diffs], Thu Sep 16 11:45:33 1999 UTC (24 years, 7 months ago) by lukem
Branch: MAIN
Changes since 1.10: +12 -2 lines
Diff to previous 1.10 (colored)

* use _DIAGASSERT() to check pointer arguments against NULL and file
  descriptors against -1 (as appropriate).
* add actual checks which to detect stuff that would trigger_DIAGASSERT(),
  and attempt to return a sane error condition.
* knf some code
* remove some `register' decls.

the first two items result in the addition of code similar to the
following in various functions:

		_DIAGASSERT(path != NULL)
	#ifdef _DIAGNOSTIC
		if (path == NULL) {
			errno = EFAULT;
			return (-1);
		}
	#endif

Revision 1.10 / (download) - annotate - [select for diffs], Sun Oct 18 14:36:30 1998 UTC (25 years, 6 months ago) by kleink
Branch: MAIN
CVS Tags: netbsd-1-4-base, netbsd-1-4-RELEASE, netbsd-1-4-PATCH003, netbsd-1-4-PATCH002, netbsd-1-4-PATCH001, netbsd-1-4
Changes since 1.9: +12 -3 lines
Diff to previous 1.9 (colored)

Protect __atexit manipulation and traversal with a mutex.

Revision 1.9 / (download) - annotate - [select for diffs], Tue Feb 3 18:44:13 1998 UTC (26 years, 2 months ago) by perry
Branch: MAIN
Changes since 1.8: +3 -3 lines
Diff to previous 1.8 (colored)

remove obsolete register declarations

Revision 1.8 / (download) - annotate - [select for diffs], Fri Jan 30 23:37:45 1998 UTC (26 years, 2 months ago) by perry
Branch: MAIN
Changes since 1.7: +6 -6 lines
Diff to previous 1.7 (colored)

update to lite-2

Revision 1.7 / (download) - annotate - [select for diffs], Sun Jul 13 20:16:35 1997 UTC (26 years, 9 months ago) by christos
Branch: MAIN
CVS Tags: netbsd-1-3-base, netbsd-1-3-RELEASE, netbsd-1-3-PATCH003-CANDIDATE2, netbsd-1-3-PATCH003-CANDIDATE1, netbsd-1-3-PATCH003-CANDIDATE0, netbsd-1-3-PATCH003, netbsd-1-3-PATCH002, netbsd-1-3-PATCH001, netbsd-1-3-BETA, netbsd-1-3
Changes since 1.6: +4 -3 lines
Diff to previous 1.6 (colored)

Add local.h for local prototypes.
Fix namespace issues for strtoq and strtouq
Fix gcc warnings.
Fix RCSID's

Revision 1.6 / (download) - annotate - [select for diffs], Thu Dec 28 08:52:02 1995 UTC (28 years, 3 months ago) by thorpej
Branch: MAIN
CVS Tags: nsswitch, netbsd-1-2-base, netbsd-1-2-RELEASE, netbsd-1-2-PATCH001, netbsd-1-2-BETA, netbsd-1-2, ivory_soap2
Changes since 1.5: +7 -2 lines
Diff to previous 1.5 (colored)

New-style RCS ids.

Revision 1.5 / (download) - annotate - [select for diffs], Wed Jun 14 05:17:53 1995 UTC (28 years, 10 months ago) by jtc
Branch: MAIN
CVS Tags: netbsd-1-1-base, netbsd-1-1-RELEASE, netbsd-1-1-PATCH001, netbsd-1-1
Changes since 1.4: +3 -1 lines
Diff to previous 1.4 (colored)

define __atexit pointer

Revision 1.4 / (download) - annotate - [select for diffs], Tue Feb 28 01:46:28 1995 UTC (29 years, 1 month ago) by jtc
Branch: MAIN
Changes since 1.3: +1 -2 lines
Diff to previous 1.3 (colored)

remove unneeded "#include <stddef.h>"

Revision 1.3 / (download) - annotate - [select for diffs], Thu Aug 26 00:47:50 1993 UTC (30 years, 8 months ago) by jtc
Branch: MAIN
CVS Tags: netbsd-1-0-base, netbsd-1-0-RELEASE, netbsd-1-0-PATCH1, netbsd-1-0-PATCH06, netbsd-1-0-PATCH05, netbsd-1-0-PATCH04, netbsd-1-0-PATCH03, netbsd-1-0-PATCH02, netbsd-1-0-PATCH0, netbsd-1-0, ivory_soap
Changes since 1.2: +2 -2 lines
Diff to previous 1.2 (colored)

Declare rcsid strings so they are stored in text segment.

Revision 1.2 / (download) - annotate - [select for diffs], Sun Aug 1 18:37:17 1993 UTC (30 years, 8 months ago) by mycroft
Branch: MAIN
Changes since 1.1: +2 -1 lines
Diff to previous 1.1 (colored)

Add RCS identifiers.

Revision 1.1 / (download) - annotate - [select for diffs], Sun Mar 21 09:45:37 1993 UTC (31 years, 1 month ago) by cgd
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>