|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | This results in no functional change, aside from fixing a data
corruption bug on LP64 platforms.  The code here could still use a
significant amount of cleanup.
PR:		56502
Submitted by:	hrs (earlier version)
Notes:
    svn path=/head/; revision=124738 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | รณ++ ABI document at http://www.codesourcery.com/cxx-abi/abi.html#dso-dtor
The ABI was initially defined for ia64, but GCC3 and Intel compilers
have adopted it on other platforms.
This is the patch from PR bin/59552 with a number of changes by
me.
PR:		bin/59552
Submitted by:	Bradley T Hughes (bhughes at trolltech dot com)
Notes:
    svn path=/head/; revision=123674 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | C++ ABI document at http://www.codesourcery.com/cxx-abi/abi.html#dso-dtor
The ABI was initially defined for ia64, but GCC3 and Intel compilers
have adopted it on other platforms.
This is the patch from PR bin/59552 with a number of changes by
me.
PR:		bin/59552
Submitted by:	Bradley T Hughes (bhughes at trolltech dot com)
Notes:
    svn path=/head/; revision=123673 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | initialization overhead, there's a problem in that we never call
imalloc() and thus malloc_init() for zero-sized allocations. As a
result, malloc(0) returns NULL when it's the first or only malloc in
the program. Any non-zero allocation will initialize the malloc code
with the side-effect that subsequent zero-sized allocations return a
non-NULL pointer. This is because the pointer we return for zero-
sized allocations is calculated from malloc_pageshift, which needs
to be initialized at runtime on ia64.
The result of the inconsistent behaviour described above is that
configure scripts failed the test for a GNU compatible malloc. This
resulted in a lot of broken ports.
Other, even simpler, solutions were possible as well:
1.  initialize malloc_pageshift with some non-zero value (say 13 for
    8KB pages) and keep the runtime adjustment.
2.  Stop using malloc_pageshift to calculate ZEROSIZEPTR.
Removal of the runtime adjustment was chosen because then ia64 is the
same as any other platform. It is not to say that using a page size
obtained at runtime is bad per se. It's that there's currently a high
level of gratuity for its existence and the moment it causes problems
is the moment you need to get rid of it. Hence, it's not unthinkable
that this commit is (partially) reverted some time in the future when
we do have a good reason for it and a good way to achieve it.
Approved by: re@ (rwatson)
Reported by: kris (portmgr@) -- may the ports be with you
Notes:
    svn path=/head/; revision=123031 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | sorting strings with common prefixes by noting
when all the strings land in just one bin.
Testing shows significant speedups (on the order of
30%) on strings with common prefixes and no slowdowns on any
of my test cases.
Submitted by: Markus Bjartveit Kruger <markusk@pvv.ntnu.no>
PR: 58860
Approved by: gordon (mentor)
Notes:
    svn path=/head/; revision=122458 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | it around an application's fork() call.  Our new thread libraries
(libthr, libpthread) can now have threads running while another
thread calls fork().  In this case, it is possible for malloc
to be left in an inconsistent state in the child.  Our thread
libraries, libpthread in particular, need to use malloc internally
after a fork (in the child).
Reviewed by:	davidxu
Notes:
    svn path=/head/; revision=122069 | 
| | 
| 
| 
| 
| 
| 
| | lacking the issetugid() and utrace() syscalls.
Notes:
    svn path=/head/; revision=121667 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | send strhash(3) off to sleep with the fishes.  Nothing in our tree uses it.
It has no documentation.  It is nonstandard and in spite of the filename
strhash.c and strhash.h, it lives in application namespace by providing
compulsory global symbols hash_create()/hash_destroy()/hash_search()/
hash_traverse()/hash_purge()/hash_stats() regardless of whether you
#include <strhash.h> or not.  If it turns out that there is a huge
application for this after all, I can repocopy it somewhere safer and
we can revive it elsewhere.  But please, not in libc!
Notes:
    svn path=/head/; revision=121639 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=121518 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=121500 | 
| | 
| 
| 
| 
| 
| 
| | an email address.  Spell McIlroy correctly.
Notes:
    svn path=/head/; revision=120598 | 
| | 
| 
| 
| 
| 
| 
| | Pull 'A' evilness for realloc(3) from OpenBSD.
Notes:
    svn path=/head/; revision=120524 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=120520 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=120054 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=119964 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=119893 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | libkse. Tested under libc_r, libkse, libthr.
Reviewed by: deischen
Notes:
    svn path=/head/; revision=118988 | 
| | 
| 
| 
| 
| 
| 
| | Reorganize historic #ifdef section
Notes:
    svn path=/head/; revision=118731 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=118248 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=118153 | 
| | 
| 
| 
| 
| 
| 
| | internal string in the macro context.
Notes:
    svn path=/head/; revision=117007 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=116843 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | Submitted by:	ru
Add history.
Notes:
    svn path=/head/; revision=116834 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=115631 | 
| | 
| 
| 
| 
| 
| 
| | Submitted by:	Nadav Eiron <nadav@TheEirons.org>
Notes:
    svn path=/head/; revision=115610 | 
| | 
| 
| 
| 
| 
| 
| | MFC after:	3 days
Notes:
    svn path=/head/; revision=115571 | 
| | 
| 
| 
| 
| 
| 
| 
| | PR:		52686
MFC after:	1 day
Notes:
    svn path=/head/; revision=115362 | 
| | 
| 
| 
| 
| 
| 
| | Approved by:	re (blanket)
Notes:
    svn path=/head/; revision=115225 | 
| | 
| 
| 
| 
| 
| 
| | vocally objected to this safety belt.
Notes:
    svn path=/head/; revision=114443 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=114321 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | technique) so that we don't wind up calling into an application's
version if the application defines them.
Inspired by:	qpopper's interfering and buggy version of strlcpy
Notes:
    svn path=/head/; revision=114256 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=113105 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=112823 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=112820 | 
| | 
| 
| 
| 
| 
| 
| | Requested by:		bde
Notes:
    svn path=/head/; revision=112743 | 
| | 
| 
| 
| 
| 
| 
| | Submitted by:	Constantin S. Svintsoff <kostik (at) iclub.nsu.ru>
Notes:
    svn path=/head/; revision=112726 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=112427 | 
| | 
| 
| 
| 
| 
| 
| 
| | explode, so nix the old strtod() / dtoa().  This change is part
of the gdtoa patches reviewed on standards@.
Notes:
    svn path=/head/; revision=112257 | 
| | 
| 
| 
| 
| 
| 
| | Reviewed by:	bde (briefly), mike (mentor), obrien
Notes:
    svn path=/head/; revision=112164 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | package, a more recent, generalized set of routines.  Among the
changes:
- Declare strtof() and strtold() in stdlib.h.
- Add glue to libc to support these routines for all kinds
  of ``long double''.
- Update printf() to reflect the fact that dtoa works slightly
  differently now.
As soon as I see that nothing has blown up, I will kill
src/lib/libc/stdlib/strtod.c.  Soon printf() will be able
to use the new routines to output long doubles without loss
of precision, but numerous bugs in the existing code must
be addressed first.
Reviewed by:	bde (briefly), mike (mentor), obrien
Notes:
    svn path=/head/; revision=112163 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | hsearch(.., ENTER). Make the example reflect this.
PR:		49951
Submitted by:	Peter Jeremy <peterjeremy@optushome.com.au>
Notes:
    svn path=/head/; revision=112143 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=111503 | 
| | 
| 
| 
| 
| 
| 
| 
| | Submitted by:	imp
Reviewed by:	silence on -audit
Notes:
    svn path=/head/; revision=111261 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | seed->first value correlation. It breaks rand_r()... Other possible methods
like shuffling inside aray will breaks rand_r() too, because it assumes
only one word state, i.e. nothing extra can be added after seed assignment
in srand().
BTW, for old formulae seed->first value correlation is not so monotonically
increased as with other Linear Congruential Generators of this type only
becase arithmetic overflow happens. But overflow affects distribution
and lower bits very badly, as many articles says, such type of overflow
not improves PRNG.
So, monotonically increased seed->first value correlation problem remains...
Notes:
    svn path=/head/; revision=111026 | 
| | 
| 
| 
| 
| 
| 
| | after srand(1)
Notes:
    svn path=/head/; revision=110421 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | to remove part of seed -> 1st value correlation. Correlation still remains
because of algorithm limits. Note that old algorithm have even stronger
correlation, especially in the lower bits area, but not eye-visible, as
current one.
Notes:
    svn path=/head/; revision=110321 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | at 0 as designed. Its BSD adaptation tries to fight it by mapping 0 to
2147483647 after calculation, but this method not works since 2147483647
seed returns to 0 again on the next interation. Instead of after calculation
mapping, map 0 to another value _before_ calculation, so it never stucks.
Notes:
    svn path=/head/; revision=110280 | 
| | 
| 
| 
| 
| 
| 
| | may store less amount bits for seed, than available. Fix it.
Notes:
    svn path=/head/; revision=110236 | 
| | 
| 
| 
| 
| 
| 
| | result in a segfault.  Instead just return NULL.
Notes:
    svn path=/head/; revision=110103 | 
| | 
| 
| 
| | Notes:
    svn path=/head/; revision=109803 |