#
2fd73b71 |
|
18-Apr-2024 |
Dimitry Andric <dim@FreeBSD.org> |
share/mk/bsd.cpu.mk: add F16C feature for i386 and amd64 architectures As discussed in bug 278417, some ports require the F16C instruction set to compile, but there is no way yet to detect whether the currently chosen CPUTYPE supports this feature. Add the feature to the MACHINE_CPU variable, for each processor that supports it. The list of processors was extracted from clang 18's -dM output, filtered on the __F16C__ define. PR: 278417 Reviewed by: brooks, emaste MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D44848
|
#
ed3fb74e |
|
20-Aug-2023 |
Daniel Engberg <diizzy@FreeBSD.org> |
share/mk/bsd.cpu.mk: Add AMD Zen 4 for x86 Main difference between older Zen variants is that this supports AVX-512 Reviewed by: imp (previous version), emaste Approved by: emaste Differential Revision: https://reviews.freebsd.org/D41331
|
#
d0b2dbfa |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line sh pattern Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
|
#
5581cf90 |
|
24-Jun-2023 |
Piotr Kubaj <pkubaj@FreeBSD.org> |
share/mk/bsd.cpu.mk: drop -mno-powerpc64 Clang doesn't have -mno-powerpc64. Differential revision: https://reviews.freebsd.org/D40589 Approved by: jhibbits
|
#
2c7279ba |
|
16-Jun-2023 |
Piotr Kubaj <pkubaj@FreeBSD.org> |
share/mk/bsd.cpu.mk: handle the default case when CPUTYPE is not specified on powerpc* Approved by: imp Differential Revision: https://reviews.freebsd.org/D40576
|
#
448045e4 |
|
05-May-2023 |
Piotr Kubaj <pkubaj@FreeBSD.org> |
share/mk/bsd.cpu.mk: add AltiVec / VSX to powerpc*'s MACHINE_CPU MFC after: 3 days Approved by: jhibbits Differential revision: https://reviews.freebsd.org/D39240
|
#
47e888f8 |
|
20-Apr-2023 |
John Baldwin <jhb@FreeBSD.org> |
Remove a few more references to riscv64sf. Fixes: 1ca12bd927d7 Remove the riscv64sf architecture.
|
#
3ae78d66 |
|
14-Feb-2023 |
Warner Losh <imp@FreeBSD.org> |
bsd.cpu.mk: Simplify armv[67] support Drop a clause that's no longer relevant to v4/v5. Drop support for softfloat for v[45]. Simplify soft float expression by assuming we're always either armv6 or armv7. Sponsored by: Netflix Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D38584
|
#
426fc376 |
|
05-Oct-2022 |
Brooks Davis <brooks@FreeBSD.org> |
bsd.cpu.mk: Introduce MACHINE_ABI MACHINE_ABI is a list of properties of the ABI used for MACHINE_ARCH. It should be used in place of long conditionals on MACHINE_ARCH where practical. The following properties are indicated with one of the follow values: Byte order: big-endian, little-endian Floating point ABI: soft-float, hard-float Size of long (size_t, etc): long32, long64 Pointer type: ptr32, ptr64 Size of time_t: time32, time64 For example, i386 targets will be: MACHINE_ABI= big-endian hard-float long32 ptr32 time32 Reviewed by: imp Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D36421
|
#
9b93d758 |
|
01-Jan-2022 |
Warner Losh <imp@FreeBSD.org> |
bsd.cpu.mk: Remove mips support Remove the tweaks to the compiler, as well as additional command line args to get the proper endian, word size and floating style. Sponsored by: Netflix
|
#
15575aca |
|
27-Sep-2021 |
Warner Losh <imp@FreeBSD.org> |
bsd.cpu.mk: Minor formatting for armv6 vs armv7 Separate out the arch/cpu options for armv6 from the armv7 ones. This is less confusing. Sponsored by: Netflix
|
#
362fef2f |
|
06-Aug-2021 |
Greg V <greg@unrelenting.technology> |
bsd.cpu.mk: add support for x86-64-v[234] levels as CPUTYPE These are supported in LLVM 12 and GCC 11: https://github.com/llvm/llvm-project/commit/012dd42e027e https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=324bec558e95584e8c1997575ae9d75978af59f1 Differential Revision: https://reviews.freebsd.org/D29150
|
#
e8014552 |
|
14-Jun-2021 |
Jung-uk Kim <jkim@FreeBSD.org> |
bsd.cpu.mk: Correct MACHINE_CPU for Intel Alder Lake Apparently Intel Alder Lake lacks AVX-512 instructions. Fixes: 09e7341c5ea4 "Catch up with Clang 12"
|
#
09e7341c |
|
14-Jun-2021 |
Jung-uk Kim <jkim@FreeBSD.org> |
Catch up with Clang 12. Add "znver3" for AMD and "alderlake" and "sapphirerapids" for Intel.
|
#
b75abea4 |
|
22-Sep-2020 |
Brandon Bergren <bdragon@FreeBSD.org> |
[PowerPC64LE] Set up powerpc.powerpc64le architecture This is the initial set up for PowerPC64LE. The current plan is for this arch to remain experimental for FreeBSD 13. This started as a weekend learning project for me and kinda snowballed from there. (More to follow momentarily.) Reviewed by: imp (earlier version), emaste Sponsored by: Tag1 Consulting, Inc. Differential Revision: https://reviews.freebsd.org/D26399
|
#
d14897f9 |
|
02-Sep-2020 |
Andrew Turner <andrew@FreeBSD.org> |
When CPUTYPE is an architecture name use -march Allow architecture names to be passed in to the build system via CPUTYPE. This allows the user to use values such as armv8.1-a or armv8-a+crc as the CPUTYPE. Sponsored by: Innovate UK
|
#
90be9172 |
|
30-Mar-2020 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc: --secure-plt only needs to pass to ld.bfd, not ld.lld ld.lld only supports secure-plt for powerpc, so no need to pass the argument in.
|
#
a04ec978 |
|
26-Mar-2020 |
Brandon Bergren <bdragon@FreeBSD.org> |
[PowerPC] Switch powerpc and powerpcspe to lld Now that LLD 10 is out, and required patches have landed, we are now ready to finally switch away from the ancient in-tree ld.bfd. Special thanks to Fangrui Song for many hours of work on getting the 32-bit powerpc lld ready for prime-time. Reviewed by: emaste (earlier revision), jhibbits Relnotes: yes Differential Revision: https://reviews.freebsd.org/D24111
|
#
e754c10d |
|
10-Mar-2020 |
Jung-uk Kim <jkim@FreeBSD.org> |
Add "tigerlake" CPUTYPE for x86 to catch up with Clang 10.0.
|
#
47e9f42e |
|
26-Feb-2020 |
Warner Losh <imp@FreeBSD.org> |
Remove sparc64 specific buid-system hacks Remove all the sparc64 hacks and tweaks to the build system. We don't need them anymore.
|
#
4c8095b1 |
|
09-Jan-2020 |
Jung-uk Kim <jkim@FreeBSD.org> |
Catch up with Clang 9.0.
|
#
dea24746 |
|
09-Jan-2020 |
Warner Losh <imp@FreeBSD.org> |
Add note to remind me there are three choices for arm32 floating point. hard use floating point hardware, pass registers to functions in floating point registers. softfp use floating point hardware, but pass registers to functions in integer registers. soft do floating point calcuations without using floating point hardware. Pass arguments in integer registers. FreeBSD 11 and newer assumes hard. 10 and earlier assumed softfp. We have no real support, at the moment, for soft. It's untested, though, if softfp still works. Add a note here since this is a whack-a-doodle combination relative to all other platforms. softfp is likely to go away in the future because it was retained for people using FreeBSD 10 + armv6 needing to transition more slowly from softfp -> hard than the project. It likely is no longer needed, and may be getting in the way of people needing 'soft' support.
|
#
79f59915 |
|
08-Jan-2020 |
John Baldwin <jhb@FreeBSD.org> |
Add -mno-relax to CFLAGS in bsd.prog/lib.mk instead of bsd.cpu.mk. bsd.cpu.mk is included by bsd.init.mk before bsd.linker.mk, so it was always setting the flag since LINKER_FEATURES wasn't defined. Reported by: mhorne Reviewed by: imp, mhorne Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D23076
|
#
b451cd45 |
|
24-Dec-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
[PowerPC64] Use ld.bfd to build LIB32 and STAND - when using llvm Summary: This patch is to support ongoing work for replacing "GCC/BFD" by "CLANG/LLD" on target PowerPC64 [1], by proposing a way to specify and/or locate a secondary ld.bfd linker. This is necessary as LLD currently doesn't support PowerPC 32 bits, so we keep using BFD for the 32 bit stuff on PowePC64(LIB32 compatibility and STAND/slof/loader.) - creates LD_BFD variable pointing to ld.bfd - use LD_BFD as linker for LIB32/compat - Default behavior for other platforms aren't changed. [1] https://wiki.freebsd.org/powerpc/llvm-elfv2 Submitted by: alfredo.junior_eldorado.org.br Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D20261
|
#
0869dceb |
|
05-Dec-2019 |
John Baldwin <jhb@FreeBSD.org> |
Add a new "riscv-relaxations" linker feature. When the linker doesn't have this feature, add -mno-relax to CFLAGS on RISC-V. Define the feature for ld.bfd, but not lld. If lld gains relaxation support in a newer version, we can enable it for those versions of lld in bsd.linker.mk. Reviewed by: mhorne Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D22659
|
#
dc67cfef |
|
10-Nov-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
Consolidate powerpcspe CFLAGS Don't depend on CPUTYPE to define powerpcspe CFLAGS, they should be set unconditionally. This reduces duplication. Also, set some CFLAGS as gcc-only, because clang's SPE support always uses the SPE ABI, it's not an optional feature.
|
#
52751739 |
|
10-Nov-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpcspe: use -mspe instead of -mspe=yes to enable SPE -mspe=yes/no was deprecated even before GCC 4.2.1 in favor of -mspe/-mno-spe. Clang only supports -mspe/-mno-spe.
|
#
c5d2d5a1 |
|
19-Jul-2019 |
Brooks Davis <brooks@FreeBSD.org> |
Make setting mips endian and ABI less verbose. Allow ABI to be over ridden to allow (with other changes) programs to be built targeting ABIs other than the default. This is used in CheriBSD. Reviewed by: imp Obtained from: CheriBSD MFC after: 1 week Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D21001
|
#
e861dab4 |
|
24-Jun-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
powerpc: Transition to Secure-PLT, like most other OSs (Toolchain part) Summary: Toolchain follow-up to r349350. LLVM patches will be submitted upstream for 9.0 as well. The bsd.cpu.mk change is required because GNU ld assumes BSS-PLT if it cannot determine for certain that it needs Secure-PLT, and some binaries do not compile in such a way to make it know to use Secure-PLT. Reviewed By: nwhitehorn, bdragon, pfg Differential Revision: https://reviews.freebsd.org/D20598
|
#
0fa5ee1f |
|
21-Mar-2019 |
Jung-uk Kim <jkim@FreeBSD.org> |
Catch up with Clang 8.0.
|
#
f4590b8c |
|
21-Mar-2019 |
Jung-uk Kim <jkim@FreeBSD.org> |
Catch up with Clang 7.0. MFC after: 3 days
|
#
63d33e48 |
|
08-Feb-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
Correct the CPU target for powerpcspe The MPC8540 is actually e500v1, which doesn't have double-precision floating point support. The 8548 does, so use that as the CPU target. MFC after: 2 weeks
|
#
888c8381 |
|
03-Sep-2018 |
Ruslan Bukin <br@FreeBSD.org> |
Enable 'C'-compressed ISA extension. This was disabled recently due to lack of support in KDB disassembler and DTrace FBT provider. Support for 'C'-extension to both of these was added, so we can now enable 'C'-extension. This reduces size of the kernel important for low-end embedded devices, and saves cache footprint for high perfomance machines. Approved by: re (kib) Sponsored by: DARPA, AFRL
|
#
c81b12e0 |
|
27-Jul-2018 |
Warner Losh <imp@FreeBSD.org> |
Revert r336773: it removed too much. r336773 removed all things xscale. However, some things xscale are really armv5. Revert that entirely. A more modest removal will follow. Noticed by: andrew@
|
#
626930c2 |
|
27-Jul-2018 |
Warner Losh <imp@FreeBSD.org> |
Remove xscale support The OLD XSCALE stuff hasn't been useful in a while. The original committer (cognet@) was the only one that had boards for it. He's blessed this removal. Newer XSCALE (GUMSTIX) is for hardware that's quite old. After discussion on arm@, it was clear there was no support for keeping it. Differential Review: https://reviews.freebsd.org/D16313
|
#
8e8fbf19 |
|
25-Jul-2018 |
Ruslan Bukin <br@FreeBSD.org> |
Disable 'C'-compressed ISA extension. It works excellent, but KDB disassembler and DTrace FBT provider for RISC-V do lack support for it. They currently handle 4-byte instructions only, while C-compressed ISA extension introduces 2-byte instructions freely mixing them together. So disable it for now. Reviewed by: markj@ Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D16436
|
#
71cb2dfc |
|
17-Jul-2018 |
Warner Losh <imp@FreeBSD.org> |
Remove special cases for armeb in the build. Differential Revision: https://reviews.freebsd.org/D16257
|
#
1d2ec69b |
|
03-Jul-2018 |
John Baldwin <jhb@FreeBSD.org> |
Don't specify the desired march/mabi for RISC-V in ACFLAGS. ACFLAGS is only used in addition to CFLAGS, so setting the options in both was redundant. However, ACFLAGS is added to the command line after CFLAGS, so the settings from ACFLAGS were applied for assembly files in kernel modules after the kernel-specific march/abi in CFLAGS. As a result, the hard-float ACFLAGS in bsd.cpu.mk was overriding the soft-float CFLAGS.gcc in sys/conf/kern.mk. In particular, dtrace_asm.o was compiled as hard-float and the linker refused to link dtrace.ko since its object files contained a mix of hard and soft float. Reviewed by: br Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D16054
|
#
2f7f1977 |
|
19-Jun-2018 |
Ruslan Bukin <br@FreeBSD.org> |
Don't use TARGET_ARCH in this file, use MACHINE_ARCH instead. TARGET_ARCH is not defined when building ports/packages. Sponsored by: DARPA, AFRL
|
#
3783c1b1 |
|
18-Apr-2018 |
Ruslan Bukin <br@FreeBSD.org> |
Set correct float abi (float abi double) for hard-float build, so __riscv_float_abi_double macro will be defined by compiler. The options are: o lp64 __riscv_float_abi_soft o lp64f __riscv_float_abi_single o lp64d __riscv_float_abi_double Sponsored by: DARPA, AFRL
|
#
9ef029b0 |
|
03-Apr-2018 |
Jung-uk Kim <jkim@FreeBSD.org> |
Catch up with Clang 6.0. MFC after: 3 days
|
#
ca50d679 |
|
20-Nov-2017 |
Warner Losh <imp@FreeBSD.org> |
Add -mno-avx2 for clang as well as -mno-avx. We don't want either of them when asking for no SIMD. Reviewed by: emaste@ Sponsored by: Netflix
|
#
0b972ac9 |
|
05-Oct-2017 |
Warner Losh <imp@FreeBSD.org> |
Support armv7 builds for userland Make armv7 as a new MACHINE_ARCH. Copy all the places we do armv6 and add armv7 as basically an alias. clang appears to generate code for armv7 by default. armv7 hard float isn't supported by the the in-tree gcc, so it hasn't been updated to have a new default. Support armv7 as a new valid MACHINE_ARCH (and by extension TARGET_ARCH). Add armv7 to the universe build. Differential Revision: https://reviews.freebsd.org/D12010
|
#
06d0095e |
|
12-Aug-2017 |
Warner Losh <imp@FreeBSD.org> |
We don't use ARM_ARCH_6 in the tree, and haven't for a long long time. Remove it from here. As far as I could tell, nothing in ports use it (either __ARM_ARCH or __ARM_ARCH_6__ is used in all the apatches). We do have a define for _ARM_ARCH_6, but it's mostly unused (and will remain, since it isn't in this file).
|
#
7a6fd8dc |
|
12-Aug-2017 |
Enji Cooper <ngie@FreeBSD.org> |
Delete trailing whitespace MFC after: 1 month
|
#
af19cc59 |
|
10-Aug-2017 |
Ruslan Bukin <br@FreeBSD.org> |
Support for v1.10 (latest) of RISC-V privilege specification. New version is not compatible on supervisor mode with v1.9.1 (previous version). Highlights: o BBL (Berkeley Boot Loader) provides no initial page tables anymore allowing us to choose VM, to build page tables manually and enable MMU in S-mode. o SBI interface changed. o GENERIC kernel. FDT is now chosen standard for RISC-V hardware description. DTB is now provided by Spike (golden model simulator). This allows us to introduce GENERIC kernel. However, description for console and timer devices is not provided in DTB, so move these devices temporary to nexus bus. o Supervisor can't access userspace by default. Solution is to set SUM (permit Supervisor User Memory access) bit in sstatus register. o Compressed extension is now turned on by default. o External GCC 7.1 compiler used. o _gp renamed to __global_pointer$ o Compiler -march= string is now in use allowing us to choose required extensions (compressed, FPU, atomic, etc). Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D11800
|
#
ea22493a |
|
07-Apr-2017 |
John Baldwin <jhb@FreeBSD.org> |
Explicitly set the desired MIPS ABI in toolchain flags. Specifically, set '-mabi=XX' in AFLAGS, CFLAGS, and LDFLAGS. This permits building MIPS worlds and binaries with a toolchain whose default output does not match the desired TARGET_ARCH. _LDFLAGS (which is used with LD instead of with CC) required an update as LD does not accept the -mabi flags (so they must be stripped from LDFLAGS when generating _LDFLAGS). For bare uses of LD (rather than linking via CC), the desired ABI must be set by setting an explicit linker emulation as done in r316514 for kernels and kernel modules. Reviewed by: imp Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D10085
|
#
5429af5f |
|
07-Apr-2017 |
John Baldwin <jhb@FreeBSD.org> |
Don't set the MIPS endianness flags in both ACFLAGS and CFLAGS. This should no longer be necessary after r316620 as all places that use ACFLAGS should already be using CFLAGS. Reviewed by: imp Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D10085
|
#
982ee4e2 |
|
07-Mar-2017 |
Jung-uk Kim <jkim@FreeBSD.org> |
Catch up with Clang 4.0.0.
|
#
7804dd52 |
|
16-Nov-2016 |
Ruslan Bukin <br@FreeBSD.org> |
Add full softfloat and hardfloat support for RISC-V. Hardfloat is now default (use riscv64sf as TARGET_ARCH for softfloat). Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D8529
|
#
d037279c |
|
15-Nov-2016 |
Alexander Kabaev <kan@FreeBSD.org> |
Set endianness and floating point flags explicitly for MIPS targets The tree can be build with an external toolchain that will not necessarily default to desired settings, so we have to specify the required flags explicitly to force the required compilation mode. Reviewed by: adrian, br Sponsored by: https://reviews.freebsd.org/D8505
|
#
1bec4c5b |
|
03-Nov-2016 |
Bryan Drewery <bdrewery@FreeBSD.org> |
Use proper MACHINE_ARCH. This fixes ports on mips after r308130.
|
#
2ad1d09f |
|
03-Nov-2016 |
Ruslan Bukin <br@FreeBSD.org> |
o Add support for long double. o Add support for latest RISC-V GNU toolchain. Sponsored by: DARPA, AFRL Sponsored by: HEIF5
|
#
5bca2215 |
|
31-Oct-2016 |
Ruslan Bukin <br@FreeBSD.org> |
Add full softfloat and hardfloat support for MIPS. This adds new target architectures for hardfloat: mipselhf mipshf mips64elhf mips64hf. Tested in QEMU only. Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D8376
|
#
dc9b124d |
|
21-Oct-2016 |
Justin Hibbits <jhibbits@FreeBSD.org> |
Create a new MACHINE_ARCH for Freescale PowerPC e500v2 Summary: The Freescale e500v2 PowerPC core does not use a standard FPU. Instead, it uses a Signal Processing Engine (SPE)--a DSP-style vector processor unit, which doubles as a FPU. The PowerPC SPE ABI is incompatible with the stock powerpc ABI, so a new MACHINE_ARCH was created to deal with this. Additionaly, the SPE opcodes overlap with Altivec, so these are mutually exclusive. Taking advantage of this fact, a new file, powerpc/booke/spe.c, was created with the same function set as in powerpc/powerpc/altivec.c, so it becomes effectively a drop-in replacement. setjmp/longjmp were modified to save the upper 32-bits of the now-64-bit GPRs (upper 32-bits are only accessible by the SPE). Note: This does _not_ support the SPE in the e500v1, as the e500v1 SPE does not support double-precision floating point. Also, without a new MACHINE_ARCH it would be impossible to provide binary packages which utilize the SPE. Additionally, no work has been done to support ports, work is needed for this. This also means no newer gcc can yet be used. However, gcc's powerpc support has been refactored which would make adding a powerpcspe-freebsd target very easy. Test Plan: This was lightly tested on a RouterBoard RB800 and an AmigaOne A1222 (P1022-based) board, compiled against the new ABI. Base system utilities (/bin/sh, /bin/ls, etc) still function appropriately, the system is able to boot multiuser. Reviewed By: bdrewery, imp Relnotes: yes Differential Revision: https://reviews.freebsd.org/D5683
|
#
01a62066 |
|
11-Aug-2016 |
Ruslan Bukin <br@FreeBSD.org> |
Revert r303911 "Remove extra -msoft-float flags settings." This was not properly tested.
|
#
2d700cb5 |
|
10-Aug-2016 |
Ruslan Bukin <br@FreeBSD.org> |
Remove extra -msoft-float flags settings. This helps to build firmware modules. Sponsored by: DARPA, AFRL Sponsored by: HEIF5
|
#
9ddd36c2 |
|
22-Jul-2016 |
Ruslan Bukin <br@FreeBSD.org> |
Set the soft-float flag for assembly code as well. This fixes compilation with GCC 6.1. Sponsored by: DARPA, AFRL
|
#
2c0e9e2a |
|
18-May-2016 |
Warner Losh <imp@FreeBSD.org> |
Make armv6 hard float abi by default. Kill armv6hf. Allow CPUTYPE=soft to build the current soft-float abi libraries. Add UPDATING entry to announce this. Approved by: re@ (gjb)
|
#
ca7f4027 |
|
01-May-2016 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
share: minor spelling fixes. Mostly comments but these tend to be user-visible. MFC after: 2 weeks
|
#
b1101485 |
|
28-Mar-2016 |
Warner Losh <imp@FreeBSD.org> |
Support simple soft floating point abi for CPUTYPE in arm. Complex types to follow.
|
#
1fdcc5e5 |
|
11-Dec-2015 |
Ruslan Bukin <br@FreeBSD.org> |
Start support for the RISC-V 64-bit architecture developed by UC Berkeley. RISC-V is a new ISA designed to support computer research and education, and is now become a standard open architecture for industry implementations. This is a minimal set of changes required to run 'make kernel-toolchain' using external (GNU) toolchain. The FreeBSD/RISC-V project home: https://wiki.freebsd.org/riscv. Reviewed by: andrew, bdrewery, emaste, imp Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D4445
|
#
fd48e7a5 |
|
10-Dec-2015 |
Warner Losh <imp@FreeBSD.org> |
Handle CPUTYPE=armv[4567]* better. gcc expects those to be either -march=foo or -mcpu=generic-foo. Catch the armvX* case and pass the right args for it.
|
#
dbd69b0d |
|
20-Nov-2015 |
Warner Losh <imp@FreeBSD.org> |
Add aarch64 support to CPUTYPE
|
#
828b0885 |
|
19-Nov-2015 |
Warner Losh <imp@FreeBSD.org> |
Add arm CPUTYPE values typically used on FreeBSD.
|
#
17f6dfcc |
|
18-Nov-2015 |
Warner Losh <imp@FreeBSD.org> |
Fix missing endif.
|
#
129898e5 |
|
18-Nov-2015 |
Warner Losh <imp@FreeBSD.org> |
Fix mips CPUTYPE so that we can pass it through to gcc. Keep old CPUTYPEs around for compatibility. Also include a list of typical values for FreeBSD. # Split out from other changes in D4155 Differential Revision: https://reviews.freebsd.org/D4155
|
#
f894f172 |
|
13-Nov-2015 |
Warner Losh <imp@FreeBSD.org> |
Fix URL for powerpc cpu options. Remove reference to ia64 options as no longer relevant.
|
#
e0874a7e |
|
26-Aug-2015 |
Warner Losh <imp@FreeBSD.org> |
After consultations with the arm community, don't define softfp for armv6. It's too ambiguous. We do use the softfp ABI for the moment on armv6, but we allow floating point register use (and the compilers will generate it). This is too ambiguous to use it as a decider for which algorithms to use on the platform. Err on the side of caution and not define it. Submitted by: ian@ Reviewed by: andrew@
|
#
1cdb6182 |
|
25-Aug-2015 |
Warner Losh <imp@FreeBSD.org> |
Add softfp to MACHINE_CPU more often when we're compiling for soft float targets. It is added for booke on powerpc and all arm with hf in the string. Also add arm to all arm builds and armv6 to armv6 and newer builds. PR: 202641
|
#
d1f6fa8f |
|
23-Aug-2015 |
Warner Losh <imp@FreeBSD.org> |
We need to add the soft float to the CFLAGS always, not just when NO_CPUCFLAGS is not defined since it is part of the ABI as we've defined it, not just a nice optimization.
|
#
ddab0527 |
|
04-Aug-2015 |
Eric van Gyzen <vangyzen@FreeBSD.org> |
Disable SSE in libthr Clang emits SSE instructions on amd64 in the common path of pthread_mutex_unlock. If the thread does not otherwise use SSE, this usage incurs a context-switch of the FPU/SSE state, which reduces the performance of multiple real-world applications by a non-trivial amount (3-5% in one application). Instead of this change, I experimented with eagerly switching the FPU state at context-switch time. This did not help. Most of the cost seems to be in the read/write of memory--as kib@ stated--and not in the #NM handling. I tested on machines with and without XSAVEOPT. One counter-argument to this change is that most applications already use SIMD, and the number of applications and amount of SIMD usage are only increasing. This is absolutely true. I agree that--in general and in principle--this change is in the wrong direction. However, there are applications that do not use enough SSE to offset the extra context-switch cost. SSE does not provide a clear benefit in the current libthr code with the current compiler, but it does provide a clear loss in some cases. Therefore, disabling SSE in libthr is a non-loss for most, and a gain for some. I refrained from disabling SSE in libc--as was suggested--because I can't make the above argument for libc. It provides a wide variety of code; each case should be analyzed separately. https://lists.freebsd.org/pipermail/freebsd-current/2015-March/055193.html Suggestions from: dim, jmg, rpaulo Approved by: kib (mentor) MFC after: 2 weeks Sponsored by: Dell Inc.
|
#
5607ec23 |
|
02-Jul-2015 |
Andrew Turner <andrew@FreeBSD.org> |
Set MACHINE_CPU to arm64 when building for arm64. This is needed by the ports tree as they check this value in a number of ports. PR: 201259 Sponsored by: ABT Systems Ltd
|
#
61b9bd23 |
|
25-Jun-2015 |
Andrew Turner <andrew@FreeBSD.org> |
Sort the cpu architectures by name rather than a combination of alphabetical order and appending new architectures to the end of the list. Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation
|
#
25fd8105 |
|
16-Mar-2015 |
Jung-uk Kim <jkim@FreeBSD.org> |
Catch up with Clang 3.6.0.
|
#
1d2c1366 |
|
18-Jan-2015 |
Ian Lepore <ian@FreeBSD.org> |
For armv6 builds, add -mfloat-abi=softfp. This tells the compiler it can use floating point hardware instructions (because all armv6/7 systems we support have fp hardware), but it passes args using a soft-float compatible ABI. This should give noticible performance improvement (but not as much as using the armv6hf arch).
|
#
a1032778 |
|
01-Dec-2014 |
Andrew Turner <andrew@FreeBSD.org> |
Set the correct architecture when targeting ARMv7 MFC after: 1 Week Sponsored by: ABT Systems Ltd
|
#
cc55c7c7 |
|
08-Jul-2014 |
Ian Lepore <ian@FreeBSD.org> |
Support CXXFLAGS.${MACHINE_ARCH} as well as CFLAGS. This allows different C++ options for toolchain versus target when cross-building.
|
#
e7d939bd |
|
06-Jul-2014 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Remove ia64. This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h Discussed at: BSDcan
|
#
66198225 |
|
20-Mar-2014 |
Jung-uk Kim <jkim@FreeBSD.org> |
Add new CPUTYPEs supported by Clang 3.4, i.e., AMD Steamroller (bdver3) and Intel Silvermont (slm) processors.
|
#
44653522 |
|
19-Mar-2014 |
Ian Lepore <ian@FreeBSD.org> |
Add a way to apply CFLAGS only when building the given architecture. This is useful primarily on a system used for cross-building, when you have a set of flags to apply to the TARGET_ARCH being cross-built but don't want those settings applied to building the cross-tools or other components that run on the build host machine.
|
#
cd0e2d2a |
|
13-Jun-2013 |
Jung-uk Kim <jkim@FreeBSD.org> |
Add a new CPUTYPE supported by Clang 3.3 for AMD Jaguar processors (btver2).
|
#
755147dd |
|
07-Jan-2013 |
Olivier Houchard <cognet@FreeBSD.org> |
Nuke ARM_WANT_TP_ADDRESS, it's not used anymore. Don't force -march=armv6 for Cortex A, as we want at least armv6k. The compiler default is good enough.
|
#
cea10e1d |
|
03-Dec-2012 |
Jung-uk Kim <jkim@FreeBSD.org> |
Fix typos in the previous commit.
|
#
08e90c14 |
|
03-Dec-2012 |
Jung-uk Kim <jkim@FreeBSD.org> |
Tidy up bsd.cpu.mk for X86 CPUs: - Do not limit recent processors to "prescott" class for i386 target. There is no reason for this hack because clang is default now. On top of that, it will only grow indefinitely over time. - Add more CPUTYPEs, i.e., "athlon-fx", "core-avx2", "atom", "penryn", and "yonah". Note "penryn" and "yonah" are intentionally undocumented because they are not supported by gcc and marked deprecated by clang. - Add more CPUTYPE aliases, i.e., "barcelona" (-> amdfam10), "westmere" and "nehalem" (-> corei7). Note these are intentionally undocumented because they are not supported by (base) gcc and/or clang. However, LLVM (backend) seems to "know" the differences. Most likely, they were deprecated with other vendor code names and clang did not bother implementing them at all. - Add i686 to MACHINE_CPU for "c3-2" (VIA Nehemiah). Both gcc & clang treat it like an i686-class processor. - Add IDT "winchip2" and "winchip-c6" for completeness (undocumented). - Order processors per make.conf example, i.e., CPU vendors and models. - Tidy up make.conf example, i.e., remove "by gcc" (because we have aliases) and remove "prescott" from AMD64 architecture (because it is not correct).
|
#
04704c63 |
|
03-Dec-2012 |
Jung-uk Kim <jkim@FreeBSD.org> |
Remove fictitious support for 80386-class CPUs from bsd.cpu.mk and make(1). It was removed from head more than 8 years ago (see r137784 and r137785). Reviewed by: imp, delphij, dim
|
#
49f4a268 |
|
19-Nov-2012 |
Jung-uk Kim <jkim@FreeBSD.org> |
Add x86 CPUs supported by clang on head. Reviewed by: arch (silence) X-MFC: r242624
|
#
4da573d9 |
|
14-Aug-2012 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Merging of projects/armv6, part 3 r238211: Support TARGET_ARCH=armv6 and TARGET_ARCH=armv6eb This adds a new TARGET_ARCH for building on ARM processors that support the ARMv6K multiprocessor extensions. In particular, these processors have better support for TLS and mutex operations. This mostly touches a lot of Makefiles to extend existing patterns for inferring CPUARCH from ARCH. It also configures: * GCC to default to arm1176jz-s * GCC to predefine __FreeBSD_ARCH_armv6__ * gas to default to ARM_ARCH_V6K * uname -p to return 'armv6' * make so that MACHINE_ARCH defaults to 'armv6' It also changes a number of headers to use the compiler __ARM_ARCH_XXX__ macros to configure processor-specific support routines. Submitted by: Tim Kientzle <kientzle@freebsd.org>
|
#
58ff0f42 |
|
19-Apr-2011 |
Dimitry Andric <dim@FreeBSD.org> |
Remove support for the Intel C Compiler from the build infrastructure. This support has not worked for several years, and is not likely to work again, unless Intel decides to release a native FreeBSD version of their compiler. ;)
|
#
432edffe |
|
14-Mar-2011 |
Martin Matuska <mm@FreeBSD.org> |
Add ssse3 capability for CPUTYPE=core2 to MACHINE_CPU in bsd.cpu.mk MFC after: 2 weeks
|
#
d93806e2 |
|
07-Mar-2011 |
Martin Matuska <mm@FreeBSD.org> |
Add AMD Geode CPU type to bsd.cpu.mk and examples/etc/make.conf For CPUTYPE=core2 use -march=core2 PR: gnu/155308 MFC after: 2 weeks
|
#
c42ed003 |
|
20-Feb-2011 |
Martin Matuska <mm@FreeBSD.org> |
Add opteron-sse3, athlon64-sse3 and k8-sse3 cpu types to bsd.cpu.mk. - add "sse3" to MACHINE_CPU for the new cpu types - for i386, default to CPUTYPE=prescott for the new cpu types PR: gnu/154906 Discussed with: kib, kan, dim MFC after: 2 weeks
|
#
aab88d9d |
|
30-Dec-2010 |
Marius Strobl <marius@FreeBSD.org> |
- Add CPUTYPE support for sparc64. The net result is that it's now possible to let the compiler optimize for the famility of UltraSPARC-III CPUs as the default already was to optimize for UltraSPARC-I/II and generating generic 64-bit V9 is mainly for reference purposes. At least for SPARC64-V CPUs code optimized for UltraSPARC-I/II still is the most performant one. Thanks go to Michael Moll for testing SPARC64-V. - Move a booke MACHINE_CPU bit into the right section.
|
#
f7ff90d7 |
|
13-Nov-2010 |
Warner Losh <imp@FreeBSD.org> |
This case is actually powerpc specific, and doesn't apply to powerpc64. Submitted by: nathanw@
|
#
e8dce5b9 |
|
09-Nov-2010 |
Warner Losh <imp@FreeBSD.org> |
Complete the integration of tbemd branch into head. TARGET_BIG_ENDIAN is now completely dead, except where it was originally supposed to be used (internally in the toolchain building). TARGET_ARCH has changed in three cases: (1) Little endian mips has changed to mipsel. (2) Big endian mips has changed to mipseb. (3) Big endian arm has changed to armeb. Some additional changes are needed to make 'make universe' work on arm and mips after this change, so those are commented out for now. UPDATING information will be forthcoming. Any remaining rough edges will be hammered out in -current.
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
3c7f49dc |
|
13-Sep-2010 |
Warner Losh <imp@FreeBSD.org> |
Prefer MACHINE_CPUARCH to MACHINE_ARCH unless there's a good reason...
|
#
9bc38a3b |
|
28-Aug-2010 |
Warner Losh <imp@FreeBSD.org> |
Now that we default to the proper endian, we don't need these for mips
|
#
13109bdf |
|
09-Jul-2010 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
Minor modifications to know what to do with powerpc64.
|
#
9120f4c8 |
|
04-May-2010 |
Xin LI <delphij@FreeBSD.org> |
MFC r206973: When CPUTYPE is defined to any value, on amd64 platform "mmx" is available through MACHINE_CPU, indicating the CPU supports that feature, as done by revision 138685. This changeset adds "mmx" into the default amd64 MACHINE_CPU list when no CPUTYPE is specified to provide consistent behavior. PR: amd64/145593 Submitted by: mm
|
#
611049ae |
|
20-Apr-2010 |
Xin LI <delphij@FreeBSD.org> |
When CPUTYPE is defined to any value, on amd64 platform "mmx" is available through MACHINE_CPU, indicating the CPU supports that feature, as done by revision 138685. This changeset adds "mmx" into the default amd64 MACHINE_CPU list when no CPUTYPE is specified to provide consistent behavior. PR: amd64/145593 Submitted by: mm MFC after: 2 weeks
|
#
fe0506d7 |
|
09-Mar-2010 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Create the altix project branch. The altix project will add support for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting is a two-module system, consisting of a base compute module and a CPU expansion module. SGI's NUMAFlex architecture can be an excellent platform to test CPU affinity and NUMA-aware features in FreeBSD.
|
#
1e818404 |
|
02-Mar-2010 |
Warner Losh <imp@FreeBSD.org> |
-mabi-calls and -msoft-float aren't needed either Submitted by: jmallet@
|
#
ab6b8778 |
|
02-Mar-2010 |
Warner Losh <imp@FreeBSD.org> |
-mno-dsp hasn't been required for a while now.
|
#
6f3c6327 |
|
17-Feb-2010 |
Neel Natu <neel@FreeBSD.org> |
Kernel module support for mips. Reviewed by: gonzo Tested by: Alexandr Rybalko (ray@dlink.ua)
|
#
23a9b716 |
|
13-Jul-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
- Remove -mno-dsp from CFLAGS. MIPS DSP ASE is off by default now (as it should be)
|
#
1c96bdd1 |
|
03-Apr-2009 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
Add support for 64-bit PowerPC CPUs operating in the 64-bit bridge mode provided, for example, on the PowerPC 970 (G5), as well as on related CPUs like the POWER3 and POWER4. This also adds support for various built-in hardware found on Apple G5 hardware (e.g. the IBM CPC925 northbridge). Reviewed by: grehan
|
#
5b4975b1 |
|
22-Feb-2009 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
Explicitly disable generation of Altivec instructions in the kernel on PowerPC, and add support to allow users to set their CPUTYPE in make.conf.
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
172b9da0 |
|
25-Jun-2008 |
Alex Dupre <ale@FreeBSD.org> |
Fix links to online gcc docs. Reported by: Andre Guibert de Bruet <andy@siliconlandmark.com> MFC after: 1 day
|
#
88f25023 |
|
18-Mar-2008 |
Warner Losh <imp@FreeBSD.org> |
Add support for MACHINE_ARCH == mips, plus a few generic CPU types that will be supported in the forth coming FreeBSD/mips port.
|
#
321578e3 |
|
03-Mar-2008 |
Rafal Jaworowski <raj@FreeBSD.org> |
Connect MPC85XX to the PowerPC build. The kernel config file is KERNCONF=MPC85XX, so the usual procedure applies: 1. make buildworld TARGET_ARCH=powerpc 2. make buildkernel TARGET_ARCH=powerpc TARGET_CPUTYPE=e500 KERNCONF=MPC85XX This default config uses kernel-level FPU emulation. For the soft-float world approach: 1. make buildworld TARGET_ARCH=powerpc TARGET_CPUTYPE=e500 2. disable FPU_EMU option in sys/powerpc/conf/MPC85XX 3. make buildkernel TARGET_ARCH=powerpc TARGET_CPUTYPE=e500 KERNCONF=MPC85XX Approved by: cognet (mentor) MFp4: e500
|
#
10250ddd |
|
29-Feb-2008 |
John Baldwin <jhb@FreeBSD.org> |
Add a 'c7' CPUTYPE for VIA C7 CPUs that is 'c3-2' with the addition of i686, sse2, and sse3. MFC after: 1 week
|
#
4251babd |
|
16-Oct-2007 |
Olivier Houchard <cognet@FreeBSD.org> |
Backout rev 1.62, and revert to use -march=armv5te -D__XSCALE__ instead of -mcpu=xscale for XScale. gcc still has issues with -mcpu=xscale, and now crashes while building systat. Reported by: sam MFC After: 3 days
|
#
ecf7ac02 |
|
21-May-2007 |
Olivier Houchard <cognet@FreeBSD.org> |
GCC doesn't segfault anymore while building world with -mcpu=xscale, so use it.
|
#
ba518d66 |
|
17-Jan-2007 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
"If I only had a brain..." MFC after: 3 weeks
|
#
5e0d38b5 |
|
17-Jan-2007 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Correct errors in previous commit. I didn't realize that ${CPUTYPE} is passed unmodified to gcc. Therefore, "prescott" should be used for Prescott, Nocona, Core and Core 2 CPUs when building 32-bit code, and "nocona" should be used for Prescott, Nocona and Core 2 CPUs when building 64-bit code. MFC after: 3 weeks
|
#
3f15422a |
|
16-Jan-2007 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
On i386, make "prescott" an alias for "nocona" (instead of the other way around), and introduce "core", along with the alias "core2". All of these enable SSE3. On amd64, add "core2" (enables SSE3). MFC after: 3 weeks
|
#
9a082df5 |
|
19-Oct-2006 |
Olivier Houchard <cognet@FreeBSD.org> |
Use TARGET_BIG_ENDIAN instead of ARM_BIG_ENDIAN
|
#
2b46c64c |
|
22-Aug-2006 |
Ruslan Ermilov <ru@FreeBSD.org> |
Remove alpha left-overs.
|
#
26e03c2f |
|
13-Aug-2006 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Revert previous commit. Pre-Nehemiah C3 CPUs do have 3DNow!; it doesn't show up in dmesg because identcpu.c only looks for it on Intel and AMD processors.
|
#
75b7c4a8 |
|
12-Aug-2006 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
I don't know where I got the idea that the VIA C3 has 3DNow!; it doesn't. It does have MMX (though MMX support is reputed to be incomplete in early generations), and later generations have SSE. MFC after: 2 weeks
|
#
838ab6b6 |
|
21-Jul-2006 |
Olivier Houchard <cognet@FreeBSD.org> |
Grr we also need to set -mbig-endian to LDFLAGS. Now I can build a big-endian arm world.
|
#
35ef2e48 |
|
20-Jul-2006 |
Warner Losh <imp@FreeBSD.org> |
Remove ALPHA optimization pointer for gcc flags. Add ARM optimization pointer for gcc flags.
|
#
220e6313 |
|
20-Jul-2006 |
Olivier Houchard <cognet@FreeBSD.org> |
Oops LDFLAGS can be used to invoke gcc, so directly add -EB to {LD}.
|
#
b72f5c0f |
|
20-Jul-2006 |
Olivier Houchard <cognet@FreeBSD.org> |
Honor ARM_BIG_ENDIAN by adding -mbig-endian to CFLAGS and -EB to LDFLAGS if it is defined.
|
#
7fa5ba9e |
|
19-Jul-2006 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Add CPUTYPE support for Via C3 and C3-2 processors. MFC after: 2 weeks
|
#
7b2d0a3e |
|
06-Dec-2005 |
Ruslan Ermilov <ru@FreeBSD.org> |
Add a MACHINE_CPU entry for "ev67".
|
#
7b2b007e |
|
24-May-2005 |
Olivier Houchard <cognet@FreeBSD.org> |
Use -march=armv5te for Xscale.
|
#
efa2f996 |
|
11-Dec-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Rev 1.44 was a little over-zealous for FreeBSD/AMD64, trim.
|
#
e1be1a8e |
|
16-Nov-2004 |
John Baldwin <jhb@FreeBSD.org> |
No need to add I386_CPU to CFLAGS here for 80386 systems as they are no longer supported.
|
#
d41f6f56 |
|
19-Oct-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Define "I386_CPU" if CPUTYPE is 'i386'. Userland bits can check for "I386_CPU" to determine if they should select code paths suitable for the 80386 CPU. Suggested by: ru
|
#
73c7393a |
|
16-Oct-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Embellish the AMD64 sections a little. Including supporting 'nocona'.
|
#
d5a538f6 |
|
16-Oct-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
+ Simplify by treating the standard x86 CPU names as the CPUTYPE vs. treating them as an alias. Treat the shorthand versions as aliases. + Separate the x86 GCC CPU CFLAGS from the ICC CFLAGS. This greatly simplifies the GCC section. It also makes it more clear which CPU's have the same ICC CPU CFLAGS. + Remove redundancy in the alpha section. + Add forgotten ICC CPU CFLAGS for the mobile Intel CPU's added in rev. 1.42.
|
#
1af0547f |
|
07-Oct-2004 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Add support for Pentium M, Pentium 3M and Pentium 4M. PR: i386/72340 Submitted by: Rong-En Fan <rafan@infor.org> MFC after: 2 weeks
|
#
fba25c54 |
|
23-Sep-2004 |
Olivier Houchard <cognet@FreeBSD.org> |
Add CPUCFLAGS for the strongarm and xscale CPUs.
|
#
55dfe3e2 |
|
11-Aug-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Add more aliases for common CPUTYPE spellings
|
#
fc2046e5 |
|
01-Aug-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
Consistently list _CPUCFLAGS.
|
#
ac388bcd |
|
14-May-2004 |
Olivier Houchard <cognet@FreeBSD.org> |
Define MACHINE_CPU for arm.
|
#
002d186b |
|
05-Apr-2004 |
Doug Rabson <dfr@FreeBSD.org> |
Add ${CPUTYPE} support for crusoe processors (cribbed from Linux kernel settings). Pretend that a crusoe is an i686 which doesn't like alignment padding.
|
#
1950e64c |
|
20-Mar-2004 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Add a reference to the ia64 options to gcc. While here, sort the list.
|
#
5a19f6d9 |
|
13-Mar-2004 |
Tom Rhodes <trhodes@FreeBSD.org> |
Fix some style bugs in previous commit. Fix 'broken' ifdefs. icc does not support profiling yet so remove unfinished code which was supposed to help. Submitted by: netchild (original version) Reviewed by: ru
|
#
06d6e4fc |
|
12-Mar-2004 |
Tom Rhodes <trhodes@FreeBSD.org> |
This are the build infrastructure changes to allow to use the Intel C/C++ compiler (lang/icc) to build the kernel. The icc CPUTYPE CFLAGS use icc v7 syntax, icc v8 moans about them, but doesn't abort. They also produce CPU specific code (new instructions of the CPU, not only CPU specific scheduling), so if you get coredumps with signal 4 (SIGILL, illegal instruction) you've used the wrong CPUTYPE. Incarnations of this patch survive gcc compiles and my make universe. I use it on my desktop. To use it update share/mk, add /usr/local/intel/compiler70/ia32/bin (icc v7, works) or /usr/local/intel_cc_80/bin (icc v8, doesn't work) to your PATH, make sure you have a new kernel compile directory (e.g. MYKERNEL_icc) and run CFLAGS="-O2 -ip" CC=icc make depend CFLAGS="-O2 -ip" CC=icc make in it. Don't compile with -ipo, the build infrastructure uses ld directly to link the kernel and the modules, but -ipo needs the link step to be performed with Intel's linker. Problems with icc v8: - panic: npx0 cannot be emulated on an SMP system - UP: first start of /bin/sh results in a FP exception Parts of this commit contains suggestions or submissions from Marius Strobl <marius@alchemy.franken.de>. Reviewed by: silence on -arch Submitted by: netchild
|
#
d562095e |
|
05-Mar-2004 |
Bruce Evans <bde@FreeBSD.org> |
Fixed indentation of conditionals. Submitted by: Rostislav Krasny <rosti_bsd@yahoo.com>
|
#
c7fde574 |
|
30-Jan-2004 |
Bruce Evans <bde@FreeBSD.org> |
Fixed some style bugs (long lines).
|
#
05d9236a |
|
30-Jan-2004 |
John Baldwin <jhb@FreeBSD.org> |
Drop -mcpu=pentiumpro from the default CPU flags for i386 as it doesn't perform better than the default setting for most i386 CPUs. Requested by: bde
|
#
2096f68e |
|
10-Jan-2004 |
Ruslan Ermilov <ru@FreeBSD.org> |
Keep up with sys/conf/ changes.
|
#
96f5595b |
|
13-Jul-2003 |
Maxime Henrion <mux@FreeBSD.org> |
Since -march=pentium4 is supposed to be fixed with GCC 3.3, and since people have been reporting success with it, re-enable the pentium4 optimization.
|
#
b1aff8bf |
|
22-May-2003 |
Eric Anholt <anholt@FreeBSD.org> |
Change -march=pentium4 to -march=pentium3 when CPUTYPE==p4, because gcc 3.2 is known to produce broken code with -march=pentium4. Add a note explaining this. This should be removed when we update to gcc 3.3 or the bug is otherwise fixed. Approved by: re
|
#
721b850f |
|
19-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
s/x86[-_]64/amd64/ for MACHINE_ARCH and MACHINE_CPU .ifdefs. Noticed by: ru Approved by: re (amd64-specific low risk stuff)
|
#
ae790620 |
|
14-Apr-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Add CPUTYPE support for "athlon-tbird", as GCC makes the distinction. PR: 50801 Submitted by: Glenn Johnson <glennpj@charter.net>
|
#
7d40314e |
|
11-Apr-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Default the userland to 486 capabilities.
|
#
dde8112b |
|
28-Mar-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Globally use -mieee in /usr/src for Alpha.
|
#
44db0c5c |
|
28-Mar-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Reduce "code duplication" for AMD CPU's.
|
#
23bfdc2d |
|
18-Sep-2002 |
John Baldwin <jhb@FreeBSD.org> |
Whitespace-only indention fixups for revision 1.20. This lets the 1.20 diff actually be readable.
|
#
f41fb58c |
|
18-Sep-2002 |
John Baldwin <jhb@FreeBSD.org> |
Oops, fix userland _CPUCFLAGS. Move adding of _CPUCFLAGS to bottom of file after end of empty CPUTYPE else clause.
|
#
eb28bc3e |
|
18-Sep-2002 |
John Baldwin <jhb@FreeBSD.org> |
For the default case of CPUTYPE not being set, don't define CPUTYPE to the lowest value in order to get the right MACHINE_CPU values since setting CPUTYPE can result in problems later in the buildkernel case. Instead, set MACHINE_CPU directly and leave CPUTYPE alone. Tested by: mbr
|
#
fb3d2259 |
|
10-Sep-2002 |
David E. O'Brien <obrien@FreeBSD.org> |
Add support for the AMD x86-64 Hammer platform.
|
#
0dafadb7 |
|
06-Sep-2002 |
Kris Kennaway <kris@FreeBSD.org> |
Add support for ev67 and ev45 CPUTYPEs (new in gcc3)
|
#
8e4b67a2 |
|
06-Sep-2002 |
Maxime Henrion <mux@FreeBSD.org> |
Update to use all the new CPU optimizations of GCC3. Reviewed by: kris
|
#
32f8ca45 |
|
02-Aug-2002 |
Ruslan Ermilov <ru@FreeBSD.org> |
TARGET_CPUTYPE should exist solely in Makefile.inc1, similar to TARGET_ARCH and TARGET. This is problematic when one has the = (unconditional) type of assigment for CPUTYPE in /etc/make.conf. (This would override what was set on the command line to "make buildworld".) Add a (horrible) kludge to Makefile.inc1 to check the type of assignment for CPUTYPE (only for those who attempts to set it to a different value). Fix an example make.conf. Fix the kernel's build-tools target (aicasm only at the moment) to catch up with bsd.cpu.mk,v 1.15 (BOOTSTRAPPING replaced with NO_CPU_CFLAGS in Makefile.inc1's BMAKE). Reviewed by: jhb
|
#
22e256fd |
|
30-Jul-2002 |
John Baldwin <jhb@FreeBSD.org> |
- Define NO_CPU_CFLAGS during BMAKE and TMAKE (and thus XMAKE) so that bsd.cpu.mk doesn't have to worry about compilers other than the current version. - Allow TARGET_CPUTYPE to override CPUTYPE in bsd.cpu.mk. - Treat an empty CPUTYPE the same as an undefined CPUTYPE. - For buildworld, buildkernel, etc., define TARGET_CPUTYPE to CPUTYPE for native builds and define it to be empty for cross-builds. TARGET_CPUTYPE is only defined if it is not already defined via the commandline or environment.
|
#
9bd85872 |
|
27-Jul-2002 |
John Baldwin <jhb@FreeBSD.org> |
- Fixup whitespace after previous commit. - To minimize whitespace changes, remove a test that didn't define _CPUCFLAGS if both NO_CPU_CFLAGS and NO_CPU_COPTFLAGS were defined since it is redundant (we don't use _CPUCFLAGS if those are defined).
|
#
8605c6b2 |
|
27-Jul-2002 |
John Baldwin <jhb@FreeBSD.org> |
If there is not a CPUTYPE defined by default, then allow for _CPUCFLAGS to tune for more advanced processors while still supporting the minimum processor in an architecture. We can do this with the '-mtune=' option to gcc for alpha, sparc64, and powerpc and with the mis-named '-mcpu=' option for i386. This defaults to tuning i386 builds for i686 machines though not using any instructions that aren't found on an 80386. For alpha it defaults to tuning for an EV5. Approved by: peter Peril sensitive sunglasses borrowed from: peter
|
#
6e542f8c |
|
13-Jun-2002 |
Maxim Sobolev <sobomax@FreeBSD.org> |
In gcc 3.1 Pentium/MMX now has its own -march=XXX option.
|
#
ce17d4f3 |
|
30-May-2002 |
Ruslan Ermilov <ru@FreeBSD.org> |
Bootstrapping aid for those with Athlon upgrading from gcc 2.95.x. Prodded by: gordon
|
#
22e5252f |
|
15-May-2002 |
David E. O'Brien <obrien@FreeBSD.org> |
Default Alpha compiles to ev5. EV5 binaries will run on EV4[5], but the timing assumptions do pessimize running on EV4[5]. Tested by: ticso
|
#
ab4448f3 |
|
11-May-2002 |
David E. O'Brien <obrien@FreeBSD.org> |
Add pointers to GCC's allowable values for -march, and restore structure of rev 1.7 until someone can sit down and think thru all the GCC 3.1 related changes.
|
#
2c0b3c61 |
|
11-May-2002 |
David E. O'Brien <obrien@FreeBSD.org> |
With GCC 3.1, we can now treat AMD Athlon and an Athlon. Submitted by: Steven G. Kargl <kargl@troutmask.apl.washington.edu>
|
#
a25fa515 |
|
09-May-2002 |
David E. O'Brien <obrien@FreeBSD.org> |
Add the beginnings of Sparc64 support.
|
#
cf80b5b5 |
|
18-Apr-2002 |
Ruslan Ermilov <ru@FreeBSD.org> |
Optimize for i486 better (-m486 is just another deprecated synonym for -mcpu=i486). PR: i386/37212 Submitted by: Matthias Andree <matthias.andree@web.de> MFC after: 3 days
|
#
d64b4068 |
|
21-Mar-2001 |
Kris Kennaway <kris@FreeBSD.org> |
Pentium II's do not support SSE, that came in with the PIII Submitted by: sf
|
#
5ca7924a |
|
12-Mar-2001 |
Kris Kennaway <kris@FreeBSD.org> |
Use CPUTYPE to add appropriate compiler flags to COPTFLAGS for kernel builds. This may be disabled using the NO_CPU_COPTFLAGS variable. Reviewed by: arch
|
#
d6511a3c |
|
10-Mar-2001 |
Maxim Sobolev <sobomax@FreeBSD.org> |
AMD K6/K6-2/Duron/Athlon CPUs support MMX too. Missed by: kris
|
#
181b6941 |
|
27-Feb-2001 |
Kris Kennaway <kris@FreeBSD.org> |
Add definitions and support for the AMD k6-2, Pentium MMX (i586/MMX), and Pentium II, III and IV processors (p2, p3, p4), as well as 'mmx' and '3dnow' MACHINE_CPU tags as appropriate. In the near future this will be used to control various ports which have MMX/3dNow optimizations, instead of the ad-hoc methods currently used. Reviewed by: peter
|
#
62d90fb7 |
|
22-Feb-2001 |
Kris Kennaway <kris@FreeBSD.org> |
Overhaul the MACHINE_CPU behaviour: * Rip out MACHINE_CPU stuff from sys.mk and include a new <bsd.cpu.mk> after we pull in /etc/make.conf. We need to do it afterwards so we can react to the user setting of the: * CPUTYPE variable, which contains the CPU type which the user wants to optimize for. For example, if you want your binaries to only run on an i686-class machine (or higher), set this to i686. If you want to support running binaries on a variety of CPU generations, set this to the lowest common denominator. Supported values are listed in make.conf. * bsd.cpu.mk does the expansion of CPUTYPE into MACHINE_CPU using the (hopefully) correct unordered list of CPU types which should be used on that CPU. For example, an AMD k6 CPU wants any of the following: k6 k5 i586 i486 i386 This is still an unordered list so the client makefile logic is simple - client makefiles need to test for the various elements of the set in decreasing order of priority using ${MACHINE_CPU:M<foo>}, as before. The various MACHINE_CPU lists are believed to be correct, but should be checked. * If NO_CPU_CFLAGS is not defined, add relevant gcc compiler optimization settings by default (e.g. -karch=k6 for CPUTYPE=k6, etc). Release builders and developers of third-party software need to make sure not to enable CPU-specific optimization when generating code intended to be portable. We probably need to move to an /etc/world.conf to allow the optimization stuff to be applied separately to world/kernel and external compilations, but it's not any worse a problem than it was before. * Add coverage for the ia64/itanium MACHINE_ARCH/CPUTYPE. * Add CPUTYPE support for all of the CPU types supported by FreeBSD and gcc (only i386, alpha and ia64 first, since those are the minimally-working ports. Other architecture porters, please feel free to add the relevant gunk for your platform). Reviewed by: jhb, obrien
|