Commit Graph

1426 Commits

Author SHA1 Message Date
christos
2d8f83e77b Fix various vis/unvis issues:
- no need for all the weak symbols
- define a new _VIS_END flag for UNVIS_END so that there are no collisions
  between and vis and unvis flags.
- add bound versions of the vis and unvis functions that take the length of
  the destination buffer. Unlike the OpenBSD ones they return -1 or NULL if
  the buffer is not large enough, instead of silently truncating.
2011-03-12 19:52:45 +00:00
joerg
4bf46019d9 Redo the SSP wrappers to be transparent on the resulting object files.
This works by having the inline wrapper calling a second function which
uses renaming to output the correct function name.
2011-02-21 00:40:07 +00:00
christos
c22a900646 handle ssp 2011-02-16 19:29:35 +00:00
christos
e60f59b973 remquo{,f} from FreeBSD via Stathis Kamperis 2011-02-06 00:44:08 +00:00
christos
a52c04784a add arc4random_{buf,uniform}, from OpenBSD. 2011-02-04 22:07:07 +00:00
christos
f913257c92 new error. 2011-01-31 04:49:46 +00:00
christos
17b8402a39 fenv support for sparc64 from Stathis Kamperis 2011-01-31 00:19:33 +00:00
christos
e6a9e964d2 provide a way to override the weak name. 2011-01-26 18:08:00 +00:00
christos
93fcf9c9a9 fix readlink prototype. 2011-01-26 18:07:44 +00:00
christos
3203d4e972 proved an __ssp_check macro. 2011-01-25 19:13:44 +00:00
christos
2d76e866a6 Use the _sys alias instead of the _ alias as the way to access the baseline
syscall.
2011-01-20 02:58:17 +00:00
christos
416c220c02 Re-do ssp hijacking by defining inline functions and using the weak libc
symbols to do the indirection for unistd.h instead of #define tricks.
Fixes compilation for things that define struct { ssize_t read(int fd, ...); }.
2011-01-19 19:21:29 +00:00
pooka
3bf7a94975 practice alphabet: "g before i except never" etc. 2010-12-29 15:53:57 +00:00
jmcneill
b8d8357d86 add /dev/video, /dev/video0 2010-12-25 16:49:08 +00:00
skrll
f1d73a2c94 Add support for DF_1_BIND_NOW, DF_1_NODELETE and DF_1_NOOPEN marked
objects, and the RTLD_NODELETE and RTLD_NOLOAD flags to dlopen(3).

Mark libpthread as DF_1_NOOPEN and use it to test the functionality.

Somewhat taken from FreeBSD.

Fixes PR 42029.

OK from christos and joerg.
2010-12-24 12:41:42 +00:00
jruoho
5b557140cd Use __constfunc(3) instead of __attribute__((const)) directly. 2010-12-22 19:47:56 +00:00
jruoho
c33b9df9f8 Use __dead instead of __attribute__((__noreturn__)) directly. 2010-12-22 19:43:33 +00:00
christos
5a87b22ec6 Provide a re-entrant and thread-safe set of timezone API's that
don't require locking and can operate on user-specified timezones
as opposed to having to alter the environment to change a timezone.
This work was presented to the tzcode folks and it was generally
accepted, but there seems to be a lot of inertia.
2010-12-16 18:36:47 +00:00
christos
fb5fb3142c add VIS_NOESCAPE and VIS_HTTP1866 2010-11-27 19:44:54 +00:00
skrll
e6cdac9c4b Implement dl_iterate_phdr.
Somewhat taken from FreeBSD. Manual page from OpenBSD.
2010-10-16 10:27:06 +00:00
skrll
9c4f0f800b Move a comment so that it is correct. 2010-10-14 07:51:21 +00:00
christos
7acc3301d8 make putenv POSIX compliant. 2010-10-01 20:11:32 +00:00
yamt
ab5972b02c fix rewinddir on nfs. fix PR/42879 (and probably PR/40229.) 2010-09-26 02:26:59 +00:00
tnozaki
93b7363c93 add fmemopen(3) derrived from POSIX:2008.
libc minor bump.
2010-09-24 09:21:53 +00:00
christos
e2a86dd3c7 Commit SoC long double support from Stathis Kamperis 2010-09-15 16:11:28 +00:00
christos
748dbd74c6 Add dprintf and vdprintf. XXX: Might ifdef it if too many things break. 2010-09-06 14:52:26 +00:00
christos
7949642c16 add globstar. 2010-09-06 14:38:56 +00:00
enami
8713952936 Move prototype of isrmt() to rmt.h. It is a public interface
described in rmtops(3).
2010-08-31 05:12:35 +00:00
christos
6a4804166f The signal number argument in psignal is int not unsigned int.
Add psiginfo.
2010-08-27 08:40:38 +00:00
joerg
162d6d7dbb Missing defined. 2010-08-02 17:49:04 +00:00
joerg
7f1183f226 Add support for fenv.h interface for i386 and amd64.
Submitted by Stathis Kamperis as part of GSoC 2010 and ported from
FreeBSD.
2010-07-31 21:47:52 +00:00
joerg
44b309378f Define a new __c99inline macro for compilers known to implement the C99
behavior.  This unbreaks GCC 4.4's libgfortran build with the old
signal.h logic, because GCC decided to put the body for the sigsetop
functions in multiple objects.
2010-07-31 00:04:42 +00:00
tnozaki
9efec5bce3 1. MB_LEN_MAX switch MD to MI.
2. unfortunately hppa's MB_LEN_MAX is defined incorrectly 6 instead of 32
   so we have to add more setlocale(3) __RENAME func, __setlocale50.
3. move setlocale1.c and setlocale32.c to lib/libc/compat/locale/*
   prepareing for next libc major crunk.
4. bump libc minor version.
2010-06-07 13:52:28 +00:00
tnozaki
9a35d7972b more split ctype.h -> sys/ctype_inline.h, sys/ctype_bits.h 2010-06-01 13:52:07 +00:00
plunky
bdbcfb0d2d later versions of pcc may define __GNUC__ for compatibility reasons, so
having a system definition for alloca is counter productive as it seems
fairly common to use

    #ifdef __GNUC__
    #define alloca ..
    #endif

in user-headers (eg see usr.sbin/gspa/gspa/gspa_ass.h)

So, defang this definition as we don't otherwise provide alloca on NetBSD
2010-06-01 08:42:56 +00:00
tnozaki
64a7d4fa9a 1. hide _CTYPE_PRIVATE section in ctype.h, move them to private header ctype_local.h.
2. do not use _CTYPE_NUM_CHARS macro to read data from LC_CTYPE(old BSDCTYPE style) database.
   because 1<<CHAR_BIT is MD, so i added MI macro _CTYPE_CACHE_SIZE(1<<8).
3. remove _NB_CACHED_RUNE macro, use _CTYPE_CACHE_SIZE instead.
2010-05-22 06:38:15 +00:00
christos
b04439f4b7 lint friendly 2010-05-06 18:54:22 +00:00
christos
e6a464cc84 PR/43258: Hauke Fath: remove duplicate setservent declaration 2010-05-05 17:12:29 +00:00
plunky
c76d621ddd handle the difference between C99 and GNUC semantics of inline
functions with external linkage, by using "inline" for STDC and
"extern inline" for GNUC

(as noted by joerg@, using static inline may be clearer)
2010-05-04 09:07:11 +00:00
dholland
f6e199ad65 typo in comment 2010-05-02 06:31:48 +00:00
joerg
b9cf7d31ab Add the constant database reader (cdbr(3)) and writer ((cdbw(3)).
They implement a space efficent write-once database with fast access
path. Switch the services(5) database to use cdb. The size of the
database file decreases from 2.1MB disk space to 307KB. Access
performance is about the same if setservent(0) is used and about an
order of magnitude faster otherwise. services_mkdb defaults to the new
format, but can optionally create the old db(3) format as well for
statically linked legacy applications.
2010-04-25 00:54:44 +00:00
jruoho
73bd86de75 Define _PATH_POWER and use it. 2010-04-24 20:44:33 +00:00
christos
bb83e0e3c9 change size_t to ssize_t for POSIX compliance. 2010-04-17 17:51:47 +00:00
christos
244f534022 PR/43172: Jukka Ruohonen: swab(3) lacks restrict-keyword 2010-04-17 17:48:34 +00:00
tnozaki
377cb4e4f9 1. {wctype,wctrans,mbstate}_t: switch MD to MI like other
libc implementation (such as *BSD and glibc2).

2. don't typedef void * wc{type,trans}_t, suggested by soda@-san.
   it may pass through compiler type check, it's harmful.
   so i introduce dummy struct __tag_wc{type,trans}_t(iconv_t already does).

no ABI change was made.
2010-03-27 22:14:09 +00:00
joerg
8a601553bc Consistently use __printflike and __scanflike. 2010-02-25 18:37:12 +00:00
joerg
839c0958b5 PR 36988: ISO C99 mandates that HUGE_VAL, HUGE_VALF, HUGE_VALL and
INFINITY are constant expressions.

Use the GCC builtins if possible to implement them.
2010-02-23 00:03:09 +00:00
roy
588d0cb499 getent cannot report on termcap as we now use terminfo. 2010-02-03 18:11:18 +00:00
roy
98eb889579 Userland now builds and uses terminfo instead of termcap.
OK: core@, jdc@
2010-02-03 15:34:37 +00:00
drochner
7033707525 retire pw_policy(3) -- it is not found useful, there are other
(more common) ways to enforce a password strength policy
approved by elad
2010-01-27 19:10:30 +00:00
christos
ebd419f208 vasnprintf and asnprintf were never compiled in our libroken.a and never
used by heimdal programs. Remove the false advertising here that broke
the cygwin build.
2010-01-25 00:26:04 +00:00
christos
6439b76ce2 make the window size function return the lines and columns variables separately
instead of depending on the existance of struct winsize. Technically I should
bump the library version or version the symbol, but nothing seems to use this
outside the library!
2010-01-24 16:45:57 +00:00
joerg
00711901b6 Use a proper char */size_t pair in __sfileext to keep track of the line
buffer for fgetln and fgetwln. Simplifies code by dropping the INT_MAX
related logic. Drop conditionals around FREELB, free(NULL) is valid.
2010-01-11 20:39:29 +00:00
christos
5f7c431ef4 Add exp2 and exp2m 2010-01-11 16:28:39 +00:00
skrll
c6ed7679c0 Typo in comment. 2010-01-07 07:35:35 +00:00
pooka
8245a2442d +_PATH_PUD 2009-12-22 14:24:37 +00:00
drochner
750e2babfe add some prototypes for checked string functions 2009-11-17 20:47:59 +00:00
christos
db576bf322 Don't define wchar_t for c++; it is native in the language. From Alexander
Nasonov
2009-11-15 22:21:03 +00:00
pooka
5f6806f45c typedef struct link_map as Link_map (for solaris-compat) 2009-11-04 19:28:03 +00:00
christos
7523d42dda expose res_check for the benefit of mDNS. 2009-10-24 17:23:34 +00:00
snj
550147bd6a Remove 3rd and 4th clauses in christos' license. OK christos. 2009-10-21 01:07:44 +00:00
pooka
363b14551a In a furious blaze of *facepalm* / "what was i thinking?", fix the
open routine function pointer prototype of opendisk1() to match
the prototype of open().
2009-10-13 22:00:31 +00:00
christos
1799d3c97a oops forgot to commit that one--- Add f{dim,min,max}{,l,f} 2009-10-04 22:59:25 +00:00
tsarna
1f4f234ea9 Introduce allocaddrinfo(3) to make writing getaddrinfo() nss plugins easier.
Discussed on tech-net.
2009-10-02 02:45:28 +00:00
pooka
4c1e54d82b Add Solarisa-like dlinfo() interface to the ELF dynamic linker.
Implement RTLD_DI_LINKMAP which returns a pointer to the linkmap
chain at the given object.  Other Solaris queries are currently
unimplemented.
2009-09-24 21:21:33 +00:00
pooka
aaaf93f1d4 Add opendisk1(), which functions like opendisk(), but takes a function
pointer to the routine to be used for open().
2009-09-08 21:34:57 +00:00
he
6218a6dafa Introduce a new accessor macro N_NAME() to access the n_name field
in struct nlist, since it's accessed differently depending on
whether we do a.out or not.  Use this macro as appropriate in the
nlist* functions.
Also replace some includes of <a.out.h> with <nlist.h>, to fix build
problem for mips.
2009-08-21 08:42:02 +00:00
yamt
a5ad33a8d7 include <stdint.h> instead of <sys/types.h>.
the latter pulls FD_SET etc and it makes wine-1.1.27's winsock vs unixsocket
namespace dance unhappy.  for more information, grep
	Include_winsock_h_before_stdlib_h_or_use_the_MSVCRT_library
in their source.
2009-08-19 04:22:53 +00:00
christos
f227975929 Version fts one more time! This is the most versioned API ever... Bump
fts_level from short to int to avoid a potential DoS.
From Maksymilian Arciemowicz
2009-08-16 19:33:38 +00:00
pgoyette
f6f3b4be8a Repair more fallout from the exec_aout.h change.
No guarantee that these are the "right" things to do, but they do allow
building of port-amd64 again.
2009-08-16 17:12:47 +00:00
matt
21d93aff03 Allow <machine/setjmp.h> to override the type using in jmpbuf. 2009-08-12 04:57:36 +00:00
kleink
9be4603670 Declare strsignal(3) in <string.h>, per POSIX-2008, and adjust
documentation accordingly.

Fixes PR standards/41325 from Perry E. Metzger.
2009-07-22 19:48:27 +00:00
drochner
d493d48c2e add a "public domain" note (there is nothing creative justifying a
long license)
2009-07-22 15:09:57 +00:00
joerg
ebf8c87cf8 Some parts of gcc fail with the direct include of sys/inttypes.h, so
fall back to using sys/types.h like stdlib.h does.
2009-07-21 16:27:54 +00:00
joerg
0578c2ad0f Move popcount et al to src/common and add popcount32/popcount64.
Requested by rmind@. MD should now override popcount32/popcount64 and
provide the aliases as fitting.
2009-07-21 14:55:32 +00:00
joerg
974b291a6c Add popcount(3) and the long and long long version. Name is inspired by
gnulib, the implementation goes back to the AMD Software Optimizer
guide. A number of platforms will want to replace the C version with
assembler code using native instructions.
2009-07-21 13:18:43 +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
roy
d4a3cf6a5a Add implementations for getdelim(3) and getline(3). 2009-07-13 22:19:24 +00:00
ginsbach
c8da0e5fef Add the getdate(3) function and getdate_err value, conforming to IEEE
Std 1003.1 (``POSIX.1'') and the Open Group Base Specifications X/Open
System Interfaces extension (``XSI'').
2009-05-14 02:37:35 +00:00
pgoyette
28469fc250 Implement snprintb_m(3) to provide multi-line bit/bit-field decode.
Discussed on tech-kern.
2009-05-13 02:50:31 +00:00
perry
b1606298a5 note that we have strsignal but it is in the wrong include file. 2009-05-01 20:01:23 +00:00
perry
bdb0c5fb32 Add prototypes for stpcpy, stpncpy, strnlen, added in the latest POSIX.
Implementations in libc to follow.

For POSIX compliance, we are still missing:

strcoll_l
strerror_l
strsignal
strxfrm_l
2009-05-01 17:16:49 +00:00
christos
2cca8c559f Bring back binary compatibility with the previous version of the resolver.
There was no room to allocate 16 bytes for _rnd in the struct in the _LP64
case, so we dynamically allocate now. Also put the _rnd field last, so that
we are bitwise compatible too. Now of course we've run out of space, so
next time will need to perform more evil tricks to fit.
2009-04-20 14:42:12 +00:00
christos
178edc61d9 merge libbind 2009-04-12 17:07:33 +00:00
christos
84e3ca2d14 add memrchr 2009-04-10 23:00:52 +00:00
christos
1ef020be5f add glob_pattern_p for glibc because cvs needs it and it is a huge mess
to compile in the gnu glob code.
2009-04-08 16:28:50 +00:00
uebayasi
4a378cffe7 Revert previous since it was just wrong. 2009-03-19 08:04:38 +00:00
uebayasi
fe4f9942ce void f(void (*g)()); -> void f(void (*g)(void)); 2009-03-19 05:31:26 +00:00
christos
2c266c8a4c version alphasort. 2009-02-24 18:41:40 +00:00
martin
c79c3eed1d Make NAN a compile time constant (with help from the compiler). Suggested
by krister. Fixes PR 40695.
Make references to the old construct (which we can't remove for binary
compatibility reasons) emit a linker warning.
2009-02-22 01:34:01 +00:00
christos
bb0dd61478 Add RFC 2045 MIME Quoted-Printable support. 2009-02-10 23:06:31 +00:00
drochner
ad965be01b cleanup after devmajor_t:
-since getdevmajor(3) is now binary compatible again with <=5.0
 there is no need to rename, I've just left a __getdevmajor50 symbol
 temporarily for those who track -current
-update manpage
2009-01-20 20:08:12 +00:00
drochner
d767912be3 Change major()/minor() to return 32-bit types again, called
devmajor_t/devminor_t, as proposed on tech-kern.
This avoids 64-bit arithmetics and 64-bit printf formats in parts
of the kernel where it is not really useful, and helps clarity.
2009-01-20 18:20:47 +00:00
christos
d5c47e0e14 fix reversed test from Tobias Nygren. 2009-01-13 15:11:09 +00:00
pooka
f719976d8d Add MOPT_RUMP to STDOPTS so it will be correctly ignored by everyone
else apart from /sbin/mount.
(missed this portion of the file yesterday.  it was in the wrong tree)
2009-01-12 18:14:20 +00:00
pooka
694167d28f Support mount -o rump, which uses the rump server instead of using
the kernel service.  E.g. "mount -t efs -o rump /dev/sgidev /mnt"
runs effectively "rump_efs /dev/sgidev /mnt".
2009-01-11 20:39:34 +00:00
christos
7fc37d6329 don't do size computations because g++ does not like it. 2009-01-11 19:09:29 +00:00
christos
50728e7823 merge christos-time_t 2009-01-11 02:57:17 +00:00
lukem
4a94e73441 Change the second argument of getlogin_r() from int to size_t, per POSIX. 2009-01-06 11:16:46 +00:00
tnozaki
52ed7b035f Fixes PR lib/39662, shortcomings in LC_{MONETARY,NUMERIC,TIME,MESSAGES} db format.
ok'ed by core and releng.
(thanks for agc@, snj@ and i'm sorry for long time patience).

[libc]
- localeio.[ch] and lc*.[ch] in src/lib/libc/locale was replaced by
  new locale-db implementation using citrus_db backend,
  see src/lib/libc/citrus/citrus_lc_*.[ch].
- add citrus_bcs_strtou?l.c. don't use strtou?l locale implementation
  internally, because they're locale-aware function.
- add some stubs for multi-locale issue, see {current,global}_locale.c.
- remove some obsolete file, setrunelocale.c, ___runetype_mb.c.
- remove __savectype() from ctypeio.[ch].

[tools]
- mklocale(1): add new option ``-t'' that generates new style
  LC_{MONETARY,NUMERIC,TIME,MESSAGES} locale-db format.
- chrtbl(1): added ctypeio.[ch] for __savectype().

[locale-db]
- added en_US.US-ASCII locale.
- removed some shareable locale definition file:
    en_US.US-ASCII -> en_US.ISO8859-1, en_US.UTF-8
    zh_CN.eucCN -> zh_CN.GB18030
    and more...see src/share/locale/*/Makefile.
- remove obsoleted locale sr_YU, added new locale sr_ME, sr_RS.
- change locale name ja_JP.ISO2022-JP* -> ja_JP.ISO-2022-JP*
  for X11's locale.alias file alignments.
- fix regression test, wrong wcs?width(3), NAN/INF usage.

i tested release-build following arch:
  i386, amd64, hpc{mips,arm,sh}, sparc64, vax.

citrus_lc_*.[ch] also can read old-plain-text style locale-db.
so that backward compatibility is keeped, but lc*.[ch] can't read
new citrus_db'ed locale-db and localeio.c never check sanity,
so forward compatibility is broken ;-<

old mklocale(1) doesn't know -t option, so you have to rebuild toolchain.
2009-01-02 00:20:18 +00:00