bsd.cpu.gcc(47|50).mk: Return support for CPUTYPE i386
authorJohn Marino <draco@marino.st>
Wed, 9 Mar 2016 15:22:50 +0000 (16:22 +0100)
committerJohn Marino <draco@marino.st>
Thu, 10 Mar 2016 14:40:14 +0000 (15:40 +0100)
The /boot loader and friends are still 32-bit.  While -m32 -march=native
should be okay in most cases, let's return limited support for
CPUTYPE=i386 which is explicitly specified in the world make files
through the use of FORCE_CPUTYPE.

Since this is only to support the bases /boot functionality, only the
generic i386 cpu is supported.  It's not intended for non-base use.

suggested by: zrj

share/mk/bsd.cpu.gcc47.mk
share/mk/bsd.cpu.gcc50.mk

index 0857181..5f9f87d 100644 (file)
@@ -3,6 +3,7 @@
 # may tune support for more advanced processors.
 
 generic_x86_64=        x86_64 mmx sse sse2
+generic_i386=  i386
 
 .if !defined(CPUTYPE) || empty(CPUTYPE) || ${CPUTYPE} == "native"
 
@@ -50,9 +51,12 @@ known_x86_64=        athlon64 \
                core2 \
                corei7 \
                corei7-avx \
+               i386 \
                nocona \
                znver1
 
+known_i386=    i386
+
 . if defined(known_${MACHINE_ARCH}) && \
      !empty(known_${MACHINE_ARCH}:M${CT2})             # CID: Check CPUTYPE
 
@@ -61,6 +65,7 @@ known_x86_64= athlon64 \
 # presence of a CPU feature.
 
 .  if ${MACHINE_ARCH} == "x86_64"
+C_i386=                ${generic_i386}
 C_nocona=      ${generic_x86_64} sse3
 C_core2=       ${C_nocona} ssse3
 C_corei7=      ${C_core2} sse41 sse42
@@ -79,6 +84,12 @@ C_znver1=    ${C_corei7avx} bmi bmi2 f16c fma fsgsbase avx2 adcx rdseed \
 
 .  endif       # end of x86_64 feature list
 
+# i386 used for 32-bit BIOS-based boot loaders
+
+.  if ${MACHINE_ARCH} == "i386"
+C_i386=                ${generic_i386}
+.  endif       # end of i386 feature list
+
 _CPUCFLAGS=    -march=${CT2}
 MACHINE_CPU=   ${C_${CT2:S|-||}}
 
index 79ca278..818f50c 100644 (file)
@@ -3,6 +3,7 @@
 # may tune support for more advanced processors.
 
 generic_x86_64=        x86_64 mmx sse sse2
+generic_i386=  i386
 
 .if !defined(CPUTYPE) || empty(CPUTYPE) || ${CPUTYPE} == "native"
 
@@ -48,6 +49,7 @@ known_x86_64= athlon64 \
                btver1 btver2 \
                core2 \
                haswell \
+               i386 \
                ivybridge \
                knl \
                nocona \
@@ -59,6 +61,8 @@ known_x86_64= athlon64 \
                westmere \
                znver1
 
+known_i386=    i386
+
 . if defined(known_${MACHINE_ARCH}) && \
      !empty(known_${MACHINE_ARCH}:M${CT2})             # CID: Check CPUTYPE
 
@@ -93,9 +97,16 @@ C_znver1=    ${C_core2} bmi bmi2 f16c fma fsgsbase avx avx2 adcx rdseed \
                abm xsavec xsaves clflushop popcnt
 C_btver1=      ${C_barcelona} cx16
 C_btver2=      ${C_btver1} movbe f16c bmi avx pclmul aes sse41 sse42
+C_i386=                ${generic_i386}
 
 .  endif       # end of x86_64 feature list
 
+# i386 used for 32-bit BIOS-based boot loaders
+
+.  if ${MACHINE_ARCH} == "i386"
+C_i386=                ${generic_i386}
+.  endif       # end of i386 feature list
+
 _CPUCFLAGS=    -march=${CT2}
 MACHINE_CPU=   ${C_${CT2:S|-||}}