+ * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if
+ we are packing a structure. This allows a structure with only
+ bytes to be aligned on a byte boundary and have no padding on a
+ m68k.
Gcc used to create code to create trampolines (for nested functions) for
m68k without properly flushing the caches, leading to segmentation violations
on 68040/68060 systems.
Fixed by:
- importing the gcc 2.7.2.3 trampoline creation code into arch/m68k/m68k.h
- adding the OS-specific code for this into arch/m68k/netbsd.h
These changes have been reflected in gcc2netbsd.
- add /usr/include/objc to mtree
- set libobjc/Makefile INCSDIR=/usr/include/objc
- put to-be-installed includes to libobjc/Makefile into INCS=
- add the Objective-C source files to the appropriate lists.
- as the objc include files are installed now, no need to patch most
of the files.
- add /usr/include/obj/* to src/distrib/comp/mi
The changes have been applied to gcc2netbsd, and this script was then used
to create the new version of the files in libobjc/.
PIC support for GCC/arm.
This fix is untested on platforms other than the ARM and is only enabled
if GCC_27_ARM32_PIC_SUPPORT is defined.
These fixes are only required for GCC 2.7 and will not be needed in 2.8+
Norm Rubin and Richard Earnshaw.
PIC support for ARM will form part of the standard GCC tree from 2.8
onwards.
Also default to building soft-float as the resulting code will be a lot
faster then using emulated floating point instructions.
emit a call _cacheflush() to ensure Icache consistency
after writing trampoline code for lexical closures onto the stack
(i.e., into the Dcache).
GCC 2.x (x <= 7.2.2) emits a call cacehflush(), polluting the user
namespace.
memref_referenced_p(); otherwise there are cases where a later set that changes
the memory location may be moved too early, and thus the new value will be
(incorrectly) used where it should not be.