Joseph Mulloy
2018-Mar-13 02:00 UTC
Call for Testing: 11.1-RELEASE Meltdown/Spectre mitigation merge
Hi, I'm trying to test the Meltdown mitigation by applying the patch at https://people.freebsd.org/~emaste/patches/amd64_11.1_meltdown.3.patch and I'm getting a ton of error when I try to build the kernel with "make buildkernel". I've tried applying the patch against release/11.1.0 and releng/11.1 and they both fail with the same compiler errors. I tried running make clean and that doesn't fix it. I'm probably doing something wrong, I couldn't find any instructions on how to apply the patch, it took me a while to figure it out even with the man page. Perhaps there's some step in the process that I don't know about. I haven't been able to find any docs about doing this sort of thing. Thanks for any help you can provide. I would like to help with the testing. I'm applying the patch with the following command and it seems to apply just fine. patch < amd64_11.1_meltdown.3.patch This is the output of svn info root at server1:/usr/src # svnlite info Path: . Working Copy Root Path: /usr/src URL: https://svn.freebsd.org/base/release/11.1.0 Relative URL: ^/release/11.1.0 Repository Root: https://svn.freebsd.org/base Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f Revision: 330824 Node Kind: directory Schedule: normal Last Changed Author: gjb Last Changed Rev: 321354 Last Changed Date: 2017-07-21 20:55:38 +0000 (Fri, 21 Jul 2017) Below are the compiler errors I'm getting. -------------------------------------------------------------- >>> stage 3.1: building everything -------------------------------------------------------------- cd /usr/obj/usr/src/sys/GENERIC; COMPILER_VERSION=40000 COMPILER_FEATURES=c++11 COMPILER_TYPE=clang COMPILER_FREEBSD_VERSION=1100504 MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=amd64 MACHINE=amd64 CPUTYPE= GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/us r/bin GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac CC="cc -target x86_64-unknown-freebsd11.1 --sysroot=/usr/obj/usr/src/tmp -B/usr/obj/usr/src/tmp/usr/bin" CXX="c++ -targ et x86_64-unknown-freebsd11.1 --sysroot=/usr/obj/usr/src/tmp -B/usr/obj/usr/src/tmp/usr/bin" CPP="cpp -target x86_64-unknown-freebsd11.1 --sysroot=/usr/obj/usr/src/tmp -B/usr/obj/usr/src/tmp/usr/bin" AS="as" AR="ar" LD="ld" NM=nm OBJDUMP=objdump OBJ COPY="objcopy" RANLIB=ranlib STRINGS= SIZE="size" INSTALL="sh /usr/src/tools/install.sh" PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tm p/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin make -m /usr/src/share/mk KERNEL=kernel all -DNO_MODULES_OBJ machine -> /usr/src/sys/amd64/include x86 -> /usr/src/sys/x86/include cc -target x86_64-unknown-freebsd11.1 --sysroot=/usr/obj/usr/src/tmp -B/usr/obj/usr/src/tmp/usr/bin -c -O2 -pipe -fno-strict-aliasing -g -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_glob al.h -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -MD -MF.depend.genassym.o -MTgenassym.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -gdwarf-2 -Wall -Wre dundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error-tau tological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -Wno-error-unused-function -Wno-error-pointer-sign -Wno-error-shift-negative-value -Wno-error-address-of-packed-member -mno-aes -mno-avx -std=iso9899:1999 /usr/src/sys/amd64/amd64/ genassym.c /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:38:21: note: expanded from macro 'ASSYM' char name ## sign[((value) < 0 ? 1 : 0) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:39:28: note: expanded from macro 'ASSYM' char name ## w0[(ASSYM_ABS(value) & 0xFFFFU) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:28: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:39:28: note: expanded from macro 'ASSYM' char name ## w0[(ASSYM_ABS(value) & 0xFFFFU) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:44: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:39:28: note: expanded from macro 'ASSYM' char name ## w0[(ASSYM_ABS(value) & 0xFFFFU) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:66: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:40:29: note: expanded from macro 'ASSYM' char name ## w1[((ASSYM_ABS(value) & 0xFFFF0000UL) >> 16) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:28: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:40:29: note: expanded from macro 'ASSYM' char name ## w1[((ASSYM_ABS(value) & 0xFFFF0000UL) >> 16) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:44: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:40:29: note: expanded from macro 'ASSYM' char name ## w1[((ASSYM_ABS(value) & 0xFFFF0000UL) >> 16) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:66: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:41:29: note: expanded from macro 'ASSYM' char name ## w2[((ASSYM_ABS(value) & 0xFFFF00000000ULL) >> 32) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:28: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:41:29: note: expanded from macro 'ASSYM' char name ## w2[((ASSYM_ABS(value) & 0xFFFF00000000ULL) >> 32) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:44: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:41:29: note: expanded from macro 'ASSYM' char name ## w2[((ASSYM_ABS(value) & 0xFFFF00000000ULL) >> 32) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:66: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:42:29: note: expanded from macro 'ASSYM' char name ## w3[((ASSYM_ABS(value) & 0xFFFF000000000000ULL) >> 48) + ASSYM_BIAS] ^~~~~ /usr/src/sys/sys/assym.h:35:28: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:42:29: note: expanded from macro 'ASSYM' char name ## w3[((ASSYM_ABS(value) & 0xFFFF000000000000ULL) >> 48) + ASSYM_BIAS] ^~~~~ /usr/src/sys/sys/assym.h:35:44: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:42:29: note: expanded from macro 'ASSYM' char name ## w3[((ASSYM_ABS(value) & 0xFFFF000000000000ULL) >> 48) + ASSYM_BIAS] ^~~~~ /usr/src/sys/sys/assym.h:35:66: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:195:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RAX, offsetof(struct pti_frame, pti_rax)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:38:21: note: expanded from macro 'ASSYM' char name ## sign[((value) < 0 ? 1 : 0) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:195:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RAX, offsetof(struct pti_frame, pti_rax)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:39:28: note: expanded from macro 'ASSYM' char name ## w0[(ASSYM_ABS(value) & 0xFFFFU) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:28: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:195:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RAX, offsetof(struct pti_frame, pti_rax)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:39:28: note: expanded from macro 'ASSYM' char name ## w0[(ASSYM_ABS(value) & 0xFFFFU) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:44: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:195:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RAX, offsetof(struct pti_frame, pti_rax)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:39:28: note: expanded from macro 'ASSYM' char name ## w0[(ASSYM_ABS(value) & 0xFFFFU) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:66: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:195:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RAX, offsetof(struct pti_frame, pti_rax)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:40:29: note: expanded from macro 'ASSYM' char name ## w1[((ASSYM_ABS(value) & 0xFFFF0000UL) >> 16) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:28: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ /usr/src/sys/amd64/amd64/genassym.c:195:16: error: offsetof of incomplete type 'struct pti_frame' ASSYM(PTI_RAX, offsetof(struct pti_frame, pti_rax)); ^ ~~~~~~ /usr/src/sys/sys/types.h:292:31: note: expanded from macro 'offsetof' #define offsetof(type, field) __offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/cdefs.h:492:34: note: expanded from macro '__offsetof' #define __offsetof(type, field) __builtin_offsetof(type, field) ^ ~~~~ /usr/src/sys/sys/assym.h:40:29: note: expanded from macro 'ASSYM' char name ## w1[((ASSYM_ABS(value) & 0xFFFF0000UL) >> 16) + ASSYM_BIAS]; \ ^~~~~ /usr/src/sys/sys/assym.h:35:44: note: expanded from macro 'ASSYM_ABS' #define ASSYM_ABS(value) ((value) < 0 ? -((value) + 1) + 1ULL : (value)) ^~~~~ /usr/src/sys/amd64/amd64/genassym.c:194:32: note: forward declaration of 'struct pti_frame' ASSYM(PTI_RDX, offsetof(struct pti_frame, pti_rdx)); ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. *** Error code 1 Stop. make[2]: stopped in /usr/obj/usr/src/sys/GENERIC *** Error code 1 Stop. make[1]: stopped in /usr/src *** Error code 1 Stop. make: stopped in /usr/src
J David
2018-Mar-13 02:10 UTC
Call for Testing: 11.1-RELEASE Meltdown/Spectre mitigation merge
On Mon, Mar 12, 2018 at 10:00 PM, Joseph Mulloy <freebsd-stable at joe.mulloy.me> wrote:> /usr/src/sys/amd64/amd64/genassym.c:194:16: error: offsetof of incomplete > type ?struct pti_frame'This might be the error you get if frame.h did not patch correctly. It?s a known issue with the patch (the SVN tag doesn?t match). Check for a /usr/src/sys/amd64/include/frame.h.rej file. If so, just fix the SVN tag and re-apply and it should build correctly. If that?s your issue, there should be an updated version available soon, if not already. Good luck!