Revert "linux32: add a hack to avoid redefining the type of the savefpu tag"

This reverts commit 0f6829488e.
Also it changes the type of md_usr_fpu_save struct mdthread member
to void *, which is what uncovered this trouble.  Now the save area
is untyped, but since it is hidden behind accessors, it is not too
significant.  Since apparently there are consumers affected outside
the tree, this hack is better than one from the reverted revision.

PR:	258678
Reported by:	cy
Reviewed by:	cy, kevans, markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D32060
This commit is contained in:
Konstantin Belousov 2021-09-22 21:54:39 +03:00
parent 624a34b87b
commit e36d0e86e3
3 changed files with 2 additions and 4 deletions

View File

@ -75,7 +75,7 @@ struct mdthread {
int md_efirt_dis_pf; /* (k) */
struct pcb md_pcb;
vm_offset_t md_stack_base;
struct savefpu *md_usr_fpu_save;
void *md_usr_fpu_save;
};
struct mdproc {

View File

@ -60,7 +60,7 @@ linux${SFX}_assym.h: linux${SFX}_genassym.o
sh ${SYSDIR}/kern/genassym.sh linux${SFX}_genassym.o > ${.TARGET}
.if ${MACHINE_CPUARCH} == "amd64"
VDSOFLAGS=-DCOMPAT_FREEBSD32 -DCOMPAT_LINUX32 -D__M32_BROKEN_MODULE_HACK__ -m32
VDSOFLAGS=-DCOMPAT_FREEBSD32 -DCOMPAT_LINUX32 -m32
.else
VDSOFLAGS=-mregparm=0
.endif

View File

@ -123,12 +123,10 @@ struct savexmm {
} __aligned(16);
#ifdef __i386__
#ifndef __M32_BROKEN_MODULE_HACK__
union savefpu {
struct save87 sv_87;
struct savexmm sv_xmm;
};
#endif /* __M32_BROKEN_MODULE_HACK__ */
#else
/* Floating point context. (amd64 fxsave/fxrstor) */
struct savefpu {