Commit Graph

1764 Commits

Author SHA1 Message Date
joerg 6ce4f404a1 Fix depenency on common symbols in sbin. 2020-04-05 15:25:39 +00:00
msaitoh fa85244576 s/impliment/implement/ in comment. 2020-04-02 15:30:25 +00:00
kamil 1c8bb7d153 Add getsid(2) to the XOPEN namespace (again) 2020-03-31 16:50:31 +00:00
kamil 221d32f6a2 Expose getsid(2) to POSIX >= 2008 2020-03-31 16:49:06 +00:00
joerg af730bf1c8 Fix visibility of various C99 features, esp. for C++11. 2020-03-20 01:08:42 +00:00
kamil 11ca7e9ab1 Revert previous
Requested by joerg who wants to fix (ab)users.
2020-03-01 22:08:17 +00:00
kamil eee5e3f86c Fix typo in a comment 2020-03-01 15:18:34 +00:00
kamil 79ecd7cd2c Expose max_align_t to C99/C++
max_align_t does not depend on any pre-C99 or !C++ language feature.

This structure is in use in 3rd party essential C++ code as an extension
for older language revisions and in gnu99 code in the NetBSD distribution
(RTLD's build rules define -std=gnu11 just for exposing this struct).

Exposing max_align_t from the central NetBSD header avoid duplicate
definition in 3rd party code that could differ and produce ABI mismatched
binaries between -std= revisions.

This problem does not exist on OSs like Linux as they get this namespace
visibility defined inside LLVM or GNU toolchain headers. NetBSD ships with
its own stddef.h, rather than relying on a toolchain and its internal
extensions.
2020-03-01 15:08:16 +00:00
joerg 46533116bd Correct C99 / C++11 feature testing. Document remaining missing symbols. 2020-02-22 22:47:35 +00:00
mrg cefdfaf445 move P_tmpdir from "/var/tmp/" to "/tmp/".
the main effect of this is to make GCC and other libiberty using
tools use /tmp instead of /var/tmp for compiler temp files,
which can be a bottleneck on larger systems.

a survey of other platforms shows only OSX also uses /var/tmp,
everyone else has switched to /tmp long ago.


cons:  some smaller systems may have a smaller /tmp than /var/tmp,
and this may cause builds to fail with out of space earlier.
point the build to /var/tmp using TMPDIR in this case.

one can argue that setting TMPDIR would work around this, but we
want to have the effect for all users without having special setup.
2019-12-13 20:25:16 +00:00
kre 956ce054c6 PR lib/54744 (bruno@haible.de)
Add missing __END_DECLS for C++ compiles.

XXX pullup -9 XXX pullup -8 (bug not present in -7).
2019-12-08 02:15:02 +00:00
kamil 77a1ad5f00 Switch the iconv(3) prototype to the POSIX conformant variation
Remove const from the 2nd argument.

const char ** and char ** are incompatible types and it was a cost to keep
the technically incompatible form for a more purist variation. NetBSD was
almost the last alive OS to still keep the const argument (known leftovers:
Minix and Illumos).

Keep the const form for the internal purposes inside citrus and rump.

Address the build breakage fallout in the same change.

There are no ABI changes.

Change accepted by core@.
2019-10-24 18:17:14 +00:00
christos 06dda90b75 remove comment for incomplete x/open impl (kamil) 2019-09-15 23:52:59 +00:00
christos e33ef9b983 one fexecve declaration should be enough. 2019-09-15 23:41:41 +00:00
christos 9dd780b230 Remove the _INCOMPLETE_XOPEN_C063 stuff. 2019-09-15 23:41:00 +00:00
christos cedcb5f35f Declare fexecve 2019-09-15 22:32:48 +00:00
christos 44e58967a6 Sync with 2019b (field name change) 2019-07-03 15:49:21 +00:00
hannken 6f60c4f99e Move the basic part of XDR to common/include/rpc and common/lib/libc/rpc.
No functional change intended.
2019-06-04 15:07:55 +00:00
hannken 25da6a6235 Implement xdrmem_control(), used as xdr_control(xdr, XDR_GET_BYTES_AVAIL ...
and bump libc minor number.

Final goal is to remove the unmaintained XDR implementation
at external/cddl/osnet/dist/uts/common/rpc.
2019-06-04 08:44:08 +00:00
christos 2f3bda949c Add GLOB_TILDE_CHECK (from GNU) 2019-05-29 01:21:33 +00:00
kamil 002b04a5d5 As a _NETBSD_SOURCE extension define static_assert for pre-c11/c++99
Proposed on source-changes-d.
2019-05-27 07:31:11 +00:00
maya 4f1d88618a Limit static_assert visibility to C11.
The existing definition caused issues as GCC only provides _Static_assert
when building C11 code.
This follows the C standard: static_assert available since C11.

Fixes https://rt.perl.org/Public/Bug/Display.html?id=134023
2019-05-22 21:25:01 +00:00
roy 81b96f23a9 Don't install YP headers when MKYP=no 2019-04-24 10:26:08 +00:00
christos a138d72b53 merge tzcode 2019a 2019-04-04 18:18:52 +00:00
christos ec26bb08ec remove global pointers, add get/seters. 2019-03-12 15:11:13 +00:00
christos 9610e03031 catch up with name change. 2019-03-10 15:31:02 +00:00
christos 8f28406217 add missing externs. 2019-03-10 03:54:08 +00:00
christos 771773212c add copyright. 2019-03-09 06:12:55 +00:00
christos d444c9125e PR/54050: Ryo ONODERA: Add the jemalloc-specific api prototypes and extern. 2019-03-09 03:52:10 +00:00
joerg 4cbe3e3436 Provide global variables with C linkage, otherwise they will create
conflicts for C++ modules use.
2019-01-08 17:35:42 +00:00
maya b3991c8820 We can make a stronger guarantee than __pure.
abs/labs don't read global memory.

Make GCC 9 happier.
2019-01-05 09:16:46 +00:00
maya 1530e68601 Limit wcslcat, wcslcpy visibility to _NETBSD_SOURCE
wcswidth, wcwidth to POSIX.1-2001 or _NETBSD_SOURCE

Updated patch from kretschm in PR standards/39422
2018-12-28 13:11:46 +00:00
christos fb69ccbd92 more type protection macro lossage. 2018-11-18 19:22:23 +00:00
martin a9fb6a0f33 PR standards/53525: move getsubopt() to stdlib.h 2018-08-15 10:21:42 +00:00
christos f0907ab569 Fix the rest of the functions that have been made visible by xopen5,
posix 2017, and c99.
2018-06-24 23:55:29 +00:00
christos 9dd3d50e00 PR/53393: coypu: move rint to the right section. 2018-06-24 22:07:46 +00:00
kamil 4f2f27c8d8 Mark in string.h: memccpy(3) and strdup(3) as _POSIX_C_SOURCE >= 2001 2018-02-20 02:35:24 +00:00
christos 3c15acfdbe fix typo 2018-02-06 20:22:41 +00:00
christos 4e8153bc86 detect duplicate declaration of pthread_atfork() in pthread.h 2018-02-06 20:21:21 +00:00
mrg 8fdd01b3ee fixes for GCC 6:
- -Wstrict-prototypes is not available for C++, so don't try to
  ignore it for C++.
- remove many _DIAGASSERT() checks against not NULL for functions
  with arguments with nonnull attributes.  in two cases, leave
  code behind that should set defaults to "(null)".
- use -Wno-error=frame-address for i386 mcount, as it seems valid
  to assume the caller will have a frame.fair
2018-02-04 01:13:45 +00:00
christos b985414b8f Merge autofs support from: Tomohiro Kusumi
XXX: Does not work yet
2018-01-09 03:31:12 +00:00
christos 85bf85b701 make _lwp_park return the remaining time to sleep in the "ts" argument
if it is a relative timestamp, as discussed in tech-kern.
XXX: pullup-8
2017-12-08 01:19:29 +00:00
maya a1df7aec01 Add endian.h header. Simply includes sys/endian.h
<endian.h> has been accepted by the austin group.
2017-10-16 11:38:25 +00:00
christos 96a83291ba remove recallocarray 2017-10-07 21:15:48 +00:00
christos 345c694682 add recallocarray (used by openssh-7.6) 2017-10-07 19:38:09 +00:00
joerg 29f5b623d9 Add missing strfmon_l. Noticed by Bruno Haible. Add test case. 2017-08-16 13:53:19 +00:00
christos 7b923e1c00 s/not sure why// and make these work :-) 2017-08-16 08:35:48 +00:00
joerg e5678be828 Implement __cxa_thread_atexit and __cxa_thread_atexit_impl. This
functions are used for destructors of thread_local objects.

If a pending destructor exists, prevent unloading of shared objects.
Introduce __dl_cxa_refcount interface for this purpose. When the last
reference is gone and the object has been dlclose'd before, the
unloading is finalized.

Ideally, __cxa_thread_atexit_impl wouldn't exist, but libstdc++ insists
on providing __cxa_thread_atexit as direct wrapper without further
patching.
2017-07-11 15:21:31 +00:00
kre 486691905e Add the new signalname/signalnext/signalnumber interface to libc.
This as discussed on current-users in the thread
entitled:
  Proposal: new libc/libutil functions to map SIGXXXX <-> "XXXX"
that can be found (starting at):
  http://mail-index.netbsd.org/current-users/2017/04/28/msg031600.html

These functions provide the mechanism to enable applications
to divorce themselves from internal details of the signal
implementation.

Libc minor bumped, prototypes in <signal.h>, sets lists updated (and sorted).

One and all: feel free to improve the sources & man page (etc), but
please do not change the function signatures without discussion.
2017-05-09 11:14:16 +00:00
christos f81dba2062 Add vis DQ. 2017-04-23 01:57:36 +00:00
christos 395ebe609b fexcept_t + fenv_t should be handled the same way for softfloat 2017-04-09 15:29:07 +00:00
sevan a15505744d Add RCS tag. 2017-04-04 12:25:40 +00:00
chs 7e30e94394 provide a common softfloat fenv implemenation and use it for softfloat builds.
restore ABI compatibility with previous releases for ieeefp.h on sh3.
add namespace.h protection for all the fenv interfaces.
use MKSOFTFLOAT on sh3 instead of assuming softfloat.
standardize on comparing MKSOFTFLOAT with "no".
remove the arm-specific softfloat fenv code (which also had several bugs).
fix logic errors in the arm hardfloat feraiseexcept() and feupdateenv().
2017-03-22 23:11:07 +00:00
scole e3edf3b621 Add fenv for ia64, imported from FreeBSD, compile tested only. 2017-02-23 02:05:30 +00:00
christos a8c3505052 add _PATH_DEVZERO 2017-01-16 19:15:28 +00:00
christos 9279f94b7e elide strict-prototypes for unrepresentable function 2017-01-15 20:10:25 +00:00
christos 86268722b0 Welcome to the constant age! 2017-01-12 18:42:53 +00:00
mrg f1582e88f7 scandir/alphasort take "const struct dirent **" not "const void *" in
modern unix.  since we claim to be 'IEEE Std 1003.1-2008', make it so.
2016-12-16 04:45:04 +00:00
kamil 6245abaafa Import wcsnlen(3) to libc
The wcsnlen(3) function conforms to POSIX.1-2008 and is an addition to the
ISO C standard.

size_t wcsnlen(const wchar_t *s, size_t maxlen);

The wcsnlen(3) function computes the number of wide-characters in a wide-
-string to which s points, not including NULL terminating wide-character
code and checking no more than maxlen wide-characters. This function never
examines wide-characters beyond a wide-string of maxlen size.


This function is a safer version of wcslen(3):

size_t wcslen(const wchar_t *s);


Update STANDARDS section of wmemchr(3) describing wide-character functions.
2016-10-15 14:21:59 +00:00
christos 12b4355e4e add strchrnull 2016-10-12 20:01:22 +00:00
kamil 7f4b5eb156 Add timespec_get(3) in <time.h> and enable unconditionally struct timespec
These changes conforms to the C11 standard
References:
 - 7.27.1/3 Components of time (struct timespec)
 - 7.27.2.5 The timespec_get function

According to ISO/IEC 9899:201x (draft) <time.h> defines the timespec
structure and declares the timespec_get(3) function with TIME_UTC
definition.

According to a C++17 standard draft <ctime> offers the same interface in
the std:: namespace.

The timespec_get function modifies the timespec object pointed by ts
to hold the current calendar time in the given base. The standard notes
only the TIME_UTC base with implementation defined value, set it to 1
as zero is reserved for error handling. Once operation was successful this
function returns passed base, otherwise exits with zero.

The timespec struct was already part of the POSIX standard in <time.h>.

Enable this interface unconditionally in the header to allow to use it
in a code prior C11 and C++17 as an extension.

Review notes from <christos>
2016-10-04 09:41:40 +00:00
kamil ba27f5b7d6 Add static_assert macro definition in <assert.h>
This declaration conforms to the C11 standard
Reference: ISO/IEC 9899:201x 7.2 Diagnostics <assert.h>

_Static_assert performs compile-time assertion checking.

According to ISO/IEC 9899:201x (draft) 7.2 Diagnostics <assert.h> defines
the static_assert macro which expands to _Static_assert. It's not
conditionalized by NDEBUG like the assert macro.

According to ISO/IEC N3242=11-0012 (C++1x) the <cassert> header shall
define only the assert macro, but not static_assert as it's already part
of the C++11 language.

Allow to define static_assert in C++ prior the C++11 standard. It might be
broken but a nonstandard C++ compiler might support C11-like _Static_assert
feature. Note that it's fatal for g++ 5.4, but it works for clang++ 3.8.1.

Approved by <joerg>.
2016-10-03 12:08:39 +00:00
kamil 7db6ba3b08 Import <stdalign.h>
This header conforms to the C11 standard
Reference: ISO/IEC 9899:201x 7.15 Alignment <stdalign.h>

According to ISO/IEC 9899:201x (draft) 7.15 Alignment <stdalign.h> defines
four macros:
 - alignas which expands to _Alignas
 - alignof which expands to _Alignof
 - __alignas_is_defined and __alignof_is_defined which both expand to 1

The _Alignas declaration appears as one of the type specifiers to modify
the alignment requirement of the object being declared.

The _Alignof operator is used to query the alignment requirement of its
operand type.

ISO/IEC N3242=11-0012 (C++1x) and ISO/IEC N3797 (C++1y) both note a header
<cstdalign> which defines only __alignas_is_defined and shall not define
the alignas macro. It misses the alignof case as it's probably based on an
older C1x draft, which defined only alignas. Assume that this is a bug in
the standard and treat alignof the same way as alignas in C++11.

Allow to define alignas and alignof in C++ prior the C++11 standard. It
might be broken but a nonstandard C++ compiler might support C11-like
_Alignas and _Alignof. Note that it's fatal for g++(1) v.5.4.
2016-10-02 17:19:00 +00:00
kamil 7798b8a775 Import <stdnoreturn.h>
This header conforms to the C11 standard
Reference: ISO/IEC 9899:201x 7.23 _Noreturn <stdnoreturn.h>

According to ISO/IEC 9899:201x (draft) <stdnoreturn.> defines the
noreturn macro which expands to _Noreturn.

The _Noreturn keyword appears in a function declaration and specifies
that the function does not return by reaching the end of the function
body.

Design choices:
 - don't implicitly break C++ code including this header with #error
   C++11 offers [[noreturn]] which conflicts with C11 _Noreturn

 - don't check for __STDC_VERSION__, everybody is free to reuse it with
   a nonstandard compiler not conforming to C11 but supporting _Noreturn

   gcc(1) and clang(1) support _Noreturn in -std=c99 and older standards

   this follows <stdbool.h> choice for not checking for C99

 - follow <stdbool.h> and declare the __noreturn_is_defined guard

 - use a standard header guard (_STDNORETURN_H_), similar to <stdbool.h>

Reviewed by <pgoyette> and <joerg>
2016-10-02 13:09:24 +00:00
christos 2b55b3112e remove mpool_getf 2016-09-24 21:18:09 +00:00
christos 0ac50079c4 sync with mit/kerberos db 2016-09-24 20:11:43 +00:00
roy 9fed1c5a9e Add ifa_addrflags to ifaddrs (forgot to commit this file, thanks Ryo!) 2016-09-21 13:32:27 +00:00
christos 40cfe4c8d2 add sh 2016-08-25 12:12:59 +00:00
christos 6aac56bef8 add alpha 2016-08-23 09:59:46 +00:00
christos c10c4abe0f Realtime signal support from GSoC 2016, Charles Cui. 2016-08-04 06:43:43 +00:00
njoly d1b4525986 According to Opengroup online specifications[1], _POSIX_CPUTIME and
_POSIX_THREAD_CPUTIME options should be present in unistd.h not
limits.h. Move them with other options.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/unistd.h.html
2016-07-21 16:01:58 +00:00
christos d32f1d2f0f add hmac(3) 2016-07-01 22:42:01 +00:00
christos 4fda2f64e1 define block length 2016-07-01 16:42:46 +00:00
dholland ae3b3bcc2b PR 51287 Ralf Nolden: posix_fallocate belongs in <fcntl.h> 2016-06-30 15:29:20 +00:00
kamil e3d1905862 Use generic types in the profil(2) function prototype (<unistd.h>) 2016-06-18 14:39:15 +00:00
christos ea2913a0a2 GSoC 2016: Charles Cui: Add timer related macros
_POSIX_CPUTIME
    _POSIX_THREAD_CPUTIME
    _POSIX_DELAYTIMER_MAX
2016-06-10 23:29:20 +00:00
christos 0196f35dd1 GSoC 2016: Charles Cui: add SEM_NSEMS_MAX 2016-06-10 23:24:33 +00:00
joerg 5d45063308 Go back to just using normal visibility for the locale symbols. Without
an actual specifier like dllimport, protected visibility is unusable.
2016-04-29 16:26:48 +00:00
dholland 521eaa499b Define SEM_VALUE_MAX in only one place.
Adding a whole extra header file just for this is not the optimal
solution... but stuffing it in with anything else exposes things that
otherwise wouldn't be.

Nothing in userland should use <sys/semaphore.h> directly, and if some
foolish third-party software should decide to do so anyway in spite of
the instructions to the contrary I will ruthlessly break it later when
the big kernel includes cleanup finally happens.

Reported by Kamil Rytarowski, and, as it turns out, also by Klaus
Heinz in 2008.
2016-04-24 19:48:29 +00:00
christos ac892fb52b add clock_cpugetclockid{2,} 2016-04-23 23:10:10 +00:00
roy 6b9006e83c Implement pidfile_lock, pidfile_read and pidfile_clean.
Discussed on tech-net@, ok core@.
2016-04-10 19:05:50 +00:00
christos 618262a97a use foo - 0 instead of testing for defined(foo); from joerg@ 2016-03-20 16:26:06 +00:00
christos c07b0c6505 PR/50983: David Shao: Protect stddef;
also make the pointer void *.
2016-03-20 14:11:49 +00:00
christos 143f5307f7 disable dso protected for clang now, so that packages can be built.
(again this is the binutils warning about copy relocations on protected objects)
2016-03-17 17:36:32 +00:00
christos 8aeecea358 more casting fixes 2016-03-17 02:25:32 +00:00
christos ede51e408c gcc 5, my patience is waning. 2016-03-17 00:42:49 +00:00
christos 66e7b2616e appease gcc-5 |= #$@#% 2016-03-17 00:15:27 +00:00
mrg b298dc9162 add max_align_t. C11 defines this and GCC 5.3 really wants it.
XXX: language laywers, please feel free to fix this as necessary.
2016-03-17 00:03:38 +00:00
leot 2a4b16ea45 strndup() is part of XSI from The Open Group Base Specification Issue 7 and had
a similar history of stpcpy(), stpncpy() and strnlen().
Make it visible under XOPEN_SOURCE>=700 too (not just _NETBSD_SOURCE).

ok dholland@
2016-03-10 18:53:48 +00:00
christos 53a91c7008 - GC pts_fired, and fix the comment about MAX_TIMERS
- Bump MAX_TIMERS to 36 so that we have 32 POSIX user timers which is the
  minimum required.
2016-03-08 05:02:55 +00:00
christos 25f8e5a66f undo protected symbol hack. 2016-03-08 03:58:31 +00:00
christos 68cdf08b32 We only have 28 timers available. 2016-02-26 17:10:23 +00:00
christos 5641580370 Add relatime. 2016-02-21 22:45:25 +00:00
christos 8bdedb49af disable dso protected to work around binutils bug 2016-01-29 15:18:33 +00:00
dholland b030061971 Needs sys/select.h for fd_set; fails only when _POSIX_SOURCE is defined,
because then something else doesn't include it. (I guess.)
2016-01-23 02:36:57 +00:00
dholland 89050ca13e unsigned -> unsigned int in previous change to accomodate C++ boneheadedness. 2016-01-23 02:34:09 +00:00
dholland 398f572480 Apparently a recent round of vandalism by the C++ standards committee
includes disallowing the standard and historic type name "unsigned". Add
a gratuitous "int" to recent changes.

C++ is really a blight on the world.
2016-01-23 01:26:14 +00:00
dholland 29f79e71d2 u_int -> unsigned, u_long -> unsigned long, etc. 2016-01-23 01:05:30 +00:00
dholland e7633a3426 Needs sys/cdefs.h for __BEGIN_DECLS. Also add time.h to get time_t,
rather than doing the machine/ansi.h #ifdef dance, as it doesn't matter
much what symbols utmp.h exposes. This could be tightened later when we
manage to do enough include cleanup to make such dances less expensive
to maintain.
2016-01-22 23:59:44 +00:00
dholland b43a55ad4d Uses BEGIN_DECLS and needs sys/cdefs.h. 2016-01-22 23:23:13 +00:00