When VECTX is enabled as a kernel option and non-EFI loaders are built, many reads will fail due to the mis-match of whether LOADER_VERIEXEC_VECTX or not in readin.h. Source that includes bootstrap.h must ensure the kernel option agrees with the compile time CFLAGS in the various make related files.
Details
Details
Tested with the EFI and i386 loaders.
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
stand/i386/libi386/Makefile | ||
---|---|---|
20 | This adds console.c to the SRCS for libi386.a, which causes link failures: ===> i386/zfsboot (all) [...] ld: error: duplicate symbol: getchar >>> defined at cons.c:127 (/usr/src/stand/i386/common/cons.c:127) >>> cons.o:(getchar) >>> defined at console.c:105 (/usr/src/stand/common/console.c:105) >>> console.o:(.text.getchar+0x0) in archive /usr/obj/usr/src/amd64.amd64/stand/i386/libi386/libi386.a Those two getchar functions are completely different. Instead of including loader.mk in these new places, refactor the VERIEXEC-related variables into a new file named veriexec.mk, and include that instead. |
stand/veriexec.mk | ||
---|---|---|
2 | # $FreeBSD$ seems pointless now but at least kind of implies the license. Not our problem though. |
Comment Actions
Seems okay to me, but @sjg would be the best to look at it, since the loader veriexec bits are his pet project.
stand/veriexec.mk | ||
---|---|---|
9 | I don't think this one makes sense without LOADER_VERIEXEC so should be within the scope of the first block. Otherwise looks good |
stand/veriexec.mk | ||
---|---|---|
2 | Add it if you are merging to 12, otherwise omit is the rule. |