summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use compile-time detection of 64-bit addressing.ru2005-12-041-3/+3
|
* For log1pf(), fixed the approximations to sqrt(2), sqrt(2)-1 andbde2005-12-042-8/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sqrt(2)/2-1. For log1p(), fixed the approximation to sqrt(2)/2-1. The end result is to fix an error of 1.293 ulps in log1pf(0.41421395540 (hex 0x3ed413da)) and an error of 1.783 ulps in log1p(-0.292893409729003961761) (hex 0x12bec4 00000001)). The former was the only error of > 1 ulp for log1pf() and the latter is the only such error that I know of for log1p(). The approximations don't need to be very accurate, but the last 2 need to be related to the first and be rounded up a little (even more than 1 ulp for sqrt(2)/2-1) for the following implementation-detail reason: when the arg (x) is not between (the approximations to) sqrt(2)/2-1 and sqrt(2)-1, we commit to using a correction term, but we only actually use it if 1+x is between sqrt(2)/2 and sqrt(2) according to the first approximation. Thus we must ensure that !(sqrt(2)/2-1 < x < sqrt(2)-1) implies !(sqrt(2)/2 < x+1 < sqrt(2)), where all the sqrt(2)'s are really slightly different approximations to sqrt(2) and some of the "<"'s are really "<="'s. This was not done. In log1pf(), the last 2 approximations were rounded up by about 6 ulps more than needed relative to a good approximation to sqrt(2), but the actual approximation to sqrt(2) was off by 3 ulps. The approximation to sqrt(2)-1 ended up being 4 ulps too small, so the algoritm was broken in 4 cases. The result happened to be broken in 1 case. This is fixed by using a natural approximation to sqrt(2) and derived approximations for the others. In logf(), all the approximations made sense, but the approximation to sqrt(2)/2-1 was 2 ulps too small (a tiny amount, since we compare with a granularity of 2**32 ulps), so the algorithm was broken in 2 cases. The result was broken in 1 case. This is fixed by rounding up the approximation to sqrt(2)/2-1 by 2**32 ulps, so 2**32 cases are now handled a little differently (still correctly according to my assertion that the approximations don't need to be very accurate, but this has not been checked).
* Use a compile-time detection of 64-bit addressing so that thisru2005-12-041-11/+8
| | | | | | compiles on 32-bit machines. Reported by: ale
* Fix -Wundef from compiling the amd64 LINT.ru2005-12-0432-128/+135
|
* Fix -Wunder and make the sbus code really compile only on sparc64.ru2005-12-041-3/+3
|
* Fix -Wundef warnings and properly check the size of long, FWIW.ru2005-12-041-3/+3
|
* Oops, the bug is still here, but reimplement the cpp(1) conditional properly.ru2005-12-041-0/+9
|
* There no longer seems to be this bug in gcc(1). Remove theru2005-12-041-9/+0
| | | | | badly implemented workaround that caused a workaround to be applied to all architectures, not only amd64.
* Merge NetBSD's revision 1.27. This bug can be observed eg. when browsingstefanf2005-12-041-12/+34
| | | | | | | | | | | | | | | | | | | | | through the history in sh. | Refresh bug reported by Julien Torres: | | going from: | activate -verbose | to: | reset -activation | results in: | reset -activationverbose" | instead of: | reset -activation | | This is because we choose to insert "reset -" before the current line, | and the delete "e -" and insert "ion" in the appropriate place. The | cleareol code did not handle this case properly; we now cleareol to | the maximum number of characters of the first difference, the second | difference and the difference in line length.
* Use the usual volatile hack to trick gcc into clipping any extra precisionbde2005-12-041-1/+1
| | | | | | | | on assignment. Extra precision on i386's broke hi+lo decomposition in the usual way. It caused all except 1 of the 62343 errors of more than 1 ulp for log1pf() on i386's with gcc -O [-fno-float-store].
* Fix on sparc64.ru2005-12-041-6/+2
|
* Recognize the Sony Clie PEG-TJ37.bmah2005-12-042-0/+2
| | | | | Tested on: My PEG-TJ37 and my RELENG_6 workstation MFC after: 1 week
* Adhoc mode fixups:sam2005-12-043-28/+56
| | | | | | | | | | | | | | o plug memory leak in adhoc mode: on rx the sender may be the current master so simply checking against ic_bss is not enough to identify if the packet comes from an unknown sender; must also check the mac address o split neighbor node creation into two routines and fillin state of nodes faked up on xmit when a beacon or probe response frame is later received; this ensures important state like the rate set and advertised capabilities are correct Obtained from: netbsd MFC after: 1 week
* Fix -Wundef.ru2005-12-0440-77/+87
|
* Add "yet another" moused(8) hack: suspend handling mouse events when SIGUSR1philip2005-12-042-6/+38
| | | | | | | | | is caught. Can be assigned to a window manager shortcut to prevent accidents with touchpads. PR: bin/89357 Submitted by: Nick Hibma <nick -at- van-laarhoven.org> MFC after: 1 week
* Use __LP64__ to check for the 64-bit pointer type, and fix -Wundef.ru2005-12-041-4/+2
|
* Eliminate unneeded preallocation at initialization.alc2005-12-032-2/+0
| | | | Reviewed by: tegge
* Use a simpler way to reach the <machine> include dir, which shouldru2005-12-031-2/+1
| | | | also work on pc98.
* Force any hardwire-routed interrupts to level trigger and active lowjhb2005-12-031-2/+4
| | | | | | | | | | polarity. Some machines route PCI IRQs to an ISA IRQ but fail to include an interrupt override entry to set the polarity and trigger of the given ISA IRQ in their MADT table. PR: usb/74989 Reported by: Julien Gabel jpeg at thilelli dot net MFC after: 1 week
* Move the 2->3 upgrade kit on the attic.ru2005-12-034-226/+0
|
* Document "makeoption", "nocpu", and "nomakeoptions" directives.ru2005-12-032-4/+58
| | | | (Indeed this should be repo-copied to src/usr.sbin/config/.)
* Add "makeoption" as an alias to "makeoptions", for symmetry.ru2005-12-031-0/+1
|
* Remove workaround for old GCC bugs.rodrigc2005-12-031-5/+0
| | | | Submitted by: ru
* - Move the declaration of struct upa_ranges and the UPA_RANGE_* macrosmarius2005-12-035-54/+36
| | | | | | | | | | | | from sys/sparc64/include/ofw_upa.h to sys/sparc64/pci/ofw_pci.h and rename them to struct ofw_pci_ranges and OFW_PCI_RANGE_* respectively. This ranges struct only applies to host-PCI bridges but no to other bridges found on UPA. At the same time it applies to all host-PCI bridges regardless of whether the interconnection bus is Fireplane/ Safari, JBus or UPA. - While here rename the PCI_CS_* macros in sys/sparc64/pci/ofw_pci.h to OFW_PCI_CS_* in order to be consistent and change this header to use uintXX_t instead of u_intXX_t.
* Eliminate unneeded preallocation at initialization.alc2005-12-031-2/+0
| | | | Reviewed by: tegge
* - Adhere style(9) (don't use function calls in initializers).marius2005-12-031-3/+5
| | | | - Use FBSDID.
* Remove unused sc_node from softc.marius2005-12-031-2/+0
|
* - Adhere style(9) (don't use function calls in initializers, use uintXX_tmarius2005-12-035-29/+40
| | | | | instead of u_intXX_t). - Use FBSDID.
* Add [-J jid_file] option to write out a JidFile, similar to a PidFile,philip2005-12-032-6/+30
| | | | | | | | | | containing the jailid, path, hostname, ip and the command used to start the jail. PR: misc/89883 Submitted by: L. Jason Godsey <lannygodsey -at- yahoo.com> Reviewed by: phk MFC after: 1 week
* - Register the PCI bus error interrupt handler according to which half ofmarius2005-12-031-26/+36
| | | | | | | | | | | | | | | | | | the bridge (PCI bus A or B) we are attaching to rather than registering both handlers at once when attaching to the first half we encounter. This is a bit cleaner as it corresponds to which PCI bus error interrupt actually is assigned to the respective half by the OFW and allows to collapse both PCI bus error interrupt handlers into one function easily. - Use the actual RID of the respective interrupt resource as index into sc_irq_res and also use it when allocating the resource. For now this is a bit cleaner and will be mandatory later on. - According to OpenSolaris the spare hardware interrupt is used as the over-temperature interrupt in systems with Psycho bridges. Unlike as with the SBus-based workstations I didn't manage to trigger it when covering the fan outlets of an U60 but better be safe than sorry and register a handler anyway. MFC after: 1 month
* - Improve the comment regarding the workaround for the E250 interrupt mapmarius2005-12-032-17/+31
| | | | | | | | | bug by explaining what the problem is and how the workaround works. - Fix some cosmetics nits, mainly properly terminate sentences in comments, which I missed when backporting the style changes to psycho(4) in psycho.c rev. 1.54 due to lack of corresponding code. - The "USIIe version of the Sabre bridge" actually is termed "Hummingbird"; name it as such in comments and messages.
* Add "rdonly" to global_opts, and parse it in vfs_donmount().rodrigc2005-12-031-0/+4
| | | | Requested by: rwatson
* Convert to use the recently introduced set of ofw_bus_gen_get_*() formarius2005-12-032-93/+40
| | | | | | providing the ofw_bus KOBJ interface. Tested by: grehan
* Fixed fdlibm[+cygnus] logbf() and logb() on denormals. Adjustmentbde2005-12-032-8/+20
| | | | | | | | according to the highest nonzero bit in a denormal was missing. fdlibm ilogbf() and ilogb() have always had the adjustment, but only use a small part of their method for handling denormals; use the normalization method in log[f]() for the main part.
* Fix prototype.ru2005-12-031-1/+1
|
* Fix type of argument.ru2005-12-031-1/+1
|
* Restored removal of the special handling needed for a result of +-0.bde2005-12-031-0/+2
| | | | | | | | | | | It was lost in rev.1.9. The log message for rev.1.9 says that the special case of +-0 is handled twice, but it was only handled once, so it became unhandled, and this happened to break half of the cases that return +-0: - round-towards-minus-infinity: 0 < x < 1: result was -0 not 0 - round-to-nearest: -0.5 <= x < 0: result was 0 not -0 - round-towards-plus-infinity: -1 < x < 0: result was 0 not -0 - round-towards-zero: -1 < x < 0: result was 0 not -0
* Break hard sentence break.ru2005-12-031-1/+2
|
* Add an entry explaining the changes which add local scriptsdougb2005-12-031-0/+10
| | | | to the base rcorder.
* Simplified the fix in rev.1.3. Instead of using long double forbde2005-12-031-8/+2
| | | | | | | | | | TWO52[sx] to trick gcc into correctly converting TWO52[sx]+x to double on assignment to "double w", force a correct assignment by assigning to *(double *)&w. This is cleaner and avoids the double rounding problem on machines that evaluate double expressions in double precision. It is not necessary to convert w-TWO52[sx] to double precision on return as implied in the comment in rev.1.3, since the difference is exact.
* Fixed rint(x) in the following cases:bde2005-12-031-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (1) In round-to-nearest mode, on all machines, fdlibm rint() never worked for |x| = n+0.75 where n is an even integer between 262144 and 524286 inclusive (2*131072 cases). To avoid double rounding on some machines, we begin by adjusting x to a value with the 0.25 bit not set, essentially by moving the 0.25 bit to a lower bit where it works well enough as a guard, but we botched the adjustment when log2(|x|) == 18 (2*2**52 cases) and ended up just clearing the 0.25 bit then. Most subcases still worked accidentally since another lower bit serves as a guard. The case of odd n worked accidentally because the rounding goes the right way then. However, for even n, after mangling n+0.75 to 0.5, rounding gives n but the correct result is n+1. (2) In round-towards-minus-infinity mode, on all machines, fdlibm rint() never for x = n+0.25 where n is any integer between -524287 and -262144 inclusive (262144 cases). In these cases, after mangling n+0.25 to n, rounding gives n but the correct result is n-1. (3) In round-towards-plus-infinity mode, on all machines, fdlibm rint() never for x = n+0.25 where n is any integer between 262144 and 524287 inclusive (262144 cases). In these cases, after mangling n+0.25 to n, rounding gives n but the correct result is n+1. A variant of this bug was fixed for the float case in rev.1.9 of s_rintf.c, but the analysis there is incomplete (it only mentions (1)) and the fix is buggy. Example of the problem with double rounding: rint(1.375) on a machine which evaluates double expressions with just 1 bit of extra precision and is in round-to-nearest mode. We evaluate the result using (double)(2**52 + 1.375) - 2**52. Evaluating 2**52 + 1.375 in (53+1) bit prcision gives 2**52 + 1.5 (first rounding). (Second) rounding of this to double gives 2**52 + 2.0. Subtracting 2**52 from this gives 2.0 but we want 1.0. Evaluating 2**52 + 1.375 in double precision would have given the desired intermediate result of 2**52 + 1.0. The double rounding problem is relatively rare, so the botched adjustment can be fixed for most machines by removing the entire adjustment. This would be a wrong fix (using it is 1 of the bugs in rev.1.9 of s_rintf.c) since fdlibm is supposed to be generic, but it works in the following cases: - on all machines that evaluate double expressions in double precision, provided either long double has the same precision as double (alpha, and i386's with precision forced to double) or my earlier fix to use a long double 2**52 is modified to avoid using long double precision. - on all machines that evaluate double expressions in many more than 11 bits of extra precision. The 1 bit of extra precision in the example is the worst case. With N bits of extra precision, it sufices to adjust the bit N bits below the 0.5 bit. For N >= about 52 there is no such bit so the adjustment is both impossible and unnecessary. The fix in rev.1.9 of s_rintf.c apparently depends on corresponding magic in float precision: on all supported machines N is either 0 or >= 24, so double rounding doesn't occur in practice. - on all machines that don't use fdlibm rint*() (i386's). So under FreeBSD, the double rounding problem only affects amd64 now, but should only affect i386 in future (when double expressions are evaluated in long double precision).
* Switch BUILD_ARCH in Makefile to use uname -p suggested by ru.ambrisko2005-12-034-7/+43
| | | | | | | | | | | | | | Switch strncpy to strlcpy suggested by gad and issue found by pjd. Add to uname(3) man page describing: UNAME_s UNAME_r UNAME_v UNAME_m Add to getosreldate(3) man page describing: OSVERSION Submitted by: ru, pjd/gad Reviewed by: ru (man pages)
* Remove implementation-defined, it has already been described in NOTESdavidxu2005-12-031-5/+0
| | | | section.
* Remove implementation-defined sentences.davidxu2005-12-033-22/+5
|
* Simplify parsing of mount options by passingrodrigc2005-12-031-1/+1
| | | | "rw" option down to kernel, since vfs_donmount() can now parse it.
* Add option P1003_1B_MQUEUE.davidxu2005-12-031-0/+1
|
* Fix lots of markup and content bug.davidxu2005-12-037-139/+201
| | | | Submitted by: ru
* Don't bogusly depend on dhclient. It's now run either bybrooks2005-12-031-1/+1
| | | | /etc/rc.d/netif or from devd rather than by the startup scripts.
* - Add "rw" mount option to global_opts.rodrigc2005-12-031-0/+10
| | | | | - In vfs_donmount(), parse "ro", "noro", and "rw", in order to set or unset the MNT_RDONLY filesystem flag.
* Merge DRM CVS as of 2005-12-02, adding i915 DRM support thanks to Alexey Popov,anholt2005-12-037-5/+18
| | | | and a new r300 PCI ID.
OpenPOWER on IntegriCloud