reports an RPI-B alignment fault for -r301815 (the snapshot) "when connecting
https://lists.freebsd.org/pipermail/svn-src-head/2016-June/088339.html ) has a
fix for networking vs. alignment handling for armv6 contexts that might be
> Author: ian
> Date: Mon Jun 13 16:48:27 2016
> New Revision: 301872
> Do not define __NO_STRICT_ALIGNMENT for armv6. While the requirements
> are no longer natural-alignment strict, there are still some restrictions.
> FreeBSD network code assumes data is naturally-aligned or is running
> on a platform with no restrictions; pointers are not annotated to
> indicate the data pointed to may be packed or unaligned. The clang
> optimizer can sometimes combine the load or store of a pair of adjacent
> 32-bit values into a single doubleword load/store, and that operation
> requires at least 4-byte alignment. __NO_STRICT_ALIGNMENT can lead
> to tcp headers being only 2-byte aligned.
> Note that alignment faults remain disabled on armv6, this change reverts
> only the defining of the symbol which leads to some overly-agressive code
> shortcuts when building common/shared drivers and network code for arm.
> Approved by: re(kib)
> Modified: head/sys/arm/include/_types.h
> --- head/sys/arm/include/_types.h Mon Jun 13 11:19:06 2016
> +++ head/sys/arm/include/_types.h Mon Jun 13 16:48:27 2016
> @@ -43,10 +43,6 @@
> #error this file needs sys/cdefs.h as a prerequisite
> -#if __ARM_ARCH >= 6
> -#define __NO_STRICT_ALIGNMENT
> * Basic types upon which most other types are built.
markmi at dsl-only.net
email@example.com mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"