Commit Graph

533 Commits

Author SHA1 Message Date
rmind
1c7eae5598 Use size_t to avoid overflow when sorting large arrays. While here, ANSIfy.
Obtained from FreeBSD (das@).
2008-03-11 18:04:59 +00:00
ad
91224074af Redo the CPU-based arena selection slightly differently. With the latest
libpthread and kernel, this mysteriously works without a problem.
2008-03-08 13:17:13 +00:00
christos
908cf676a4 mention RANDOM_MAX 2008-02-28 16:16:35 +00:00
xtraeme
c3e906d7a0 There's no need to do the mutex_trylock dance anymore in __cxa_finalize(),
just using mutex_lock() is enough.
2008-02-25 14:35:54 +00:00
xtraeme
1b5143aa5d Add a comment for __libc_atexit_init() missed in previous that was
available in the original patch.
2008-02-25 14:15:10 +00:00
xtraeme
95157b046e 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@.
2008-02-25 14:06:13 +00:00
christos
ed13fe5855 fix posix_memalign; we are not going to support alignments > pagesize in
this implementation.
2008-02-03 22:56:53 +00:00
macallan
f53566168d make this compile again 2007-12-12 17:56:10 +00:00
simonb
179bda4711 Fix twalk()s 3rd argument name so that it matches rest of manpage and
the source code.
2007-12-07 07:33:13 +00:00
christos
b831a8ada2 move decls for _malloc_{pre,post}fork() to extern.h 2007-12-04 17:45:07 +00:00
christos
86ef91b80e - use a non localized version of strerror_r.
- kill localized declarations and let namespace.h do its work.
2007-12-04 17:43:51 +00:00
ad
8b96cb8a97 Back out the per-cpu arena changes. With this, ld.so magically stops
loading libc/libpthread twice -- which does not make sense, because it
has its own private malloc().
2007-12-01 22:44:44 +00:00
dsl
b3dec55727 Fix the other half of the 'store int as a thread specific pointer'/ 2007-11-30 17:44:38 +00:00
christos
e09a2e99e8 converting a pointer to unsigned is bad; use uintptr_t. 2007-11-30 17:09:22 +00:00
ad
49dcd767c3 Make the allocation arenas per-CPU in the most optimistic case, but
continue to 'stripe' by thread in case of contention.
2007-11-29 18:46:13 +00:00
christos
f6cecc05cf Sync phk malloc.c with the latest one from FreeBSD. This gives us the
same api as jemalloc by:

    - adding posix_memalign()
    - moving calloc in the same file
    - renaming malloc_options -> _malloc_options
2007-11-28 21:55:14 +00:00
ad
95182011ed Enable posix_memalign(). 2007-11-19 14:48:41 +00:00
christos
0405bf4cb9 always compile getopt_long. some ifdef reduction. more to come. 2007-11-09 03:29:20 +00:00
christos
b3b90d7485 Revert previous. This mess of ifdefs needs to be killed. 2007-11-06 22:08:51 +00:00
christos
9df03145fa move the test to replace getopt higher up, before we need to include anything. 2007-11-06 19:13:16 +00:00
skrll
29353f93e2 Build a local copy of exit that doesn't call __cxa_finalize. It's not
needed and drags in a lot of libc via free.
2007-10-30 17:19:59 +00:00
reed
b72da12b34 Add HISTORY: The strtof() and strtold() functions appeared in NetBSD
4.0.
2007-10-24 13:42:10 +00:00
simonb
46de085339 Revert the CSE parts of the previous change. "run" is calculated with
a different value for "pageind" each time through the loop, so we can't
precalculate it.

Fixes awk core dump issues on powerpc 405.
2007-10-22 04:16:48 +00:00
christos
8de47c09e3 - do some CSE.
- pass lint
2007-10-19 19:28:57 +00:00
yamt
b79fded28d use mremap for huge -> huge realloc.
fix PR/31425 (Nicolas Joly) and possibly PR/36175 (Brian de Alwis).
2007-10-16 15:12:16 +00:00
yamt
89aa62f9b2 we don't have reallocf. 2007-10-15 11:18:44 +00:00
yamt
687cd24ebe make lint happy. 2007-10-15 10:30:56 +00:00
yamt
1277f9b0a0 malloc_print_stats: print huge_allocated correctly. it's already in bytes. 2007-10-15 10:28:10 +00:00
yamt
14bfffc9db use MAP_ALIGNED. 2007-10-15 00:05:00 +00:00
ad
3465d8db6f Add defs for hppa. From he@. 2007-10-09 00:59:52 +00:00
he
7ed9cc8edd On sparc64, both __sparc__ and __sparc64__ is defined. Avoid redefinition
of size constants for sparc64.

This code still produces many, many lint warnings due to "may loose accuracy"
when mixing long/int, and also warnings related to <<.
2007-10-07 21:45:18 +00:00
ad
81e619b9a4 Update for jemalloc. 2007-10-06 01:09:48 +00:00
ad
9b64888c5d Use jemalloc as the default allocator unless USE_JEMALLOC=no. 2007-10-06 01:09:07 +00:00
ad
e7a9e46b7e Port to NetBSD. Note: posix_memalign() is here, but it's not exported
via the headers yet.
2007-10-05 23:42:23 +00:00
ad
8a475bcba1 Pull in jemalloc from FreeBSD:
FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.147 2007/06/15 22:00:16 jasone Exp
2007-10-05 23:39:58 +00:00
kristerw
3a6ef3e3c1 Keep track of atexit functions that are added while processing
atexit functions, to ensure that the new functions will be called.
2007-08-08 01:05:34 +00:00
kristerw
af220472c9 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;
   }
2007-08-08 00:51:18 +00:00
wiz
e3d3393d01 Add xref to shquote(3), suggested by joerg. Bump date. 2007-08-02 23:45:10 +00:00
ginsbach
15b661abe9 Fix several end cases:
o If a long option looks like an ambiguous abbreviation of two or more long
  options, but all the possible interpretations would return the same
  value, then just return that value without complaining that it's
  ambiguous.

o If a long option could be interpreted either as an exact match for one
  long option, or as an abbreviation for one or more other long options,
  then treat it as the exact match.

These changes align NetBSD's getopt_long(3) with the current behavior of
GNU getopt_long(3), the de facto standard, and FreeBSD's getopt_long(3).
2007-07-05 16:05:40 +00:00
ginsbach
a3ae2738c9 Document that getopt_long(3) can and will accept unique abbreviated long
option names.  This feature has been present since getopt_long(3) was first
released in NetBSD 1.5.  This is also standard GNU getopt_long(3) behavior.
2007-07-02 17:56:17 +00:00
lukem
2d50a59010 Use IEC 60027-2 prefixes for 2^n based prefixes. 2007-04-12 06:50:39 +00:00
christos
cdcb070b9c remove bogus (void)&var; From Anon Ymous 2006-12-18 00:40:14 +00:00
elad
8e60b8367c PR/34984: Denis Lagno: minor problems with tsearch.3 2006-11-26 13:10:54 +00:00
christos
3d98aa3f4b fix spelling of accidentally; from Zapher 2006-11-24 19:37:02 +00:00
elad
25c47f2333 PR/34602: sushant: Bug in malloc implementation contains dead code in
free_pages()

Applied patch from Mindaugas <unex at linija org> (in #NetBSD-code), thanks
2006-10-08 16:25:15 +00:00
thorpej
82fd1ebbaa - Move strtoll.c and strtoull.c from libc/stdlib to common/libc/stdlib.
- Add strtoll.c and strtoull.c to libkern.
2006-10-08 03:14:55 +00:00
elad
a35b07a2ca Correctly recover signal state if failed trying to set it.
Patch from David A. Holland in #NetBSD-code, thanks!
2006-10-07 22:16:19 +00:00
wiz
ec15e07b4a Switch from 4-clause to 2-clause BSD license.
Ok dillo@, board@.
2006-10-04 17:29:42 +00:00
mjl
d072c175eb s,floride,fluoride, 2006-06-28 06:25:15 +00:00
wiz
20862d8c44 Bump date for previous. 2006-04-24 21:54:37 +00:00
liamjfoy
14a07a0706 - add a missing ;
- use 'size' instead of 'nsize', makes more sense

ok christos@
2006-04-24 20:46:23 +00:00
thorpej
7d3d66c90e Move strtoumax.c from libc/stdlib to common/libc/stdlib and include it
in libkern.  Required for new code coming soon.
2006-04-22 15:33:33 +00:00
drochner
273bf6508d correct multiplicand in pseudorandom generation 2006-03-31 11:43:54 +00:00
drochner
04293de9bb switch byteorder of seed to match previous (and documented) behaviour 2006-03-31 11:42:31 +00:00
kleink
c66ffccfbe Xref rnd(4). 2006-03-24 16:14:42 +00:00
drochner
f81322cf18 build erand48_ieee754.c on everything but vax 2006-03-22 22:03:58 +00:00
drochner
7a2af2aba0 Rewrite erand48() to put the random bits into the mantissa by simple
bitshifts instead of calling ldexp() three times.
(for ieee doubles only -- vax can't use it, so the old version
needs to stay around)
This removes the dependency on ldexp() which also didn't participate in
the usual __RENAME game, thus lead to confusion.
In addition, this version is almost 3 times as fast for me.
2006-03-22 21:06:03 +00:00
drochner
e89a43e9fd <math.h> is just needed for the ldexp() call in erand48() -
remove unnecessary dependency
2006-03-22 20:52:16 +00:00
christos
3040914cf6 Coverity CID 1560: Don't leak memory when multiple currency symbols are present 2006-03-19 01:50:49 +00:00
christos
7ac9949871 Coverity CID 2528: Don't delete the node we are about to return. 2006-03-19 01:12:08 +00:00
wiz
929e506267 Use more macros. 2006-03-15 20:08:24 +00:00
kleink
bc89c06cbf Add strtof(3) and strtold(3); welcome libc 12.137. 2006-03-15 17:35:17 +00:00
wiz
5d1e8b2745 Fix some typos. 2006-02-25 02:28:55 +00:00
kleink
3cd8501c1e Drop in gdtoa as a replacement for dtoa, strtod() from stdlib/strtod.c. 2006-01-25 15:43:01 +00:00
christos
6eaa70365b Kill _Exit; breaks build on cygwin and this implementation "is not exactly
equivalent to calling _exit".
2006-01-20 22:02:07 +00:00
perry
46359204cf __inline__ -> inline 2005-12-24 21:42:02 +00:00
perry
4e11af46bc Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete. 2005-12-24 21:11:15 +00:00
christos
e5548b402a Use reach-over sources from common/lib/libc 2005-12-20 19:31:47 +00:00
christos
bea4991aaa Older gcc does not support #ifdef inside macro expansion. 2005-12-04 17:57:25 +00:00
yamt
e301b762a1 redo the previous; constify rather than making a string writable. 2005-12-02 14:19:43 +00:00
yamt
a6a060b04b note that "argv" is not really const. 2005-12-02 14:11:01 +00:00
yamt
9de32b7fa1 don't make internal functions pretend to take a const argument. 2005-12-02 14:08:51 +00:00
christos
03256c6e55 WARNS=4 2005-11-29 03:11:58 +00:00
wiz
72a37764e0 Punctuation nits; grammar fix. 2005-09-26 10:54:46 +00:00
christos
cc85a7cfd9 add getenv_r and ttyname_r 2005-09-25 20:08:01 +00:00
christos
5b84b3983f compat core reorg. 2005-09-13 01:44:08 +00:00
christos
86741d79ab - Fix the remaining indr_references so that they define lint symbols.
- Add an internal symbol for strerror_r (thanks klaus for noticing)
- Remove internal __strerror
2005-07-30 15:21:20 +00:00
christos
fce61e5249 revert previous, my include files were out of day. 2005-07-16 17:32:09 +00:00
christos
b5626a3a22 Fix prototype inconsistency, discovered by lint2 fixes. 2005-07-16 17:15:46 +00:00
wiz
2c8c6850a4 Remove superfluous Pp, sort sections. 2005-07-12 08:28:42 +00:00
wiz
d2aabe58d4 Remove superfluous Pp. 2005-07-12 08:28:27 +00:00
drochner
e0d7e15c44 tolerate NULL pointers at some places 2005-07-06 17:17:15 +00:00
drochner
45ec6e4557 add some clarification, and refer to POSIX
partly borrowed from FreeBSD
2005-07-06 17:02:56 +00:00
drochner
64df4b988e fix for non-const lsearch() arg, also fix return values and the
description of the comparision function, and refer to POSIX
partly borrowed from FreeBSD
2005-07-06 16:57:28 +00:00
drochner
ecef4b3d3f The source array of lsearch() shouldn't be "const".
Being here, cleanup the const castaway stuff.
2005-07-06 15:47:15 +00:00
drochner
e866f2794b Move insque/remque/lsearch/lfind from libcompat to libc,
they are in XPG4-UNIX, XSH5.0, mentioned in SUSv3 etc.
Minimal update of the manpages. (more needed)
2005-07-06 14:43:24 +00:00
lukem
88c3eadbfa Add missing __RCSID() 2005-06-12 05:21:25 +00:00
christos
631ccd6107 Revert the previous patch. It is not worth it optimizing the code to avoid
compiler errors because it makes it gratutiously different.
2005-04-24 23:29:06 +00:00
christos
19139351d0 Simplify the code and avoid a compiler issue with -O6 on sparc64:
Error: Illegal operands: There are only 32 single precision f registers; [0-31]
2005-04-24 19:33:52 +00:00
wiz
9899f59159 Grammar fix. 2005-04-19 00:15:50 +00:00
wiz
7224809d57 Document index argument, and mention that long_options
needs to be terminated with a structure containing zeroes.
Slightly modified version of patch from PR 30002 by Kailash Sethuraman.
Bump date.
2005-04-18 10:56:33 +00:00
kleink
d6a0715a49 Due to their "inverse" treatment of the fraction's MSb, update NAN
conversion to construct a quiet NaN on hppa, mips, sh3, and sh5 as well.
Also, remove the portion constructing a ROP on vax; this is not required
by the standard, and in its consequences it is not an appropriate
substitute for a qNaN.
2005-04-15 22:46:21 +00:00
wiz
c2fd74dc8e Remove duplicate words; grammar fix. 2005-04-04 08:19:00 +00:00
wiz
11f7061e02 Drop trailing whitespace. 2005-04-04 08:14:49 +00:00
christos
ada3b096d0 Add FreeBSD's strfmon(3). From Rui Paulo. No bump this time. Take advantage
of the getpwent_r bump.
2005-04-03 20:09:29 +00:00
kleink
a6636f0f7b Avoid lint warning after previous. 2005-03-23 08:16:53 +00:00
kleink
98061f1fca * Add restrict qualifiers to tdelete() function arguments.
* Const-poison tfind()'s rootp argument, per SVID Issue 1 and later.
2005-03-22 20:13:42 +00:00
christos
1a940a96f9 remove extraneous `*' that caused a core-dump. 2005-02-17 21:22:25 +00:00
christos
3f899b0a98 do some manual CSE. 2005-02-17 19:58:21 +00:00
tron
f82977b51c Fix lint warning caused by last change. 2005-02-17 19:15:38 +00:00