1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-11 09:50:12 +00:00
Commit Graph

17346 Commits

Author SHA1 Message Date
Konstantin Belousov
3279301186 Use __FBSDID() for .c files from lib/libthr/thread.
Sponsored by:	The FreeBSD Foundation
2016-04-08 11:15:26 +00:00
Konstantin Belousov
5c43c9a105 Use ANSI C function definitions, fix spelling in a comment.
Sponsored by:	The FreeBSD Foundation
2016-04-08 10:59:06 +00:00
Konstantin Belousov
9e821f2796 Assert that the lock objects put into the off-page, fit into the page.
Sponsored by:	The FreeBSD Foundation
2016-04-08 10:21:43 +00:00
Bryan Drewery
15719ec499 Follow-up r295924: Only sync hash-based db files open for writing when closing.
This fixes a major performance regression when reading db files such as
the pw database during a 'pkg install'.

MFC after:	1 week
Tested by:	bapt
Reviewed by:	bapt
Sponsored by:	EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D5868
2016-04-06 22:38:50 +00:00
Andrew Turner
fd82bc4f99 Revert a change that sneeked with 297619 2016-04-06 16:50:18 +00:00
Andrew Turner
4798b7f381 Disable support for compat syscalls on arm64. These symbols were never
shipped since arm64 exists only on 11+.

Submitted by:	brooks
Reviewed by:	emaste, imp
2016-04-06 16:09:10 +00:00
Andrey A. Chernov
ae7abb26b1 SJIS encoding don't have single byte characters >= 224
MFC after:      1 week
2016-04-04 15:56:14 +00:00
Konstantin Belousov
841ecd471a Remove unused variable. It was write-only before r297139.
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2016-04-04 06:58:59 +00:00
Andrey A. Chernov
e08c3b7c11 EUC-type encodings don't have single byte characters >= 128
This change should not be MFCed until new collate will be
MFCed first, because our old EUC tables have some hacks for
missing codesets.
2016-04-04 02:43:35 +00:00
Brooks Davis
f2ffcf4c85 Document KTRFAC_FAULT and KTRFAC_FAULTEND.
Obtained from:	CheriBSD (9d70f563f1b033e6a9b51eaf3b145a8cbbc6617c)
MFC after:	1 week
Sponsored by:	DARPA, AFRL
2016-03-31 23:55:19 +00:00
Bryan Drewery
fb71c286e8 WITHOUT_TOOLCHAIN: Skip building of h_raw.
-fsanitize does not seem to work when a --sysroot is specified and there
is no <sysroot>/usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone-*.a.

Sponsored by:	EMC / Isilon Storage Division
2016-03-31 17:27:17 +00:00
Bryan Drewery
c0f5aeb032 WITHOUT_TOOLCHAIN: Fix build of rtld.
MK_TOOLCHAIN==no disables building and installing of pic archives.
c_pic.a is still needed for rtld though so force it to build in lib/libc
and link directly to the objdir version of it for rtld.

Somehow this has been broken since r148725.

Sponsored by:	EMC / Isilon Storage Division
2016-03-31 17:27:01 +00:00
Ed Maste
a38e4f5cc6 libc: stop exporting cerror
i386 stopped exporting .cerror in r240152, and likewise for amd64 in
r240178. It is not used by other libraries on any platform, so apply
the same change to the remaining architectures.

Reviewed by:	jhibbits, jilles
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D5774
2016-03-30 14:42:09 +00:00
Pedro F. Giffuni
cc4cacc736 freopen(3): prevent uninitialized errno.
Revert completley r297408 (and r297407): this ends up touching errno,
which we are not allowed to do.

Pointed out by:	ache, bde
2016-03-30 13:26:35 +00:00
Pedro F. Giffuni
6a2a9844b0 freopen(3): prevent uninitialized errno.
Revert r297407 and redo it cleanly.

Pointed out by:	Jukka A. Ukkonen
CID:		1018720
MFC after:	1 week
2016-03-30 06:13:58 +00:00
Pedro F. Giffuni
36226c47ef freopen(3): prevent uninitialized errno.
The case doesn't look very likely but clean the possibility nevertheless

CID:		1018720
MFC after:	1 week
2016-03-30 01:32:08 +00:00
John Baldwin
ad3ecc2025 Fix parsing of a 1GB page table entry.
Use 'pdpe' to extract the PA of the 1GB page instead of 'pde' (which was
a copy and paste bug from the 2MB page case further down).

CID:		1341467
Reported by:	pfg
2016-03-28 18:41:48 +00:00
Edward Tomasz Napierala
225636dccb Fix bunch of .Xrs.
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2016-03-28 16:48:28 +00:00
Dimitry Andric
35b9ea3d09 Compile libcxxrt as C++11, since it is only really used in combination
with libc++, which is also C++11.  Also change one _Static_assert (which
is really C11) back into static_assert, like upstream.

This should help when compiling libcxxrt with newer versions of gcc,
which refuse to recognize any form of static assertions, if not
compiling for C++11 or higher.

While here, add -nostdinc++ to CFLAGS, to prevent picking up any C++
headers outside the source tree.
2016-03-27 00:37:54 +00:00
Bryan Drewery
59f6130d2a Implement (ACFLAGS|CFLAGS|CXXFLAGS).SRC globally.
Sponsored by:	EMC / Isilon Storage Division
2016-03-26 03:46:12 +00:00
Bryan Drewery
46a0387a46 CCACHE_BUILD: Don't use ccache when generating some files with CC -E.
At least for ncurses this fixes a build error due to it trying to run
'ccache --version' to work around a gcc 5 bug using the fix in r287205.

Sponsored by:	EMC / Isilon Storage Division
2016-03-24 21:48:13 +00:00
Bryan Drewery
de0fbc4dbc Don't reset CC away from full-pathed gcc.
This was breaking the build when using CROSS_TOOLCHAIN=powerpc64-gcc

Sponsored by:	EMC / Isilon Storage Division
2016-03-24 21:48:10 +00:00
Ed Schouten
1f3bbfd875 Replace the CloudABI system call table by a machine generated version.
The type definitions and constants that were used by COMPAT_CLOUDABI64
are a literal copy of some headers stored inside of CloudABI's C
library, cloudlibc. What is annoying is that we can't make use of
cloudlibc's system call list, as the format is completely different and
doesn't provide enough information. It had to be synced in manually.

We recently decided to solve this (and some other problems) by moving
the ABI definitions into a separate file:

	https://github.com/NuxiNL/cloudabi/blob/master/cloudabi.txt

This file is processed by a pile of Python scripts to generate the
header files like before, documentation (markdown), but in our case more
importantly: a FreeBSD system call table.

This change discards the old files in sys/contrib/cloudabi and replaces
them by the latest copies, which requires some minor changes here and
there. Because cloudabi.txt also enforces consistent names of the system
call arguments, we have to patch up a small number of system call
implementations to use the new argument names.

The new header files can also be included directly in FreeBSD kernel
space without needing any includes/defines, so we can now remove
cloudabi_syscalldefs.h and cloudabi64_syscalldefs.h. Patch up the
sources to include the definitions directly from sys/contrib/cloudabi
instead.
2016-03-24 21:47:15 +00:00
Ed Maste
dae2d550d6 libc: stop exporting curbrk and minbrk in the private namespace
They are not used anywhere else in the base system and are an internal
implementation detail that does not need to be exposed.

Reviewed by:	kib
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D5728
2016-03-24 18:47:19 +00:00
Bjoern A. Zeeb
936ce65444 Correct comment.
MFC after:	2 weeks
2016-03-22 14:08:00 +00:00
Konstantin Belousov
6044c03a37 Apparently there are some popular programs around which assume that it
is safe to call pthread_mutex_init() on the same shared mutex several
times.  POSIX claims that the behaviour in this case is undefined.

Make this working by only allowing one caller to initialize the mutex.
Other callers either see already completed initialization and do
nothing, or busy-loop yielding while designated initializer finishes.
Also make the API requirements loose by initializing mutexes on other
pthread_mutex*() calls if they see uninitialized shared mutex.

Only mutexes provide the hack for now, but it could be also
implemented for other process shared primitives from libthr.

Reported and tested by:	"Oleg V. Nauman" <oleg@opentransfer.com>
Sponsored by:	The FreeBSD Foundation
2016-03-22 10:51:42 +00:00
John Baldwin
bb430bc740 Fully handle size_t lengths in AIO requests.
First, update the return types of aio_return() and aio_waitcomplete() to
ssize_t.

POSIX requires aio_return() to return a ssize_t so that it can represent
all return values from read() and write().  aio_waitcomplete() should use
ssize_t for the same reason.

aio_return() has used ssize_t in <aio.h> since r31620 but the manpage and
system call entry were not updated.  aio_waitcomplete() has always
returned int.

Note that this does not require new system call stubs as this is
effectively only an API change in how the compiler interprets the return
value.

Second, allow aio_nbytes values up to IOSIZE_MAX instead of just INT_MAX.

aio_read/write should now honor the same length limits as normal read/write.

Third, use longs instead of ints in the aio_return() and aio_waitcomplete()
system call functions so that the 64-bit size_t in the in-kernel aiocb
isn't truncated to 32-bits before being copied out to userland or
being returned.

Finally, a simple test has been added to verify the bounds checking on the
maximum read size from a file.
2016-03-21 21:37:33 +00:00
Ian Lepore
00f66a5236 If the dhcp server delivers an interface-mtu option, parse it and store
the value in a new global intf_mtu for use by the application.

These changes were inspired by the patch provided by Robert Blayzor in
PR 187094, and will allow loader(8) to propagate the value to the kernel
along with the other nfs_diskless parms delivered via environment vars.
2016-03-21 14:58:12 +00:00
Ian Lepore
678849441d Actually garbage collect the unused code, as mentioned in r297147, which
this change should have been part of.
2016-03-21 14:39:03 +00:00
Ian Lepore
3cf266f1bd Garbage collect the bswap routines from libstand. The declaration was
wrapped in an i386 ifdef with a comment questioning their usefulness even
there.  It turns out they aren't referenced anywhere, but their presence
prevents using sys/endian.h in libstand code.

These days, sys/endian.h provides much better support for such things, using
compiler builtins and inline functions (and creating connections between
libstand code and header files from sys/ would not be breaking new ground).
2016-03-21 14:21:32 +00:00
Konstantin Belousov
53fd961f05 Lock pshared_lock shared around fork, to ensure that the COW snapshot
of the pshared hash in child is consistent and can be safely used.

Reported and tested by:	"Oleg V. Nauman" <oleg@opentransfer.com>
Sponsored by:	The FreeBSD Foundation
2016-03-21 06:52:35 +00:00
Konstantin Belousov
07f22a288d Provide more information on failing checks in mutex_assert_is_owned()
and mutex_assert_not_owned().  snprintf() use in this context should
be safe.

Sponsored by:	The FreeBSD Foundation
2016-03-21 06:48:11 +00:00
Konstantin Belousov
b6751c3f87 From libthr, remove special and strange code to set up session and
control terminal, activated when running with pid 1.  It is
application duty to handle this, and unsuspecting init replacements
which are linked with libthr would be broken by this.

The pre-resolving of getpid() is restored, just in case.

Reviewed by:	jilles
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2016-03-21 06:46:16 +00:00
Konstantin Belousov
6eced731e8 Implement process-shared spinlocks.
Sponsored by:	The FreeBSD Foundation
2016-03-21 06:40:54 +00:00
Konstantin Belousov
e13c604596 Fix typo.
MFC after:	3 days
2016-03-21 05:59:05 +00:00
Michael Gmelin
1ec923fd6d Update fetch.1 and fetch.3 to reflect libfetch's actual use of CA bundles
Reviewed by:	wblock
Approved by:	wblock
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D5558
2016-03-19 11:55:21 +00:00
Julian Elischer
efdd41da26 Use the right argumant name
MFC after:	1 week
Sponsored by:	Panzura inc
2016-03-18 08:47:17 +00:00
Justin Hibbits
b37309b150 Bump libdevinfo SHLIB_MAJOR, forgotten in r297000.
Spotted by:	bapt
2016-03-18 01:53:00 +00:00
Simon J. Gerraty
fb9cfe551b xo_config.h no longer in contrib, so -I's needed
PR:		/homes/sjg/commit-logs/freebsd/libxo/xo_config.diff
Reviewed by:	jkim
2016-03-17 04:21:57 +00:00
Simon J. Gerraty
342f335141 We need libutil
and make it feasible to at least build the tests in situ
2016-03-17 00:37:04 +00:00
Phil Shafer
0263a1a1bc Move generated file from contrib to build directory.
Reviewed by:	obrien
Approved by:	sjg
2016-03-16 23:50:41 +00:00
Ed Maste
c38dac681d libc: don't build compat functions if building WITHOUT_SYMVER
WITHOUT_SYMVER necessarily implies building a system without symver
backwards compatability.

Sponsored by:	The FreeBSD Foundation
2016-03-15 19:26:32 +00:00
Warner Losh
bb52d711d0 Use the newly minted Makefile.libcompat to implement libsoft libraries
for the armv6 ABI switch. This also make WITH_LIBSOFT functional on
the arm platform. As a transition thing, this seems to work even
without switching the ABI (we basically build the same libraries
twice when MK_LIBSOFT=yes until the ABI cut over next
month). MK_LIBSOFT remains default no.
2016-03-12 23:25:05 +00:00
Konstantin Belousov
250d9fd8aa Fix handling of umtxp resource limit in sh(1)/ulimit(1), limits(1), add
login.conf(5) support.

Reviewed by:	jilles
Sponsored by:	The FreeBSD Foundation
Differential revision:	https://reviews.freebsd.org/D5610
2016-03-12 14:54:34 +00:00
John Baldwin
6d3eca246c Remove Symbol.map entries for old AIO system calls for FreeBSD 6 compat.
These entries should have never been present since they only exist for
compat with FreeBSD 6.x (and older) binaries.  This was missed in r296572.
Technically this breaks the ABI by removing versioned symbols.  However,
no binaries should be linked against these symbols.  No release has
shipped with a header that contained a prototype for these functions.

Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D5615
2016-03-12 07:13:20 +00:00
Bryan Drewery
b5fb065156 DIRDEPS_BUILD: Update dependencies.
Sponsored by:	EMC / Isilon Storage Division
2016-03-11 23:45:59 +00:00
Bryan Drewery
7533aa1599 Add missing CLEANFILES.
MFC after:	1 week
Sponsored by:	EMC / Isilon Storage Division
2016-03-11 23:45:56 +00:00
Bryan Drewery
f35f9d33f5 Remove bogus .ORDER.
This is not SUBDIR_PARALLEL and if it were this .ORDER would not work
since the targets are <target>_subdir_<subdir> not <subdir>.

MFC after:	1 week
Sponsored by:	EMC / Isilon Storage Division
2016-03-11 23:45:42 +00:00
Justin Hibbits
bf081e9948 Add to CFLAGS, rather than replacing.
This allows additional CFLAGS, as set in bsd.cpu.mk, to go through.
2016-03-11 20:04:32 +00:00
Dag-Erling Smørgrav
79dfd995a3 Not ready for level 6 yet due to -Wredundant-decls. 2016-03-11 14:47:14 +00:00