Imre Vadász [Sun, 30 Oct 2016 14:31:08 +0000 (15:31 +0100)]
if_iwm - Remove dead code from iwm_pcie_load_cpu_sections().
* If device family is 8000 then iwm_pcie_load_cpu_sections()
won't be called at all (iwm_pcie_load_cpu_sections_8000() is
called in that case) so this piece of code never gets called.
Taken-From: Linux iwlwifi (commit
76f8c0e17edc6eba43f84952e5a87c7f50f69370)
Tomohiro Kusumi [Sat, 29 Oct 2016 15:25:22 +0000 (00:25 +0900)]
sbin/newfs_hammer: Allow 0 for boot_area/memory_log size [3/3]
This commit gives an option to allocate no space for
boot_area/memory_log since these aren't used for anything.
Allow boot_area/memory_log size smaller than HAMMER_{BOOT,MEM}_MINBYTES
if -f is specified. If -f is not specified, MINBYTES are still
low limits for boot_area/memory_log.
This is similar to the way newfs_hammer allows undo size smaller
than 512MB when -f is specified.
Tomohiro Kusumi [Sat, 29 Oct 2016 14:57:04 +0000 (23:57 +0900)]
sbin/newfs_hammer: Allow 0 for boot_area/memory_log size [2/3]
Remove unused minval/maxval args from getsize() after the previous commit.
Tomohiro Kusumi [Sat, 29 Oct 2016 14:53:41 +0000 (23:53 +0900)]
sbin/newfs_hammer: Allow 0 for boot_area/memory_log size [1/3]
This is for the next few commits.
Add a function to check size, and don't use size checks in getsize().
Tomohiro Kusumi [Sat, 29 Oct 2016 14:52:06 +0000 (23:52 +0900)]
sys/vfs/hammer: Rename mem_area_size to memory_log_size
The name of this field has been "memory area size" ever since it
was added in
90ecab35 in 2009, but rename it to "memory log size"
since this is the real name for this field.
(see stdout of newfs_hammer and newfs_hammer(8))
This commit changes a name of ioctl structure field, but doesn't
affect or break userspace, as the ioctl is only used or usable by
hammer volume-add command.
Tomohiro Kusumi [Sat, 29 Oct 2016 13:38:38 +0000 (22:38 +0900)]
sbin/hammer: Fix default behavior of init_{boot,mem}_area_size()
The default algorithm should set value to HAMMER_{BOOT,MEM}_MINBYTES
instead of 0, if value becomes smaller than HAMMER_{BOOT,MEM}_MINBYTES.
It originally had it like this (see
f819215c), but was probably wrong.
Tomohiro Kusumi [Sat, 29 Oct 2016 13:17:18 +0000 (22:17 +0900)]
sbin/hammer: Test high limit in init_{boot,mem}_area_size()
Nothing changes (newfs_hammer checks this on -b and -m via getsize()),
but these functions should have high limit tests as well.
Tomohiro Kusumi [Sat, 29 Oct 2016 12:27:00 +0000 (21:27 +0900)]
sbin/hammer: Remove \n from err(3)/errx(3)
err(3)/errx(3) don't need \n (unless that's intentional).
Most programs don't have \n either.
Tomohiro Kusumi [Sat, 29 Oct 2016 16:20:49 +0000 (01:20 +0900)]
sbin/newfs_hammer: Remove \n from errx(3)
errx(3) doesn't need \n (unless that's intentional).
Most programs don't have \n either.
Tomohiro Kusumi [Sat, 29 Oct 2016 08:23:47 +0000 (17:23 +0900)]
sbin/newfs_hammer: Fix low limit of -b and -m option
HAMMER_{BOOT,MEM}_MINBYTES are larger than HAMMER_BUFSIZE which is 16KB.
Tomohiro Kusumi [Sat, 29 Oct 2016 07:55:11 +0000 (16:55 +0900)]
sbin/newfs_hammer: Check maximum undo fifo size with explicit error message
The undo fifo size has an explicit error message for below 512MB,
so do the same for >1GB.
Tomohiro Kusumi [Sat, 29 Oct 2016 07:03:13 +0000 (16:03 +0900)]
sys/vfs/hammer: Add HAMMER_MIN_UNDO_BIGBLOCKS to set minimum undo fifo to 512MB
Add HAMMER_MIN_UNDO_BIGBLOCKS which is 64 big-blocks in addition
to HAMMER_MAX_UNDO_BIGBLOCKS which is 128 big-blocks.
This not only removes magic number 500*1024*1024 from source,
but also changes minimum undo fifo from 500MB to 512MB in terms
of userspace command.
This means the number of big-blocks created by newfs_hammer by
default (depending on volumes size), and the minumum number of
big-blocks that can be specified, change from 63(504MB) to 64(512MB),
which is trivial given the size of total volumes required by
the filesystem.
I think it's just better to keep the number multiple of 8MB.
As mentioned, one can't assign exact 500MB for undo fifo anyway
as it gets aligned to big-block boundary.
This change doesn't affect the existing filesystem.
Tomohiro Kusumi [Sat, 29 Oct 2016 06:16:14 +0000 (15:16 +0900)]
sys/vfs/hammer: Remove wrong comment
Resizing undo fifo is not supported or even planned.
It's possible to support it, though big-blocks for undo fifo
won't be contiguous blocks when expanding (which is fine too).
Currently it's always contiguous located right after layer1/2,
but before big-blocks for the root inode/pfs in volume#0.
Tomohiro Kusumi [Sat, 29 Oct 2016 05:23:24 +0000 (14:23 +0900)]
sys/vfs/hammer: Rename HAMMER_UNDO_LAYER2 to HAMMER_MAX_UNDO_BIGBLOCKS
This macro has existed since 2008, but should be renamed to something
like HAMMER_MAX_UNDO_BIGBLOCKS.
Big-blocks for undo fifo are separated from big-blocks managed by
layer1/2. In other words, layer1/2 entries do not point to undo fifo.
Undo fifo is fixed size space pointed to directly from volume header,
so the name makes more sense without LAYER2.
Imre Vadász [Sat, 29 Oct 2016 19:58:40 +0000 (21:58 +0200)]
if_iwm - Check for lar_disable tunable, and lar_enabled flag from NVM.
* LAR can be disabled with the hw.iwm.lar.disable tunable now.
* On Family 8000 devices we need to check the lar_enabled flag from
nvm_data in addition to the TLV_CAPA_LAR_SUPPORT flag from the firmware.
* Add a separate IWM_DEBUG_LAR debugging flag.
Taken-From: Linux iwlwifi
Sascha Wildner [Sat, 29 Oct 2016 20:18:33 +0000 (22:18 +0200)]
kernel/efi: Add a sysctl machdep.efi_map to dump the raw EFI memory map.
Taken-from: FreeBSD
Sascha Wildner [Sat, 29 Oct 2016 19:56:38 +0000 (21:56 +0200)]
<sys/efi.h>: Move the efi_next_descriptor() macro to <sys/efi.h>.
While here, rename efi_systbl to efi_systbl_phys and make it kernel
only.
Taken-from: FreeBSD
Sascha Wildner [Sat, 29 Oct 2016 09:40:52 +0000 (11:40 +0200)]
boot/libi386: Use SMAP_TYPE_MEMORY constant.
Sascha Wildner [Sat, 29 Oct 2016 09:37:23 +0000 (11:37 +0200)]
sysctl(8): Fix types of structure format functions.
Imre Vadász [Sat, 29 Oct 2016 08:18:27 +0000 (10:18 +0200)]
if_iwm - Move Smart Fifo handling into if_iwm_sf.c, sync with Linux iwlwifi.
* This change also fixes a possible issue in the existing smart-fifo code,
which set the IWM_SF_CFG_DUMMY_NOTIF_OFF bit on AC8260 chipsets, although
that's only used in iwlwifi for Family 8000 chipsets connected via SDIO
interface.
Taken-From: Linux iwlwifi
Imre Vadász [Mon, 13 Jun 2016 19:13:52 +0000 (21:13 +0200)]
mmc: With this workaround, both eMMC and sd-card slot on hp x2 210 work
Matthew Dillon [Sat, 29 Oct 2016 07:05:16 +0000 (00:05 -0700)]
kernel - adjust sdhc timeouts, cleanup
* Remove my retries stuff from the mmc code. Try to reduce the controller
timeout in the sdhc code.
* Remove the mplock in the mmcsd code, it isn't needed.
Matthew Dillon [Sat, 29 Oct 2016 04:48:11 +0000 (21:48 -0700)]
kernel - Fix mmcsd read/write issues
* b_resid was not being set to 0 on a successful read or write, resulting
in random short-read and short-write returns for requests. Fixing this
fixes nominal block I/O via the mmcsd disk device.
* bus/mmc now uses tsleep() instead of DELAY for the 10ms pause in
request/command wait loops.
* bus/mmc reduces the TIMEOUT from 10 seconds to 1 second after the first
TIMEOUT, only increasing it back to 10 seconds when timeouts stop
occurring. This reduces boot-time delays when a mmc port is dead or
powered down.
Matthew Dillon [Sat, 29 Oct 2016 01:45:45 +0000 (18:45 -0700)]
boot - Add EFI support for placing /boot in a disklabel's 'a' partition.
* Add support to allow /boot to reside in the 'a' partition of a DragonFly
disklabel64. This allow /boot to be in either its own gpt partition or
in the 'a' partition of a disklabel64 inside a gpt partition.
* Nominally allows the following gpt setup where all of DragonFly except
the EFI System partition is contained in a DragonFly disklabel.
2048 204800 0 GPT part - EFI System
206848
124837888 1 GPT part - DragonFly Label64
The disklabel can then be initialized as per the DragonFlyBSD standard,
typically something like (example only):
16 partitions:
# size offset fstype fsuuid
a: 1048576 0 4.2BSD # 1024.000MB
b: 8388608 * swap # 8192.000MB
d: * * HAMMER
Matthew Dillon [Fri, 28 Oct 2016 20:37:44 +0000 (13:37 -0700)]
build - Remove openssl from base (is now permanently replaced by ressl)
* Remove openssl and related code that previous commits by John Marino
replaced with libressl. Remove build hooks, base now only uses libressl.
* Remove crypto/openssl. This has been replaced by the openssl
implementation from ressl.
* Remove lib/libcrypto. This has been replaced by lib/librecrypto which
generates a private_crypo library only used by base.
* Remove lib/libssl. This has been replaced by lib/libressl which
generates a private_ssl library only used by base.
* NOTE: In addition, John has been working on updating dports to ensure
that only the ports-based libssl and libcrypto (both nominally
implemented via ressl and not openssl), and that dports packages
no longer have any chance of using the private versions of these
libraries from base.
Imre Vadász [Fri, 28 Oct 2016 17:13:57 +0000 (19:13 +0200)]
if_iwm - Recognize IWM_FW_PAGING_BLOCK_CMD wide cmd response correctly.
Imre Vadász [Fri, 28 Oct 2016 16:52:11 +0000 (18:52 +0200)]
Revert "if_iwm - SCAN_ABORT_UMAC response doesn't use a wide id"
This reverts commit
cef47a9cbb0a3ce5f18369fed9403d2764884bc2.
Imre Vadász [Fri, 28 Oct 2016 16:36:44 +0000 (18:36 +0200)]
if_iwm - Fix iwm_mvm_send_cmd_pdu(_status) declarations. Make id a uint32_t.
* This fixes cases where the group id of wide commands got lost, e.g. this
happened to the IWM_SCAN_ABORT_UMAC command.
Sascha Wildner [Fri, 28 Oct 2016 11:21:35 +0000 (13:21 +0200)]
installer: Fix comment typo.
Sascha Wildner [Fri, 28 Oct 2016 11:15:44 +0000 (13:15 +0200)]
Sync zoneinfo database with tzdata2016h from ftp://ftp.iana.org/tz/releases
* Asia/Gaza and Asia/Hebron end DST on 2016-10-29 at 01:00, not
2016-10-21 at 00:00. (Thanks to Sharef Mustafa.) Predict that
future fall transitions will be on the last Saturday of October
at 01:00, which is consistent with predicted spring transitions
on the last Saturday of March. (Thanks to Tim Parenti.)
* In Turkey, transitions in 1986-1990 were at 01:00 standard time
not at 02:00, and the spring 1994 transition was on March 20, not
March 27. (Thanks to Kıvanç Yazan.)
* Asia/Colombo now uses numeric time zone abbreviations like "+0530"
instead of alphabetic ones like "IST" and "LKT". Various
English-language sources use "IST", "LKT" and "SLST", with no
working consensus. (Usage of "SLST" mentioned by Sadika
Sumanapala.)
* The 'Theory' file now has a section on interface stability.
(Requested by Paul Koning.) It also mentions features like
tm_zone and localtime_rz that have long been supported by the
reference code.
* The US commentary now mentions Allen and the "day of two noons".
* The Fiji commentary mentions the government's 2016-10-03 press
release. (Thanks to Raymond Kumar.)
Sascha Wildner [Fri, 28 Oct 2016 11:04:31 +0000 (13:04 +0200)]
libcompat: Remove various unneeded functions.
Namely ascftime(), cfree(), cftime(), and getpw().
Nothing in base or dports uses them.
Matthew Dillon [Fri, 28 Oct 2016 06:13:53 +0000 (23:13 -0700)]
build - Fix pam issues, fix 'su', fix libopie.
* libopie needs to link against our private libcrypto. Not doing so
broke the pam opie module, 'su', and numerous related programs.
Matthew Dillon [Fri, 28 Oct 2016 00:48:03 +0000 (17:48 -0700)]
buildkernel - Fix build issue w/libmd changes
* Fix a build issue.
Matthew Dillon [Fri, 28 Oct 2016 00:23:25 +0000 (17:23 -0700)]
build - remove whitespace
* Remove whitespace.
Matthew Dillon [Fri, 28 Oct 2016 00:22:27 +0000 (17:22 -0700)]
build - use libressl md5.h for kernel
* libressl's md5.h needs a minor mod for us to be able to use it
in the kernel build.
Matthew Dillon [Thu, 27 Oct 2016 23:19:47 +0000 (16:19 -0700)]
buildkernel - Fix -j race
* Fix -j race with forwarded header files. Multiple threads will try to
create the same forwarded header file, causing users of the file to
sometimes see a partially written file.
Matthew Dillon [Thu, 27 Oct 2016 23:11:22 +0000 (16:11 -0700)]
build - Rewire secure, remove conflicts from libmd, libcrypt
* Remove /usr/src/secure, folding all of its subsystems into
/usr/src. There's no point having a /usr/src/secure any more,
the system won't run without the secure stuff, the idea that some foreign
actor could segregate it in order to legally download code without crypto
is absurd on the modern internet, and the U.S. government stopped caring
decades ago.
* Remove conflicts from libmd and libcrypt. Essentially this removes
the SHA*_*() and MD5_*() APIs from libmd because these APIs already
exist in lib[re]ssl.
The older SHA*() and MD5*() APIs are partially retained for legacy base
code, but will be removed in a later stage (moved to direct-linking the
needed support source).
Conflicting routines in libcrypt have been renamed and internalized to
be libcrypt-only.
* Major rewiring of the Makefile's to support the changes.
Imre Vadász [Thu, 27 Oct 2016 20:09:38 +0000 (22:09 +0200)]
if_iwm - Adjust if_iwm_sta.h prototypes, don't pass iwm_node to rm_sta().
* Since a RUN -> INIT/SCAN transition seems to immediately destroy the
ieee80211_node for the AP, we can't read the in_assoc value from there.
Instead just directly pass that information via a boolean_t argument.
* Adds iwm_mvm_rm_sta_id() function, which just unconditionally removes
the station from the firmware.
* The iwm_mvm_rm_sta() function shouldn't actually remove the station from
firmware when we are still associated (i.e. during a RUN -> INIT/SCAN
transition).
* So when disassociating we will first call iwm_mvm_rm_sta() to drain the
queues/fifos. Later during disassociation we will then use
iwm_mvm_rm_sta_id() to actually remove the station.
Inspired-By: Linux iwlwifi
Imre Vadász [Thu, 27 Oct 2016 19:58:48 +0000 (21:58 +0200)]
if_iwm - Make powersaving more similar to Linux iwlwifi behaviour.
* Add a per-vap ps_disabled flag, and use it for a workaround which fixes
an association issue when powersaving is enabled.
* Compute flag that should correpsond to the mvmif->bss_conf.ps flag in
Linux's iwlwifi (e.g. this disallows powersaving when not associated
yet).
Inspired-By: Linux iwlwifi
Imre Vadász [Thu, 27 Oct 2016 18:51:54 +0000 (20:51 +0200)]
if_iwm - Clean up if_iwm_power.c a bit. Fix iwm_power_scheme debug print.
François Tigeot [Thu, 27 Oct 2016 19:17:22 +0000 (21:17 +0200)]
drm: Implement and use the Linux i2c API
* This is mainly to the benefit of the drm/i915 driver
* Sync key portions of code with Linux 4.4
* Key drm functions using the DragonFly-specific iic(4) API
have been copied and renamed with an _iic suffix
* The drm/radeon driver no longer being actively developed, the
intent is to keep it functional with a frozen API
Thanks to Johannes Hofmann for figuring out we could live with
a dummy default bit_xfer() implementation
François Tigeot [Thu, 27 Oct 2016 18:43:18 +0000 (20:43 +0200)]
drm: Implement and use Linux struct device
François Tigeot [Thu, 27 Oct 2016 18:22:06 +0000 (20:22 +0200)]
kernel: Rename the struct behind device_t to bsd_device
Thus making it not clash with the Linux struct device anymore
Inspired-by: proposed FreeBSD changes
François Tigeot [Thu, 27 Oct 2016 17:39:29 +0000 (19:39 +0200)]
kernel: Replace struct device* by device_t
We don't want to directly mention struct device anywhere.
Sepherosa Ziehau [Thu, 27 Oct 2016 13:57:52 +0000 (21:57 +0800)]
carp: Add net.inet.carp.setroute to disable routes changes.
It can be useful as described in the related DragonFly-bug.
DragonFly-bug: http://bugs.dragonflybsd.org/issues/2960
Submitted-by: Francis GUDIN
Tomohiro Kusumi [Thu, 27 Oct 2016 07:53:54 +0000 (16:53 +0900)]
sys/vfs/hammer: Rename HAMMER_STRUCTURE_XXX to HAMMER_IOTYPE_XXX
enum hammer_io_type has existed since 2007, but the name of each
element HAMMER_STRUCTURE_XXX doesn't clearly show the purpose of
this enum. It should be HAMMER_IOTYPE_XXX.
This isn't for ondisk structures, so it doesn't affect userspace.
Tomohiro Kusumi [Thu, 27 Oct 2016 06:03:35 +0000 (15:03 +0900)]
sys/vfs/hammer: Add hammer_zone_to_iotype()/hammer_io_to_iostring()
hammer_io_read() uses iotype string only for debugging purpose.
It has nothing to do with the code logic, so separate it from
hammer_io_read().
Tomohiro Kusumi [Thu, 27 Oct 2016 05:01:07 +0000 (14:01 +0900)]
sys/vfs/hammer: Fix zone/iotype/iostring conversion
This isn't explcitly mentioned in documentations/comments/etc,
but HAMMER_STRUCTURE_META_BUFFER is mapped to zone-{2,4,8,9}.
Avoid using default: case when we know that.
hammer_io_read() needs a case for zone-2 with "buffer" string.
This avoids using a wrong message "meta?" for zone-2.
Imre Vadász [Tue, 25 Oct 2016 21:04:45 +0000 (23:04 +0200)]
if_iwm - Switch arguments from iwm_node* to iwm_vap* in if_iwm_power.c.
* Power management handling is per-vap, not per-node, so we should pass
the iwm_vap in these arguments.
zrj [Mon, 17 Oct 2016 17:34:19 +0000 (20:34 +0300)]
LTO: Prevent -flto from creating crashing kernels.
There is something peculiar how default count of lto partitions is created
and used when compiling them. For now just enforce the use of a single one.
GENERIC as it is right now is fine, however turning off certain features
in config, causes the kernel fatal trap 12 very early on boot and reboot.
Note that -g -flto -O2 compilations can easily slurp 1.5-1.8GB of ram!
zrj [Thu, 13 Oct 2016 13:01:29 +0000 (16:01 +0300)]
LTO: Use CC for kernel linking.
This allows linker properly get invoked to deal with LTO objects.
Main differences extra .eh_frame_hdr section and RPATH to /usr/libexec/gcc50.
Both should be harmless. As for -rpath it is coming from gcc spec files,
it should not be set for -nostdlib case.
While there, add missing -Wl,.
zrj [Wed, 12 Oct 2016 11:01:49 +0000 (14:01 +0300)]
crunchgen(1): Switch to use cc for ld.
Using CC is more preferable cause cc has more knowledge how to properly
invoke linker for given objects. This is needed for LTO compilations.
As a bonus this ensures that all objects are targeting correct arch.
zrj [Thu, 13 Oct 2016 07:44:09 +0000 (10:44 +0300)]
gcc47: Disable use of -flto.
There are various issues when this older gcc gets compiled with LTO.
It would need same patches as gcc50 for libgcc* libstdc++.* and
given that linking stage in gcc47 is ordered(serial) it would blow up
buildworld time almost by third on big -jN.
zrj [Wed, 12 Oct 2016 14:10:37 +0000 (17:10 +0300)]
LTO: Prevent -flto being used by any of libstdc++ stuff.
There are some spooky stuff going in this lib (-Wodr, mismathing decl etc).
No reasons to expose that at linking step.
zrj [Wed, 12 Oct 2016 14:08:52 +0000 (17:08 +0300)]
LTO: Prevent -flto being used by main gcc libraries.
These need to be private by compiler and not affected at linking step.
(-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_pic)
zrj [Wed, 12 Oct 2016 14:04:52 +0000 (17:04 +0300)]
LTO: Prevent -flto being used in main system libraries.
There are subtle ways it can get broken specially in libc and libm.
(-plugin-opt=-pass-through=-lc)
Both libpthread.a and rtld-elf could have use of LTO but it is safer
for now not to expose internals. (affects only static libs)
zrj [Wed, 12 Oct 2016 14:00:23 +0000 (17:00 +0300)]
LTO: Prevent -flto exposing csu internals when linking v2.
Userland applications should not see what is happening in these sources,
let alone have behavioural changes for -fxxx flags during linking.
Also make sure -flto does *not* get near any of crt1 stuff.
Caused lost os version elf notes in utilities and even segfaults in pkg(8).
zrj [Wed, 12 Oct 2016 13:57:35 +0000 (16:57 +0300)]
LTO: Prevent -flto being used by host native tools.
Having LTO enabled here will only cause troubles when abi of LTO changes.
zrj [Wed, 12 Oct 2016 13:49:13 +0000 (16:49 +0300)]
libstand: Add -fno-builtin in case of -flto.
Not strictly needed but will help a lot during devel.
No functional change for normal compilation.
zrj [Wed, 5 Oct 2016 11:29:42 +0000 (14:29 +0300)]
binutils225: Trim sources that create empty objects.
zrj [Wed, 5 Oct 2016 11:33:53 +0000 (14:33 +0300)]
gcc50: Build lto-wrapper when buildworld is LTO enabled.
zrj [Mon, 3 Oct 2016 09:52:12 +0000 (12:52 +0300)]
binutils225: Symlink liblto_plugin.so from default base gcc compiler.
For now just for gcc50 cause there is little point for doing it on gcc47.
Also make ar, nm, ranlib utilities dynamic to avoid "Service unavailable".
Warning: even if is it tempting to go and add -flto to CFLAGS now, first
make sure that you are familiar with how -flto actually works!
zrj [Sat, 1 Oct 2016 13:56:23 +0000 (16:56 +0300)]
binutils225: Add bfd-plugins directory to mtree.
This directory intended only for symlinks of binutils plugins.
zrj [Sat, 1 Oct 2016 13:41:51 +0000 (16:41 +0300)]
binutils225: Add plugin support in ar, nm, ranlib.
This finally adds support for --plugin [libplugin.so] flag usage.
Default loadable plugins should be symlinked to binutils private
/usr/libexec/binutils225/bfd-plugins/ directory.
For now that directory is not created by mtree and gcc does not
install symlink to its private liblto_plugin.so.
TBD if we want this implicit LTO support without explicit --plugin.
Note that bfd plugin enabled utilities will try to load *anything*
residing in that directory, even hangman(6)!
Still, support for it is useful for local experimentation since this
allows to test even LLVMgold.so without lots of edits in Makefiles.
zrj [Tue, 25 Oct 2016 11:23:25 +0000 (14:23 +0300)]
kernel/ddb: Fix type mismatch in different objects.
Found while playing with LTO.
While there, use true/false types from <sys/types.h>.
zrj [Tue, 25 Oct 2016 11:09:05 +0000 (14:09 +0300)]
config(8): Comment out some linux emulation remains.
Linux emulation is already removed, no point to have broken symlink
in buildkernel obj directory (X86_64_GENERIC/arch_linux).
Sascha Wildner [Tue, 25 Oct 2016 08:31:59 +0000 (10:31 +0200)]
Remove <sys/stdbool.h>. The kernel has bool etc. in <sys/types.h> now.
Imre Vadász [Mon, 24 Oct 2016 21:31:17 +0000 (23:31 +0200)]
if_iwm - Already call iwm_mvm_power_update_mac() during SCAN<->AUTH paths.
* Otherwise we would never update powersaving settings until we complete
an association, after the first authentication attempt.
* This corresponds to what Linux iwlwifi seems to do.
Imre Vadász [Mon, 24 Oct 2016 21:17:47 +0000 (23:17 +0200)]
if_iwm - Refuse connection to APs with beacon interval < 16.
Taken-From: Linux iwlwifi (git
48bc13072109ea58465542aa1ee31b4e1065468a)
Sascha Wildner [Mon, 24 Oct 2016 17:13:40 +0000 (19:13 +0200)]
routed(8): Remove SGI specific code.
Sascha Wildner [Mon, 24 Oct 2016 17:13:14 +0000 (19:13 +0200)]
mtree(8): Use getcwd().
Sascha Wildner [Mon, 24 Oct 2016 17:10:32 +0000 (19:10 +0200)]
kernel: Mark some syscalls obsolete which are really libc functions.
zrj [Mon, 24 Oct 2016 15:00:22 +0000 (18:00 +0300)]
znew(1): Convert to use sh.
No Korn shell in base system.
zrj [Wed, 19 Oct 2016 10:51:13 +0000 (13:51 +0300)]
gcc47: Allow gcc47 to compile itself at WORLD_CCOPTLEVEL=g.
Override supplied -Og when gcc47 is bootstrapping itself.
-Og is very useful in some heavy debugging seasions so it is better to give
developers an easy workaround than fail for a single part of buildworld.
Only intended for WORLD_CCOPTLEVEL=g compilations to not require to explictly
disable the alternative compiler (NO_ALTCOMPILER=true).
Note that -Og is mostly -O1 with few optimizations disabled.
zrj [Wed, 19 Oct 2016 13:54:35 +0000 (16:54 +0300)]
bsd.sys.mk: Make buildworld permissive for -Os and -Og.
Both -Os and -Og reduce amount of how much code can be inlined.
Since all real issues should be already addressed during standard -O and -O2
buildworlds, make -Winline and -Wmaybe-uninitialized as non fatal diagnostics.
Having -Os and -Og working out of the box will also help to crosscheck if
given WARNS level is not too high and just happened to barelly pass at -O.
zrj [Fri, 7 Oct 2016 11:11:03 +0000 (14:11 +0300)]
xlocale: Few style(9) fixes.
zrj [Fri, 7 Oct 2016 07:20:28 +0000 (10:20 +0300)]
xlocale: Fix type of freelocale().
Per POSIX specs return type should be void. Previous type is apple'ism.
While there, adjust manpages to use the correct <loacle.h> header.
Taken-from: FreeBSD
zrj [Fri, 7 Oct 2016 07:00:27 +0000 (10:00 +0300)]
xlocale: Fix LC_*_MASK bit shifting.
Order must match the one in xlocale_private.h.
This causes the abi breakage, but only two components were right,
others were broken in subtle ways.
Taken-from: FreeBSD (r304703)
zrj [Thu, 6 Oct 2016 14:53:18 +0000 (17:53 +0300)]
Move __weak_reference() after symbols it links to.
Just for consistency. It also will help if prototype visibility would change.
Shouldn't lib/libc/gen/raise.c have weak refs to _raise() and raise()?
zrj [Thu, 6 Oct 2016 09:13:25 +0000 (12:13 +0300)]
<sys/cdefs.h>: Rework __weak_reference() macro.
My LTO build blew away weak symbols from slim LTO objects.
Use __strong_reference() + weak attribute to allow the compiler to catch
extern declarations and not to fold weak symbols as local ones.
Keep previous version as __weak_reference_asm() in _pthread_stubs.c for
now due to several issues (there is a need to do it in a cleaner way).
lib/libc/gen/ucontext.c:
add missing __DECONST for ucp, shouldn't sigreturn take const ucontext_t?
lib/libc/inet/inet_ntoa.c:
add missing #undef inet_ntoa_r
No symbol changes in libc and librt on normal compilation.
While there, add __weak_symbol attribute for future additions.
zrj [Tue, 4 Oct 2016 07:37:35 +0000 (10:37 +0300)]
libc: Rip out pthread_cancel stub symbol.
After looking through use cases i couldn't find any signs of libc
needing to provide stub for pthread_cancel() function.
It doesn't make much sense for any program to use this symbol but
not use the pthread_create(). With this assumption it should be safe
to move out pthread_cancel() from libc to libpthread.so dummy to be
together with weak symbol of pthread_create().
Add special WRlc() macro that creates only the internal version stub
to still provide the _pthread_cancel symbol even if it unused in libc.
Doing just that fixes how gcc libs check for pthread presence when
playing weak symbol chasing games withouto any confingure time tests.
zrj [Tue, 11 Oct 2016 09:49:46 +0000 (12:49 +0300)]
machine/endian.h: Mark bswap functions always inlineable.
This solves many cases where compiler decides to make them as a local
static functions to prevent code size growth and causing -Winline.
Also then it leads to less optimal code generation.
To prevent all of this just mark them as always inlineable.
These functions are intended to be inlined and should be thought as macros.
zrj [Tue, 11 Oct 2016 09:32:19 +0000 (12:32 +0300)]
sbin/hammer: Mark few functions as always inlineable.
This helps with -Os giving -Winline and exceeding
param inline-limit function-groth under -flto.
Only a temporary for -flto testing.
zrj [Wed, 12 Oct 2016 13:44:15 +0000 (16:44 +0300)]
camcontrol: Force scsi_8btou64() to be inlined.
Causes issues with -flto and likely with -Os too.
Has to do with places where it is inlined to, small callsites thus
comparable code size with inlineable function itself. Since code growth
here is acceptable, make sure compiler does not decide otherwise.
zrj [Tue, 4 Oct 2016 05:34:12 +0000 (08:34 +0300)]
<stdio.h>: Always inline functions.
These functions were intended to be the preprocessor macros, so
do not allow compiler to assume that those might not be inlined.
Happens on LTO builds were compiler sees more of a global picture.
While there, do the same to rune helpers in <ctype.h> too.
zrj [Mon, 24 Oct 2016 09:27:12 +0000 (12:27 +0300)]
Unbreak buildkernel.
Follow up to
21137e2f155845448ff3979f5b05b12b642c40a2.
* Update <sys/md5.h> to match sys/kern/md5c.c and lib/libmd/md5c.c.
* Limit exposure of MD5 functions in kernel, only 3 are needed.
TBI: what about casts (void *) for *Init() in sys/opencrypto/xform.c ?
Matthew Dillon [Mon, 24 Oct 2016 06:38:34 +0000 (23:38 -0700)]
libcrypt - Internalize additional symbols
* Internalize additional symbols which conflict with libssl or libressl.
This works around the apache https issue we had by avoiding a buggy
error path that will be fixed upstream. This also fixes a bogus fetch
failures we were having while testing https.
* Make the *_Init() API for MD5, SHA*, etc in libmd compatible with libssl
and libressl.
* Note that libmd is inheritently incompatible with lib[re]ssl, so look
for an upcoming fix for that (maybe we can remove it entirely).
Imre Vadász [Sat, 22 Oct 2016 19:41:00 +0000 (21:41 +0200)]
if_iwm - Handle AUTH->SCAN/INIT and ASSOC->SCAN/INIT better
* Tear down the relevant firmware state (i.e. the station, the vif binding)
in these transition cases.
* Before this case would leave the firmware state lying around, resulting
in errors and firmware panics in the subsequent association attempts.
Imre Vadász [Sun, 23 Oct 2016 21:10:29 +0000 (23:10 +0200)]
if_iwm - Factor out firmware station handling into if_iwm_sta.c.
* This adds iwm_mvm_rm_sta(), which will be used to tear down firmware
state for better/cleaner iwm_newstate() handling.
* Makes iwm_enable_txq() and iwm_mvm_flush_tx_path() non-static, add
the declarations to if_iwm_util.h for now.
Taken-From: Linux iwlwifi
Imre Vadász [Sun, 23 Oct 2016 15:25:51 +0000 (17:25 +0200)]
if_iwm - Deduplicate code in iwm_auth() from an if condition.
Imre Vadász [Sun, 23 Oct 2016 21:08:47 +0000 (23:08 +0200)]
if_iwm - No need for iwm_assoc() in AUTH->ASSOC transition.
* Hence no need to keep stuff in separate iwm_assoc() function, just
inline the stuff into iwm_newstate().
Imre Vadász [Sun, 23 Oct 2016 19:34:08 +0000 (21:34 +0200)]
if_iwm - Properly implement iwm_wme_update callback function.
* Inspired by iwn(4) and Linux iwlwifi.
* Read wme parameters into a buffer within struct iwm_vap in
iwm_wme_update().
* If we aren't associated yet, the new settings will soon be sent
by iwm_mvm_mac_ctxt_changed() during association.
* If we are already associated, explicitly call iwm_mvm_mac_ctxt_changed()
from iwm_wme_update() to send the new settings to the firmware.
* Change iwm_mvm_ac_to_tx_fifo mapping, to fit the freebsd net80211
WME stream class numbering, instead of Linux's enum ieee80211_ac_numbers.
Matthew Dillon [Fri, 21 Oct 2016 21:36:25 +0000 (14:36 -0700)]
kernel - Minor documentation adjustment for arc4random
* Minor documentation adjustment for arc4random
Matthew Dillon [Fri, 21 Oct 2016 20:37:07 +0000 (13:37 -0700)]
kernel - Fix directory scanning bug in msdosfs
* Fix a directory scanning bug in msdosfs where an incorrect d_namlen
was being returned.
Reported-by: htse, t_dfbsd, tuxillo
zrj [Wed, 12 Oct 2016 13:14:49 +0000 (16:14 +0300)]
gdb: Trim sources that create empty objects.
Shouldn't wctype-h.c produce symbols?
zrj [Wed, 12 Oct 2016 13:08:14 +0000 (16:08 +0300)]
diffutils: Trim sources that create empty objects.
There are several things that need to be addressed here.
Should (like in grep(1)) wctype-h.c produce symbols?
zrj [Wed, 12 Oct 2016 12:49:50 +0000 (15:49 +0300)]
librpcsvc: Trim sources that create empty objects.
Here I'm not sure why this was compiled at all or why it has no symbols.
zrj [Tue, 11 Oct 2016 10:29:43 +0000 (13:29 +0300)]
lvm2: Trim sources that create empty objects.
Source is empty, not implemented.
zrj [Tue, 11 Oct 2016 10:23:29 +0000 (13:23 +0300)]
libstdcxx5: Trim sources that create empty objects.
Only when targetting ARM.
zrj [Tue, 11 Oct 2016 10:19:18 +0000 (13:19 +0300)]
libgomp5: Trim sources that create empty objects.
Source files are stub ones, implemented in headers.