1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00
freebsd/lib
John Polstra d5489b0d8f Check the count in the first word of __CTOR_LIST__ before executing
the loop that invokes the static constructors.  That makes it safe
to link c++rt0.o into any shared library, even one that does not
have any static constructors.  Formerly, doing that would cause a
bus error.  If the library has no static constructors, __CTOR_LIST__
comes out as a simple 4-byte COMMON region, and it does not have
the usual NULL word that terminates the list of constructors.  This
caused the old code to "call" a garbage address via the non-existent
entry __CTOR_LIST__[1].

The analogous code that invokes the static destructors was already safe.

This change is fully backward-compatible.

Reviewed by:	dfr@render.com (Doug Rabson)
1996-01-15 17:53:25 +00:00
..
csu/i386 Check the count in the first word of __CTOR_LIST__ before executing 1996-01-15 17:53:25 +00:00
libc Return pointer to new hash node when search inserts it (e.g. there 1996-01-13 14:25:04 +00:00
libcom_err
libcompat This commit was generated by cvs2svn to compensate for changes in r13122, 1995-12-30 19:02:48 +00:00
libcrypt
libcurses
libdisk Update the -current sources from the 2.1 branch. 1995-12-07 10:34:59 +00:00
libedit This commit was generated by cvs2svn to compensate for changes in r13122, 1995-12-30 19:02:48 +00:00
libf2c Update to the 1995/09/20 version. Previous version was 1993/12/17. 1995-09-28 20:49:15 +00:00
libF77 recording cvs-1.6 file death 1995-12-30 19:02:48 +00:00
libforms recording cvs-1.6 file death 1995-12-30 19:02:48 +00:00
libI77 Update to the 1995/09/20 version. Previous version was 1993/12/17. 1995-09-28 20:49:15 +00:00
libipx Reviewed by: julian and jhay@mikom.csir.co.za 1995-10-26 20:31:59 +00:00
libkvm Extract the login name when doing a ps on a dead kernel. 1996-01-01 17:08:17 +00:00
libm
libmd Add a structure definition to the MD* Contexts, so that cvs can use 1995-12-11 02:18:22 +00:00
libmytinfo recording cvs-1.6 file death 1995-12-30 19:02:48 +00:00
libncurses recording cvs-1.6 file death 1995-12-30 19:02:48 +00:00
libpam/modules
libpcap
libresolv
librpcsvc
libscsi
libskey recording cvs-1.6 file death 1995-12-30 19:02:48 +00:00
libss
libtelnet This commit was generated by cvs2svn to compensate for changes in r13122, 1995-12-30 19:02:48 +00:00
libtermcap
libutil Bump libutil revision after recent addition of setproctitle(). 1996-01-01 08:27:41 +00:00
libxpg4 Add more stuff moved out from XPG3 1995-11-03 09:03:00 +00:00
liby
msun Undo the the changes in the previous revision (MANSRC now works right again). 1995-10-22 19:16:01 +00:00
ncurses/ncurses
Makefile Removed reference to missing libmp in a comment. We have GNU MP now. 1995-11-12 19:32:24 +00:00
Makefile.inc