Commit Graph

751 Commits

Author SHA1 Message Date
jruoho 19606f522d Collect abs(3), labs(3), llabs(3), and imaxabs(3) to a single small page. 2011-04-13 06:56:50 +00:00
jruoho 2ba8acef07 Fix another bug (no 'imaxint_t' type). 2011-04-13 06:41:11 +00:00
jruoho 5bbfa36d7b Fix obvious bug. 2011-04-13 06:35:48 +00:00
jruoho e1897fd6ba Fix xref; security(8) -> security(7). 2011-03-21 04:42:50 +00:00
joerg 5c3ccd6eba Pass down ELF Auxillary Vectors for static NetBSD binaries too.
Rename __libc_init to _libc_init and call it explicitly from CSU code.
This enforces the constructor run order for newly linked programs.
Keep it as constructor with run-once semantic for binary compatibility.
Implement dl_iterate_phdr for statically linked programs.

This material is based upon work partially supported by
The NetBSD Foundation under a contract with Joerg Sonnenberger.
2011-03-07 05:09:09 +00:00
njoly 51cca89d16 Switch from floating point to fixed point integer for run sizes maths.
From FreeBSD (part of revision 1.154).
2011-02-26 23:27:49 +00:00
jruoho 5c1bce6b00 Reference strsuftoll(3) and orders(7) with each other. 2010-12-14 13:00:34 +00:00
christos b77d89c7da ansify 2010-11-27 18:33:54 +00:00
tron 4a3a313897 Include "namespace.h" to get namespace protection. 2010-11-17 13:25:53 +00:00
tron d0e6f50de3 Implement mark & sweep garbage collection as suggested by Enami Tsugutomo
on "current-users" mailing list. Garbage collection is performed if:
1.) We previously allocated memory for the environment array which
    is no longer used because the application overwrote "environ".
2.) We find a non-NULL pointer in the allocated environment array after
    the end of the environment. This happens if the applications attempts
    to clear the environment with something like "environ[0] = NULL;".
2010-11-16 17:23:10 +00:00
enami 4f54ea7667 Fix typos in comment. 2010-11-16 03:02:20 +00:00
tron 2f85740ecc 1.) Rename internal function __findvar() to __findenvvar().
2.) Add a wrapper function __findenv() which implements the previous
    *internal* interface. It turns out that ld.elf_so(1) and pthread(3)
    both use it.

Stripping e.g. "LD_LIBRARY_PATH" from the environment while running
setuid binaries works again now.
2010-11-14 22:04:36 +00:00
tron 268c79e4cc Set errno to ENOENT if we reject the environment variable name in
getenv_r() instead of leaving it unchanged.
2010-11-14 20:37:02 +00:00
tron fbf4aa1699 Improve and simplify implementation of *env(3) functions:
- Use RB tree to keep track of memory allocated via setenv(3) as
  suggested by Enami Tsugutomo in private e-mail.
  This simplifies the code a lot as we no longer need to keep the size
  of "environ" in sync with an array of allocated environment variables.
  It also makes it possible to free environment variables in unsetenv(3)
  if something has changed the order of the "environ" array.
- Fix a bug in getenv(3) and getenv_r(3) which would return bogus
  results e.g. for " getenv("A=B") " if an environment variable "A"
  with value "B=C" exists.
- Clean up the internal functions:
  - Don't expose the read/write lock for the environment to other parts
    of "libc". Provide locking functions instead.
  - Use "bool" to report success or failure.
  - Use "ssize_t" or "size_t" instead of "int" for indexes.
  - Provide internal functions with simpler interfaces e.g. don't
    combine return values and reference arguments.
  - Don't copy "environ" into an allocated block unless we really need
    to grow it.

Code reviewed by Joerg Sonnenberger and Christos Zoulas, tested by
Joerg Sonnenberger and me. These changes also fix problems in
zsh 4.3.* and pam_ssh according to Joerg.
2010-11-14 18:11:42 +00:00
enami 5260b632e4 Clear all entries past the NULL while scrubing environ vector. 2010-11-10 02:40:08 +00:00
enami ef075363bd Indent using tab rather than four spaces. 2010-11-10 02:33:49 +00:00
christos ee29967bad scrub the whole array, not just the first n malloced entries. 2010-11-04 21:49:45 +00:00
christos 3954ad831d Handle the case where a program attempted to cleanup the environment by
setting *environ = NULL;
2010-11-03 15:01:07 +00:00
enami b447d18264 - Simplify the code
- Reword the comment.
2010-11-02 03:44:05 +00:00
enami ee9d44a7c1 Double the array only when really necessary. Otherwise memory will be
exhausted if user modifies the variable envrion itself repeatedly..
2010-11-01 02:41:27 +00:00
wiz 83306973da Improve wording after consultation with njoly. 2010-10-26 22:34:33 +00:00
njoly 5d63576039 Make putenv(3) fails with EINVAL for a null pointer, or for a string
that either miss or start with a `=' character.

Adjust man page and testcase accordingly.
2010-10-25 20:35:36 +00:00
tron 1dc4fb4ea1 Double the size of the allocate environment vector when we resize it.
This should speed up extending the environment via setenv(3).
2010-10-24 17:53:27 +00:00
njoly 4c968434a3 Make setenv(3) follow the standard, by rejecting invalid strings. It
now fails with EINVAL errno when variable is NULL, empty or contains
an `=' character; or value is NULL.

Adjust the man page accordingly, and exercize them in the existing
environment testcase.
2010-10-16 11:23:41 +00:00
enami 4a94dc0b8f Avoid unnecessary malloc(). Since __findenv() kindly treats
equal sign as an end of string, we can pass the string of
form "key=value" to lookup "key".
2010-10-05 02:23:38 +00:00
tron ae557324e5 Restore binary compatibility with applications which use putenv(3)
on constant strings (e.g. postdrop(1)):
- Don't write to the environment string passed to putenv(3).
- Don't overwrite the value of an existing environment string
  unless the memory was actually allocated by setenv(3).
2010-10-02 16:56:03 +00:00
tron c3bcf19cf7 Make sure that all extra elements of the environment vector are set
to NULL. This stop su(1) from crashing.
2010-10-02 10:51:07 +00:00
tron 12c10b36d2 Remember that we didn't malloc() memory for an environment variable
if it has been set via putenv(3).
2010-10-02 10:05:55 +00:00
wiz 732dd678dd Fix a typo, remove trailing whitespace. 2010-10-01 20:57:50 +00:00
christos 7acc3301d8 make putenv POSIX compliant. 2010-10-01 20:11:32 +00:00
tron 2445ce72d2 Be slightly more careful about freeing memory allocated for environment
variables: only free memory if the current value points to the same
memory area as the allocated block. This will prevent crashes if an
application changes the order of the environment array.

Unfortunately this is still not enough to stop zsh 4.2.* from crashing.
zsh 4.3.* works fine before and after this change.
2010-09-30 12:41:33 +00:00
enami be59ef257e If new length is exactly equals to the current length,
there is nothing to do.
2010-09-29 00:44:04 +00:00
enami 248290ef3a Don't put space before close paren. 2010-09-29 00:40:17 +00:00
christos 0588f13b3b be more conservative about allocing. 2010-09-25 19:31:51 +00:00
tron ed5e497e60 Remember the correct pointer which we will free later. 2010-09-25 19:10:37 +00:00
tron 1f5de17d4a Unlock the environment lock if __alocenv() fails. 2010-09-25 18:37:24 +00:00
tron 5cdca2e600 Remember memory used by allocated environment variables instead of
using a bitmap. This deals with the case where a variable is first
set via setenv(3) or putenv(3), then overwritten by changing
"environ" directory and afterwards overwritten with setenv(3) again.

This stops "zsh" from crashing under NetBSD-current.

Code reviewed by Christos Zoulas.
2010-09-25 18:11:40 +00:00
christos da3a4052e4 protect the __allocenv call with the mutex; from Enami 2010-09-24 14:34:44 +00:00
christos f6033a77ae Fix memory leaks; thanks Enami! 2010-09-24 14:31:15 +00:00
christos 7db74b9a82 Use a bit array to keep track of malloced environment entries so we can
free them.
2010-09-23 17:30:49 +00:00
christos e957123b85 PR/43899: Nicolas Joly: setenv(3)/unsetenv(3) memory leak.
Partial fix: Don't allocate a new string if the length is equal to the
old length, because presumably the old string was also nul terminated
so it has the extra byte needed.
The real fix is to keep an adjunct array of bits, one for each environment
variable and keep track if the entry was allocated or not so that we can
free it in unsetenv.
2010-09-23 16:02:41 +00:00
njoly abdcf63ade Add empty line in ERRORS section. 2010-09-23 12:49:31 +00:00
skrll 2a4732aadc Only do the __libc_init hack in libc, i.e. remove it from ld.elf_so.
This fixes hppa ld.elf_so by reducing the number of PLABELs required to
the number before the hack was applied.

Hi Joerg!
2010-09-09 10:19:31 +00:00
joerg e883e926df Ensure that initfini.c is referenced by exit.c. The start up code has to
reference the latter as a return of main() results in a call to exit(3),
so this ensures that the libc constructors are run for statically linked
programs. Fixes PR 37454.
2010-06-28 21:58:02 +00:00
jruoho 0e2d5f4d40 Use standard section headers. 2010-05-14 16:05:49 +00:00
wiz 6f1249aa8e Join %U. 2010-05-13 23:30:52 +00:00
jruoho c713a498a5 Note POSIX compliance. 2010-05-06 18:55:34 +00:00
jruoho 26a87898ae Fix previous commit by also moving the type of _malloc_options. In addition,
add a (commented) note that _malloc_message should be documented better.
2010-05-03 08:23:20 +00:00
jruoho 60d71be703 Move the '_malloc_options' variable from malloc(3) to jemalloc(3). 2010-05-03 08:11:57 +00:00
jruoho 49bb3cb02e Note the problems with SSP. 2010-05-03 06:11:38 +00:00
jruoho ef40c024f6 Move the examples to where they belong, in EXAMPLES. 2010-05-03 05:11:34 +00:00
jruoho 26e9ae259a Split the implementation details of malloc(3) to a separate jemalloc(3)
manual page. This way malloc(3) can follow the standard terse format used
elsewhere in the libc, while additional details can be added to jemalloc(3).

Note HISTORY and AUTHORS in jemalloc(3), and add some reading material to
SEE ALSO.
2010-05-03 05:01:53 +00:00
jruoho a80a543b80 Add more markup. 2010-05-03 03:47:51 +00:00
jruoho 280488d6bc Note that the return type sould arguably be intmax_t instead of long long. 2010-05-01 08:35:52 +00:00
jruoho 061351141b Remove the (incorrect) note about inconsistent return values. Name the exit
code as EXIT_FAILURE instead of integer 1.
2010-05-01 08:30:00 +00:00
jruoho 413ef23a32 Add more bugs. Namely, besides the return values that are confusing, no
function in a modern standard C library, exposed by <stdlib.h>, should be as
easy to (buffer) overflow as strsuftollx(3).

In addition, improvements to wording and markup.
2010-05-01 08:12:30 +00:00
jruoho 4519228649 Improvements to wording and markup.
In addition, list more bugs and caveats. Namely, the NetBSD implementation
(like the FreeBSD one where this was ported to) requires that the comparison
keys are allocated dynamically, and that hdestroy() will try to free(3) each
key. This obviously severely limits the portability, given that other
implementations (for example, the Linux one) make no such assumptions. Both
approaches are legitimate, and thus the real bug is in the ambiguity of the
standard.
2010-05-01 06:18:03 +00:00
jruoho a293ac8fcc Rewrite the HISTORY section. 2010-04-30 10:24:02 +00:00
jruoho eecb0b5e2c Put the period outside the quotation marks. 2010-04-30 10:09:23 +00:00
jruoho cb375ee477 Add STANDARDS and CAVEATS. The latter notes the ambiguity of tdelete() when
deleting the root node.
2010-04-30 10:06:52 +00:00
jruoho 42e4725801 Also: in the example EOVERFLOW is probably better than ENOMEM. 2010-04-30 07:16:35 +00:00
jruoho 67e69a6bf8 As err(3) instructs, use EXIT_FAILURE in the example. 2010-04-30 07:14:15 +00:00
jruoho 75d4d306c5 Steal the "malloc() vs. calloc()" -idiom from the OpenBSD's malloc(3).
While it may be debated how useful this is, good idiomatic usage examples
are exactly the kind of thing one would hope to see more in manual pages.
2010-04-30 07:00:51 +00:00
joerg 1c3412fa2f Use .In for header files instead of .Ar Pa and variations. 2010-03-22 19:30:53 +00:00
jruoho ab524958e3 Emphasize imaxint_t. 2010-03-21 13:39:51 +00:00
joerg ec66a10c91 Namespace protection for mi_vector_hash. 2010-03-19 18:11:30 +00:00
enami 3df6d33667 Fix race condition on reallocation of huge category.
We need to remove the old region before mremap() since if it relesae the
old region, other thread may map it for the same huge category allocation
and insert it to the tree before we acquire a lock after mremap().

Fixes PR/42876.
2010-03-04 22:48:31 +00:00
roy 7ffeaa6526 Include nbtool_config.h as we need to be part of the terminfo toolchain. 2010-02-04 10:27:08 +00:00
pooka 5f6578a865 tyop de fix 2009-12-02 12:50:27 +00:00
pooka 304d27696e Document that strtouq can return UQUAD_MAX. 2009-12-02 12:45:35 +00:00
enami 8f4cd2bee8 Retain old variables when failed to allocate memory. 2009-12-02 09:34:51 +00:00
wiz 567e675c3f Mention that it is included in IEEE Std 1003.1-2008. 2009-11-17 15:02:08 +00:00
wiz 2e7202c574 Mention that getsubopt is an XSI extension for IEEE Std 1003.1, 2004 Edition. Bump date. 2009-11-17 14:52:21 +00:00
snj 550147bd6a Remove 3rd and 4th clauses in christos' license. OK christos. 2009-10-21 01:07:44 +00:00
joerg be403b3398 Fix header to include. From Kristaps Dzonsons. 2009-10-19 22:38:56 +00:00
pooka 50efcfca57 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.
2009-10-08 16:33:45 +00:00
dsl 602976fff6 Ansify functions and remove __P/ 2009-09-05 08:53:06 +00:00
dsl 11bcd8ad6a The 'table' of character weights is allowed to be NULL.
The SETUP define sorts it out (in the slowest and nastiest possible way!)
Broken by rev 1.12 almost 10 years ago!
2009-08-21 20:49:50 +00:00
dsl 10ad5ffa71 Add the 'abs', 'div' and 'erand48' sources to stdlib/Makefile.inc.
Change the arch files only include the .S files.
This adds imaxdiv() to some archs where it was missing.
2009-07-31 20:39:59 +00:00
wiz fa52b0ad23 Bump date for previous. 2009-07-23 13:37:34 +00:00
dholland 3cfdfcef43 Clarify the description of the errno behavior, based on the recent
thread in tech-userlevel.
2009-07-23 02:54:27 +00:00
joerg ed9dacacc0 Add HISTORY. 2009-07-21 12:40:52 +00:00
joerg d6e219476b Add a fast, platform independent hash function to libc.
The algorithm used is the Jenkins hash.  The name (mi_vector_hash)
reflects the nature of the hash function.
Add glue for libc ATF tests and include a test case to make sure that
(mis)alignment and endianess are handled correctly.

Bump libc minor to 169.
2009-07-20 17:03:36 +00:00
pooka c6181c7b2f Re-add explanation of how to correctly use realloc. 2009-07-20 12:10:03 +00:00
yamt 99122f39e6 qsort: remove the "switch to insertion sort" optimization because it
causes catastrophic performance for certain inputs.
2009-06-01 06:37:40 +00:00
wiz f6b43a0c43 Markup improvements. No need to mark up numbers as defined values, math
did the definition for us ages ago. Make HTML-ready.
2009-05-21 09:13:35 +00:00
christos fd67370208 mention that these functions return 0 and set errno to ERANGE on invalid base. 2009-05-20 22:01:34 +00:00
wiz 5dd21e58d5 Grammar fix. 2009-05-18 09:00:02 +00:00
wiz 7d88f2f54f Revert parts of v1.25 (jemalloc):
Re-add RCS Id, remove superfluous .Pp, join line, comment out limits(1) xref.
2009-05-13 23:02:11 +00:00
joerg 71c479831e Fix markup. 2009-04-11 16:13:49 +00:00
joerg cc420b6c04 ANSIfy. Remove conditionals around __RCSID. 2009-03-20 14:05:54 +00:00
joerg cc5989d71d ANSIfy. Remove conditional macros around __RCSID. 2009-03-20 13:56:57 +00:00
joerg 9df66b68e0 Explicitly mark : as literal, use Pq. 2009-03-12 12:51:29 +00:00
joerg edc0d6c151 Fix prologue. 2009-03-10 23:37:01 +00:00
lukem 9d1671f467 Fix sign-compare issues 2009-02-12 03:34:33 +00:00
lukem 19b046886f fix sign-compare issue 2009-02-12 03:12:36 +00:00
lukem 2360d0845a Apply some of FreeBSD libc/stdlib/malloc.c rev 1.162
to fix sign-compare issues.
2009-02-12 03:11:01 +00:00
lukem 957ba389e8 sign-compare fix 2009-01-30 23:46:03 +00:00
lukem 8a09e86085 sign-compare fix 2009-01-30 23:35:35 +00:00
ad c984f259af Make threaded programs die correctly:
kill(getpid(), SIGFOO) -> raise(SIGFOO)
2009-01-30 23:21:02 +00:00
christos 461a86f9bd merge christos-time_t 2009-01-11 02:45:45 +00:00
ad c6555ead19 Our qsort() is inappropriate for kernel use because it makes recursive
calls. Replace it with a kheapsort() function in kernel. Pointed out
by tron@.
2008-11-16 16:15:58 +00:00
ad e5c4df967a Make qsort() available in libkern. 2008-11-16 15:01:26 +00:00
christos 035a506da3 use the right variable in memcpy. 2008-11-01 00:54:47 +00:00
christos e34e014482 make __findenv return the offset for the new entry to be inserted when
the string is not found, to avoid an additional scan of the environ array
in setenv.
2008-10-31 17:46:04 +00:00
mrg 2f0d0e12bf define and use LIBCDIR in terms of .CURDIR. fixes compat/lib/libc build. 2008-10-26 07:43:07 +00:00
joerg 3ae583451f Prepare use of strtoull, strtoumax and strtoimax in tools/compat by
including nbtool_config.h.
2008-09-10 18:08:58 +00:00
christos 40d6ddde20 system(NULL) should return if the command interpreter is there or not.
Andy Shevchenko
2008-08-27 06:45:02 +00:00
drochner 14744ddade fix range of strtouq(), from Henning Petersen per PR lib/39399 2008-08-26 12:21:24 +00:00
joerg 245e086321 Unify the implementation of strto{l,ul,ll,ull,imax,umax,q,uq} into one
version for signed and one version for unsigned data types.

Add a check for supported bases and set errno (userland) or panic
(kernel, libsa) otherwise.

Make strto{ll,ull,imax,umax} normal symbols and just keep the underscore
versions as strong alias.

Obtained from DragonFly, based on the wide char version from Citrus.
Reviewed by christos@
2008-08-20 12:42:26 +00:00
matt cac8e44915 Add C99 functions imaxabs and imaxdiv. 2008-08-04 21:29:27 +00:00
lukem 8897ce05a0 Remove the \n and tabs from the __COPYRIGHT() strings.
Tweak to use a consistent format.
2008-07-21 12:05:43 +00:00
ad 380c3da007 Split choose_arena() back out into inline and non-inline portions. 2008-06-23 10:46:25 +00:00
ad 88261d4ead Check to see if MALLOC_OPTIONS is actually set in the environment before
doing issetugid().
2008-06-05 00:16:34 +00:00
martin 11a6dbe728 Convert TNF licenses to new 2 clause variant 2008-04-30 13:10:46 +00:00
martin ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
christos 23b2e3cd80 Fix another integer overflow issue discovered by Maksymilian Arciemowicz.
On top of this, limit the range of getnumber to 0x00ffffff to make sure
that adding two of them does not cause an integer overflow.
2008-03-27 21:50:30 +00:00
christos 00f5c7fe8d Avoid integer overflow; reported by Maksymilian Arciemowicz. 2008-03-18 18:16:08 +00:00
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