mav [Thu, 15 Nov 2012 05:44:44 +0000 (05:44 +0000)]
MFC r240762:
Restore handling of the third argument (id) of hid_start_parse(), same as
it is done in NetBSD/OpenBSD, and as it was here before r205728.
I personally think this API or its implementation is incorrect, as it is not
correct to filter collections based on report ID, as they are orthogonal
in general case, but I see no harm from supporting this feature.
mav [Thu, 15 Nov 2012 05:33:14 +0000 (05:33 +0000)]
MFC r242314:
Make GEOM RAID more aggressive in marking volumes as clean on shutdown
and move that action from shutdown_pre_sync to shutdown_post_sync stage
to avoid extra flapping.
ZFS tends to not close devices on shutdown, that doesn't allow GEOM RAID
to shutdown gracefully. To handle that, mark volume as clean just when
shutdown time comes and there are no active writes.
dim [Wed, 14 Nov 2012 20:32:43 +0000 (20:32 +0000)]
MFC r242715:
For kernel builds with PROFLEVEL >= 1, such as LINT, don't attempt to
use the -falign-functions option if the compiler is clang, as the flag
is not supported.
MFC r242717:
For kernel builds with PROFLEVEL >= 2, such as LINT, don't attempt to
use the -mprofiler-epilogue option if the compiler is clang, as the flag
is not supported. While here, fix up the value indentations.
dim [Wed, 14 Nov 2012 20:27:17 +0000 (20:27 +0000)]
MFC r240468 (by brooks):
Introduce a new make variable COMPILER_TYPE that specifies what
type of compiler is being used (currently clang or gcc). COMPILER_TYPE
is set in the new bsd.compiler.mk file based on the value of the CC
variable or, should it prove informative, by running ${CC} --version
and examining the output.
To avoid negative performance impacts in the default case and correct
value for COMPILER_TYPE type is determined and passed in the environment
of submake instances while building world.
Replace adhoc attempts at determining the compiler type by examining
CC or MK_CLANG_IS_CC with checks of COMPILER_TYPE. This eliminates
bootstrapping complications when first setting WITH_CLANG_IS_CC.
Sponsored by: DARPA, AFRL
Reviewed by: Yamaya Takashi <yamayan@kbh.biglobe.ne.jp>, imp, linimon
(with some modifications post review)
MFC r242633 (by brooks):
Allow CC to be gcc46 or similar by matching gcc*.
Don't test the value of the :M matches, either the string matches or does
not.
dim [Mon, 12 Nov 2012 07:34:05 +0000 (07:34 +0000)]
MFC r242625:
Remove duplicate const specifiers in many drivers (I hope I got all of
them, please let me know if not). Most of these are of the form:
static const struct bzzt_type {
[...list of members...]
} const bzzt_devs[] = {
[...list of initializers...]
};
The second const is unnecessary, as arrays cannot be modified anyway,
and if the elements are const, the whole thing is const automatically
(e.g. it is placed in .rodata).
I have verified this does not change the binary output of a full kernel
build (except for build timestamps embedded in the object files).
dim [Mon, 12 Nov 2012 07:30:24 +0000 (07:30 +0000)]
MFC r242804:
Shrink boot2 by 8 bytes, by eliminating some unneeded instructions in
sio.S. This is not particularly needed for head right now, but it is
intended to merge to stable/9, to fix boot2 build with clang there.
dteske [Sun, 11 Nov 2012 23:29:45 +0000 (23:29 +0000)]
Fix a regression introduced by SVN r211417 that saw the breakage of a feature
documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
If /usr/sbin/sysinstall is linked to another filename, say
`/usr/local/bin/configPackages', then the basename will be used
as an implicit command name.
Reviewed by: adrian (co-mentor)
Approved by: adrian (co-mentor)
ed [Sun, 11 Nov 2012 12:21:51 +0000 (12:21 +0000)]
MFC r240422, r240426 and r240450:
Implement LIST_PREV().
Regular LISTs have been implemented in such a way that the prev-pointer
does not point to the previous element, but to the next-pointer stored
in the previous element. This is done to simplify LIST_REMOVE(). This
macro can be implemented without knowing the address of the list head.
Unfortunately this makes it harder to implement LIST_PREV(), which is
why this macro was never here. Still, it is possible to implement this
macro. If the prev-pointer points to the list head, we return NULL.
Otherwise we simply subtract the offset of the prev-pointer within the
structure.
It's not as efficient as traversing forward of course, but in practice
it shouldn't be that bad. In almost all use cases, people will want to
compare the value returned by LIST_PREV() against NULL, so an optimizing
compiler will not emit code that does more branching than TAILQs.
While there, add __containerof(). Compared to __member2struct(), this
macro has the following advantages:
- It ensures that the type of the pointer is compatible with the member
field of the structure (or a void pointer).
- It works properly in combination with volatile and const, though
unfortunately it drops these qualifiers from the returned value.
mdf@ proposed to add the container_of() macro, just like Linux has.
Eventually I decided against this, as <sys/param.h> is included all over
the place. It seems container_of() on Linux is specific to the kernel,
not userspace. I'd rather not pollute userspace with this.
I also thought about adding __container_of(), but this would have two
advantages. Xorg seems to already have a __container_of(), which is not
compatible with this version. Also, the underscore in the middle
conflicts with our existing macros (__offsetof, __rangeof, etc).
ed [Sun, 11 Nov 2012 12:12:44 +0000 (12:12 +0000)]
MFC r241161:
Fix faulty error code handling in read(2) on TTYs.
When performing a non-blocking read(2), on a TTY while no data is
available, we should return EAGAIN. But if there's a modem disconnect,
we should return 0. Right now we only return 0 when doing a blocking
read, which is wrong.
MFC r242078:
Correct SIGTTIN handling.
In the old TTY layer, SIGTTIN was correctly handled like this:
while (data should be read) {
send SIGTTIN if not foreground process group
read data
}
In the new TTY layer, however, this behaviour was changed, based on a
false interpretation of the standard:
send SIGTTIN if not foreground process group
while (data should be read) {
read data
}
Correct this by pushing tty_wait_background() into the ttydisc_read_*()
functions.
ed [Sun, 11 Nov 2012 12:06:12 +0000 (12:06 +0000)]
MFC r233522, r239855, r239910, r239938, r239954 and r239961.
- Relicense to 2-clause BSD license.
- Use queue(3) -- not some homegrown implementation of linked lists.
- Rename structures to _entry, as they are entries in the linked list --
not the lists themselves.
- Don't store entire copies of struct utmpx in utmpx_entry, but only the
members we're interested in. Large fields such as hostnames are not
needed during the execution of the program.
- Give structure members useful names, instead of `name'.
- While there, use struct timevals instead of time_t's internally. This
is not strictly useful, but while we're at it...
- Mark stuff static.
- Add missing const keywords.
- Remove unneeded prototypes.
- Remove workaround for sparc64-specific utmp problems. These don't
apply to utmpx.
- Don't discard entries when timestamps are not monotone. This shouldn't
ever happen with utmpx, but discarding them is a bit too harsh.
- Remove debug code. We nowadays have `getent utmpx', which can be used
to analyze logfiles in depth.
- Use proper uppercasing/periods in comments.
- Print output of `ac -p' sorted alphabetically, instead of first
occurrence.
- Properly check against pts/* instead of tty[PQRSpqrs]* to determine
whether a TTY is a pseudo-terminal.
dim [Fri, 9 Nov 2012 19:35:46 +0000 (19:35 +0000)]
MFC r242623:
In sys/contrib/ngatm/netnatm/msg/uni_ie.c, fix a few warnings from newer
versions of clang 3.2, about comparing enum uni_cause values against
integer constants which fall outside the enum range. No functional
change.
hselasky [Fri, 9 Nov 2012 07:12:31 +0000 (07:12 +0000)]
MFC r241432, r242628 and r242364:
Remove ancient mass storage gone checks.
Add some more mass storage related quirks.
Improve auto-quirk detection for mass storage devices.
eadler [Fri, 9 Nov 2012 00:35:55 +0000 (00:35 +0000)]
MFC r242462:
10 years too late add support for "2.88MB 3.5in Extra High Density"
floppies.
Its unlikely that anyone actually uses these or cares about these
anymore, since we support other floppy types and this change doesn't
hurt - just add it.
hselasky [Thu, 8 Nov 2012 16:13:51 +0000 (16:13 +0000)]
MFC r240750, r241987 and r242126:
Add missing CTLFLAG_TUN flag to tunable sysctls in the USB stack.
Adjust timing parameters of FULL/LOW/HIGH speed USB enumeration
and make these timing parameters tunable. This patch will fix
enumeration with some USB devices.
Fix a typo.
yongari [Thu, 8 Nov 2012 02:06:27 +0000 (02:06 +0000)]
MFC r242425:
Remove TCP/UDP checksum offloading feature for IP fragmented
datagrams. Traditionally upper stack fragmented packets without
computing TCP/UDP checksum and these datagrams were passed to
driver. But there are chances that other packets slip into the
interface queue in SMP world. If this happens firmware running on
MIPS 4000 processor in the controller would see mixed packets and
it shall send out corrupted packets.
While I'm here simplify checksum offloading setup.
nwhitehorn [Tue, 6 Nov 2012 21:54:45 +0000 (21:54 +0000)]
MFC r242315:
Work around broken device tree on last-generation PowerPC iMacs
(PowerMac12,1), which have a mac-io MPIC cell that indifies itself
as the root PIC despite the actual root PIC being on the northbridge.
No CPC945 systems have a mac-io PIC that does anything so just don't
attach on CPC945 (U4) systems.
dim [Tue, 6 Nov 2012 07:46:07 +0000 (07:46 +0000)]
MFC r242380:
Pull in r165377 from upstream llvm trunk:
X86: fcmov doesn't handle all possible EFLAGS, fall back to a branch
for the others.
Otherwise it will try to use SSE patterns and fail horribly if sse is
disabled.
Fixes PR14035.
This should fix the following assertion failure:
Assertion failed: (Reg >= X86::FP0 && Reg <= X86::FP6 && "Expected FP
register!"), function getFPReg, file
contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp, line 330.
which can show up when compiling contrib/compiler-rt, using -march=i686
through -march=pentium3 (CPU's which do support fcmov, but don't support
SSE2).
gjb [Tue, 6 Nov 2012 01:56:39 +0000 (01:56 +0000)]
MFC r227536, r240967:
r227536 (nwhitehorn):
Further automate production release generation by naming files the
right things and generating checksums.
r240967:
- Allow cross-architecture builds with 'generate-release.sh', which
is set by specifying '-a <arch>'. (Only supported for i386 on amd64
and powerpc on powerpc64 currently).
- Change how textproc/docproj is installed:
o Attempt to install from pkg(8);
o Fall back to pkg_add(1) if pkg(8) installation is not
successful;
o Fall back to installing from ports as last resort.
- Ensure the script is run by root[1].
- Get OSVERSION from param.h[1].
mav [Tue, 6 Nov 2012 01:53:25 +0000 (01:53 +0000)]
MFC r241329:
Make graid command line a bit more friendly by allowing volume name or
provider name to be specified instead of geom name (first argument in all
subcommands except label). In most cases there is only one array used
any way, so it is not really useful to make user type ugly geom names like
Intel-f0bdf223 or SiI-732c2b9448cf. Though they can be used in some cases.
gjb [Tue, 6 Nov 2012 01:49:55 +0000 (01:49 +0000)]
MFC r240588:
Update release(7) to reflect changes from r240586 and r240587:
- Remove cvs(1) references.
- Remove CVS* environment references.
- Add default entries for the default SVNROOT for the Ports
Collection, and Documentation Project.
- While here, update 'SGML-based documentation' to 'XML-based',
since the recent SGML->XML conversion.
- Update an example providing SVNROOT environment usage.
melifaro [Tue, 6 Nov 2012 01:18:53 +0000 (01:18 +0000)]
MFC r241502, r241884
Cleanup documentation: cloning route support has been removed in r186119.
Eliminate code checking if found IPv6 rte is dynamic. IPv6 redirects
are using (different) ND-based approach described in RFC 4861. This change
is similar to r241406 which conditionally skips the same check in IPv4.
This change is part of bigger patch eliminating rte locking.
eadler [Tue, 6 Nov 2012 00:55:43 +0000 (00:55 +0000)]
MFC r242514,r242541:
Revert the change that makes less default.
Since I've committed this I've receieved roughly an equal
amount of email thanking me for making this change
and asking me to revert it.
I've resisted making this change because
new users tend to prefer less over more
and these users are the least likely to know
how to change the PAGER on their own.
Requested by: many
Objected to: just as many
Decision made by: core
====
Change default prompt to show ~ again for the home directory
yongari [Tue, 6 Nov 2012 00:54:25 +0000 (00:54 +0000)]
MFC r242348:
TSO engine of L1 requires a separate DMA descriptor for TCP
payload. This means driver has to split a TX buffer into two
pieces of TX buffers when the TX buffer contains both
ethernet/IP/TCP header and partial TCP payload. The controller
does not require all header should be in a TX buffer but driver
forced it to compute IP/TCP header size/offset which is required
parameter to configure DMA descriptor for TSO.
While here, slightly reorder DMA descriptor setup to enhance
readability and remove unnecessary code for TSO(upper stack never
requests TSO when the frame length is less than or equal to MTU).
melifaro [Tue, 6 Nov 2012 00:49:52 +0000 (00:49 +0000)]
MFC r241406.
Do not check if found IPv4 rte is dynamic if net.inet.icmp.drop_redirect is
enabled. This eliminates one mtx_lock() per each routing lookup thus improving
performance in several cases (routing to directly connected interface or routing
to default gateway).
Icmp redirects should not be used to provide routing direction nowadays, even
for end hosts. Routers should not use them too (and this is explicitly restricted
in IPv6, see RFC 4861, clause 8.2).
Current commit changes rnh_machaddr function to 'stock' rn_match (and back) for every
AF_INET routing table in given VNET instance on drop_redirect sysctl change.
This change is part of bigger patch eliminating rte locking.
dim [Sun, 4 Nov 2012 12:05:54 +0000 (12:05 +0000)]
MFC r238864:
Similar to what is already done for Linux, make clang not complain about
unused -g, -emit-llvm or -w arguments when doing linking. E.g. invoking
"clang -g foo.o -o foo" will now be silent.
dim [Sun, 4 Nov 2012 11:46:17 +0000 (11:46 +0000)]
MFC r236258:
For clang, similar to r236137, enable gnu hash generation for dynamic
ELF binaries on x86.
MFC r238863:
Similar to r238472, let clang pass --enable-new-dtags to the linker
invocation by default. Also make sure --hash-style=both is passed for
the same arches as gcc, e.g. arm, sparc and x86.
sbruno [Fri, 2 Nov 2012 23:25:52 +0000 (23:25 +0000)]
MFC r241710
est(4) man page update to document the exposed sysctl r/o variables
available to the user. Should be applicable to all branches and versions
where est(4) exists.
kib [Fri, 2 Nov 2012 14:18:30 +0000 (14:18 +0000)]
MFC r238472:
Pass --enable-new-dtags to the linker invocation by default. If
desired, one can turn off the generation of post-ELF standard dtags by
overriding it with --disable-new-dtags after the default switch.
Immediate effect of the change is that -rpath path is now stored both
in DT_RPATH and DT_RUNPATH tags, which is the right way to provide
rpath for dynamic linker supporting DT_RUNPATH per specification.
Note that rtld on stable/9 interprets DT_RPATH the same as DT_RUNPATH
by default.
kib [Wed, 31 Oct 2012 14:02:51 +0000 (14:02 +0000)]
MFC r242011:
Dirty the newly copied anonymous pages after the wired region is
forked. Otherwise, pagedaemon might reclaim the page without saving
its content into the swap file, resulting in the valid content
replaced by zeroes.
MFC r242012:
Commit the actual text provided by Alan, instead of the wrong update
in r242011.
dim [Wed, 31 Oct 2012 07:57:49 +0000 (07:57 +0000)]
MFC r242007:
Pull in r165367 from upstream llvm trunk:
Make sure always-inline functions get inlined. <rdar://problem/12423986>
Without this change, when the estimated cost for inlining a function with
an "alwaysinline" attribute was lower than the inlining threshold, the
getInlineCost function was returning that estimated cost rather than the
special InlineCost::AlwaysInlineCost value. That is fine in the normal
inlining case, but it can fail when the inliner considers the opportunity
cost of inlining into an internal or linkonce-odr function. It may decide
not to inline the always-inline function in that case. The fix here is just
to make getInlineCost always return the special value for always-inline
functions. I ran into this building clang with libc++. Tablegen failed to
link because of an always-inline function that was not inlined. I have been
unable to reduce the testcase down to a reasonable size.
This should fix the link errors that were reported when atf-run was
compiled with clang -stdlib=libc++. In this case, at -O3 optimization,
some calls to basic_ios::clear() were not inlined, even when the
function was marked __always_inline__.
np [Tue, 30 Oct 2012 19:21:53 +0000 (19:21 +0000)]
MFC r242087:
Initialize the response queue mutex a bit earlier to avoid a panic that
occurs if t3_sge_alloc_qset fails and then t3_free_qset attempts to
destroy an uninitialized mutex.
dim [Tue, 30 Oct 2012 07:51:18 +0000 (07:51 +0000)]
MFC r241957:
Fix several clang warnings in libstdc++, which were exposed by the
recent atf import. These changes are purely cosmetic, no functional
change.
MFC r241959:
Fix a number of other clang warnings in libstdc++, which could appear
when building other C++ software with it. Also fix one actual bug in
libsupc++, which was exposed by such a warning. This latter fix is the
only functional change.
MFC r241960:
For building GNU libstdc++ and libsupc++, filter out libc++-specific and
-std= flags above c++98 or gnu++98 from CXXFLAGS *after* including
bsd.lib.mk, otherwise some additions to CXXFLAGS done in bsd.*.mk might
not be preserved.
dim [Mon, 29 Oct 2012 21:11:37 +0000 (21:11 +0000)]
MFC r241909:
Allow building libc++ with any custom -std=xxx flag. Note that using
-std=gnu++98 will give a lot of warnings with clang, so please use
-std=c++0x or higher, or use NO_WERROR.