2 # This is a makefile fragment that's supposed to set the following
5 # KERNEL_CFLAGS - CFLAGS for kernel code
6 # KERNEL_LDFLAGS - LDFLAGS for kernel code
8 # The bit-ness (32- or 64-bit) is selected by setting BITS to 32 or 64.
10 # The following can be tweaked to change up the KERNEL_CFLAGS variables:
12 # KERNEL_CFLAGS - CFLAGS used by both 32- & 64-bit
13 # KERNEL_CFLAGS_${BITS}
14 # KERNEL_CFLAGS_${CONFIG_MACH}
15 # KERNEL_CFLAGS_${CONFIG_MACH32}
16 # KERNEL_CFLAGS_${CONFIG_MACH64}
17 # - CFLAGS used by specific builds
18 # KERNEL_INCLUDES - -Ifoo directives used by all builds
19 # KERNEL_INCLUDES_${CONFIG_MACH}
20 # - -Ifoo directives for specific build
21 # KERNEL_LDFLAGS - LDFLAGS used by both 32- & 64-bit
27 # TODO: -fstack-protector will fail for 'unix'
32 -fno-inline-functions \
35 -fdiagnostics-show-option \
46 -Wno-unknown-pragmas \
47 -Wno-unused-parameter \
48 -Wno-missing-field-initializers \
49 -fno-inline-small-functions \
50 -fno-inline-functions-called-once \
53 -fno-clone-functions \
61 # TODO: support for debug builds
62 # KERNEL_CFLAGS += -DDEBUG
71 KERNEL_CFLAGS_i386
= \
79 KERNEL_CFLAGS_amd64
= \
88 -fno-strict-aliasing \
90 -fno-optimize-sibling-calls \
95 KERNEL_CFLAGS_sparcv7
=
96 KERNEL_CFLAGS_sparcv9
=
99 -I
${SRCTOP}/usr
/src
/uts
/common \
100 -I
${SRCTOP}/arch
/${CONFIG_MACH}/include \
103 KERNEL_INCLUDES_i386
= \
104 -I
${SRCTOP}/usr
/src
/uts
/intel
106 KERNEL_INCLUDES_sparc
=
109 ${KERNEL_CFLAGS_ALL} \
110 ${KERNEL_CFLAGS_
${BITS}} \
111 ${KERNEL_CFLAGS_
${CONFIG_MACH
${BITS}}} \
112 ${KERNEL_CFLAGS_
${CONFIG_MACH}} \
114 ${KERNEL_INCLUDES_
${CONFIG_MACH}}
125 CC
=/usr
/gcc
/7/bin
/gcc
127 CTFCONVERT
=/opt
/onbld
/bin
/i386
/ctfconvert
128 CTFMERGE
=/opt
/onbld
/bin
/i386
/ctfmerge
133 .if
${VERBOSE
:Uno
} != "yes"
134 CC
:= @echo
" CC ($${BITS}) $${.IMPSRC}";${CC}
135 LD
:= @echo
" LD ($${BITS}) $${.TARGET}";${LD}
136 CTFCONVERT
:= @
${CTFCONVERT}