aboutsummaryrefslogtreecommitdiff
path: root/gnu/usr.bin/cc/Makefile.inc
Commit message (Collapse)AuthorAgeFilesLines
* remove GCC 4.2.1 build infrastructureEd Maste2020-02-291-115/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | As described in Warner's email message[1] to the FreeBSD-arch mailing list we have reached GCC 4.2.1's retirement date. At this time all supported architectures either use in-tree Clang, or rely on external toolchain (i.e., a contemporary GCC version from ports). GCC 4.2.1 was released July 18, 2007 and was imported into FreeBSD later that year, in r171825. GCC has served us well, but version 4.2.1 is obsolete and not used by default on any architecture in FreeBSD. It does not support modern C and does not support arm64 or RISC-V. Thanks to everyone responsible for maintaining, updating, and testing GCC in the FreeBSD base system over the years. So long, and thanks for all the fish. [1] https://lists.freebsd.org/pipermail/freebsd-arch/2020-January/019823.html PR: 228919 Reviewed by: brooks, imp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23124 Notes: svn path=/head/; revision=358454
* Fix GCC 4.2.1 to honor --sysroot for includes.John Baldwin2018-06-271-0/+1
| | | | | | | | | | | | | | | | | | | - Change the C++ directory entries to honor --sysroot if it is set. - Don't define CROSS_INCLUDE_DIR for the cross compiler. Instead, set TARGET_SYSTEM_ROOT to point to WORLDTMP and always define STANDARD_INCLUDE_DIR. - Change STANDARD_INCLUDE_DIR and the C++ include directories to just start with "/usr" always. The compiler will prepend the sysroot when doing cross-builds. GCC_INCLUDE_DIR (which contains headers that ship with the compiler such as intrinsincs rather than OS-supplied headers) remains hardcoded to look in TOOLS_PREFIX. Reviewed by: bdrewery (older version) Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D15127 Notes: svn path=/head/; revision=335717
* Support armv7 builds for userlandWarner Losh2017-10-051-1/+4
| | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=324340
* Convert all the arm big endian tests into a regexp rather than a list.Warner Losh2017-08-141-1/+1
| | | | | | | Suggested by: emaste@ Notes: svn path=/head/; revision=322521
* Convert gnu to using SRCTOPWarner Losh2017-03-121-2/+2
| | | | | | | | | | | | | | | Prefer SRCTOP over CURDIR/../../contrib, etc. However, retain the "up one level" instances of ../ because they are really relative to this part of the tree and not a means to find the root of the tree. As such, it's better to leave them since that further the goal of being able to move directories if watned to in the future. Differential Revision: https://reviews.freebsd.org/D9932 Sponsored by: Netflix Silence On: arch@ (twice) Notes: svn path=/head/; revision=315175
* Add full softfloat and hardfloat support for MIPS.Ruslan Bukin2016-10-311-1/+1
| | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=308130
* Remove MK_ARM_EABI, the armeb issues have been fixed. The code to supportAndrew Turner2014-10-011-1/+1
| | | | | | | | | | | | | | | the oabi is still in the tree, but it is expected this will be removed as developers work on surrounding code. With this commit the ARM EABI is the only supported supported ABI by FreeBSD on ARMa 32-bit processors. X-MFC after: never Relnotes: yes Differential Revision: https://reviews.freebsd.org/D876 Notes: svn path=/head/; revision=272350
* Use src.opts.mk in preference to bsd.own.mk except where we need stuffWarner Losh2014-05-061-0/+1
| | | | | | | from the latter. Notes: svn path=/head/; revision=265420
* Fix cross compilation after r258428.Andreas Tobler2013-11-211-1/+1
| | | | | | | Reviewed by: pfg Notes: svn path=/head/; revision=258445
* Add compiler support for the ARM EABI.Andrew Turner2013-01-171-0/+4
| | | | | | | | | ARM EABI support is disabled by default and can be enabled by setting WITH_ARM_EABI when building, however only the kernel-toolchain target will work with this flag until the rest of the support is added. Notes: svn path=/head/; revision=245539
* Merging of projects/armv6, part 3Oleksandr Tymoshenko2012-08-151-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=239272
* Remove unused support for 64 bit long on 32 bit architectures.Tijl Coosemans2011-01-071-6/+0
| | | | | | | | | | | It was used mainly to discover and fix some 64-bit portability problems before 64-bit arches were widely available. Discussed with: bde Approved by: kib (mentor) Notes: svn path=/head/; revision=217128
* Retire TARGET_ABI.Warner Losh2011-01-071-9/+6
| | | | | | | | | | | | | | | | | | Implement MACHINE_ARCH=mips64e[lb] to build N64 images. This replaces MACHINE_ARCH=mipse[lb] TARGET_ABI=n64. MACHINE_ARCH=mipsn32e[lb] has been added, but currently requires WITHOUT_CDDL due to atomic issues in libzfs. I've not investigated this much, but implemented this to preserve as much of the TARGET_ABI functionality that I could. Since its presence doesn't affect the working cases, I've kept it in for now. Added mips64e[lb] to make universe, so more kernels build. And I think this (finally) closes the curtain on the tbemd tree. Notes: svn path=/head/; revision=217123
* Complete the integration of tbemd branch into head.Warner Losh2010-11-101-3/+7
| | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=215082
* Fix build for O32 systems without a TARGET_CPUTYPE defined. We must default toJuli Mallett2010-06-021-0/+8
| | | | | | | | | MIPS-III because FreeBSD relies on a number of MIPS-III features; the ABI default would be MIPS-I which we don't intend to support. Our old default before I switched to using the ABI default was MIPS32. Notes: svn path=/head/; revision=208758
* Add/improve mips64r2, Octeon, n32 and n64 support in the toolchain.Juli Mallett2010-06-021-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o) Add TARGET_ABI to the MIPS toolchain build process. This sets the default ABI to one of o32, n32 or n64. If it is not set, o32 is assumed as that is the current default. o) Set the default GCC cpu type to any specified TARGET_CPUTYPE. This is necessary to have a working "cc" if e.g. mips64 is specified, as binutils will refuse to link objects using different ISAs in some cases. o) Add support for n32 and n64 ABIs to binutils and GCC. o) Add additional required libgcc2 stubs for n32 and n64. o) Add support for the "mips64r2" architecture to GCC. Add the "octeon" o) When static linking, wrap default libraries in --start-group and --end-group. This is required for static linking to work on n64 with the interdependencies between libraries there. This is what other OSes that support n64 seem to do, as well. o) Fix our GCC spec to define __mips64 for 64-bit targets, not __mips64__, the former being what libgcc, etc., check and the latter seemingly being a misspelling of a hand merge from a Linux spec. o) When no TARGET_CPUTYPE is specified at build time, make GCC take the default ISA from the ABI. Our old defaults were too liberal and assumed that 64-bit ABIs should default to the MIPS64 ISA and that 32-bit ABIs should default to the MIPS32 ISA, when we are supporting or will support some systems based on earlier 32-bit and 64-bit ISAs, most notably MIPS-III. o) Merge a new opcode file (and support code) from a later version of binutils and add flags and code necessary to support Octeon-specific instructions. This should also make merging opcodes for other modern architectures easier. Reviewed by: imp Notes: svn path=/head/; revision=208737
* Non-GCC gcc compatible compilers may provide the same multimedia intrinsicDavid E. O'Brien2010-05-121-0/+2
| | | | | | | | | | headers as GCC, but of their own implementation. So put the GCC ones into their own header "namespace". Requested by: ed Notes: svn path=/head/; revision=207995
* Make little endian compiles produce little endian binaries on mips.Warner Losh2010-03-051-0/+4
| | | | | | | Submitted by: neel@ Notes: svn path=/head/; revision=204771
* Fix build breakage due to the interplay between r189801 and r189824.David Schultz2009-03-141-0/+1
| | | | | | | | | | In particular, vendor sources that aren't ready for gnu99 should still be compiled with gnu89. (Before r189824, these would have generated warnings if you tried to compile them in gnu99 mode, but the warnings went unheeded due to -Wno-error.) Notes: svn path=/head/; revision=189834
* Update bmake glue to build GCC 4.2.Alexander Kabaev2007-05-191-6/+25
| | | | | | | | | | | | | | | | | | | | | | | | Also: Switch FreeBSD to use libgcc_s.so.1. Use dl_iterate_phdr to locate shared objects' exception frame info instead of depending on older register_frame_info machinery. This allows us to avoid depending on libgcc_s.so.1 in binaries that do not use exception handling directly. As an additional benefit it breaks circular libc <=> libgcc_s.so.1 dependency too. Build newly added libgomp.so.1 library, the runtime support bits for OpenMP. Build LGPLed libssp library. Our libc provides our own BSD-licensed SSP callbacks implementation, so this library is only built to benefit applications that have hadcoded knowledge of libssp.so and libssp_nonshared.a. When linked in from command line, these libraries override libc implementation. Notes: svn path=/head/; revision=169718
* Minor Makefile cleanup. Do not use Makefile variables named 'version' andAlexander Kabaev2007-03-121-1/+1
| | | | | | | | | | | | | | | | 'target'. Latter is problematic in particular as apparently FreeBSD's bsd.prog.mk re-defines it under some circumstances. This causes an unexpected failures like -dumpmachine not working for cc while working fine for c++. Do not re-define IN_GCC in multipe places, it gets inherited from Makefile.in anyway. PR: gnu/110143 Submitted by: usleepless at gmail Notes: svn path=/head/; revision=167471
* Add additional support for generating code for the arm. There's stillWarner Losh2006-09-181-0/+4
| | | | | | | | | | | | a few issues in other parts of the tree, but those will be resolved separately. Submitted by: cogenet@ Reviewed by: kan@, obrien@ MFC After: 5 days Notes: svn path=/head/; revision=162417
* We don't need this library any more.David E. O'Brien2002-06-041-6/+0
| | | | Notes: svn path=/head/; revision=97830
* Bmake bits for Gcc 3.1.David E. O'Brien2002-05-101-16/+5
|\ | | | | | | | | | | | | Partially made possible by: Wilko.Bulte@compaq.com Notes: svn path=/head/; revision=96340
| * The GCC target name does not always match our platform's name.David E. O'Brien2002-05-071-5/+7
| | | | | | | | | | | | | | MFC: rev 1.61 (needed a different way to keep from multiple inclusion) Notes: svn path=/cvs2svn/branches/WIP_GCC31/; revision=96141
| * Bmake bits for GCC 3.1.David E. O'Brien2002-04-061-3/+1
| | | | | | | | Notes: svn path=/cvs2svn/branches/WIP_GCC31/; revision=94008
| * MFC: remove 2.6.3 cc_int shlib cruft and s/GNU_ARCH/TARGET_ARCH/g.David E. O'Brien2002-04-041-4/+1
| | | | | | | | Notes: svn path=/cvs2svn/branches/WIP_GCC31/; revision=93802
| * Working changes for GCC 3.0.2.David E. O'Brien2001-12-181-0/+58
| | | | Notes: svn path=/cvs2svn/branches/WIP_GCC31/; revision=88098
* Don't use "GCCDIR" as the multiple inclusion protector. Subdir MakefilesDavid E. O'Brien2002-04-231-2/+4
| | | | | | | may want to override GCCDIR and this gets in the way. Notes: svn path=/head/; revision=95294
* Get rid of GCC_ARCH, and just use plain TARGET_ARCH.David E. O'Brien2002-04-041-3/+2
| | | | | | | We got rid of the MIPS le/be stuff that needed this a long time ago. Notes: svn path=/head/; revision=93738
* Remove some 1996 GCC 2.6.3 cruft for building a shared cc_int lib.David E. O'Brien2002-04-031-2/+0
| | | | Notes: svn path=/head/; revision=93709
* Properly get the version number after the 2.95.4 upgrade.David E. O'Brien2002-03-211-1/+2
| | | | Notes: svn path=/head/; revision=92848
* Add the `WANT_FORCE_OPTIMIZATION_DOWNGRADE' knob. If set to an integerDavid E. O'Brien2001-08-161-0/+4
| | | | | | | | | value, it forces GCC to not optimize above this level. For intance, GCC made with "WANT_FORCE_OPTIMIZATION_DOWNGRADE=1" is a good setting for the Alpha platform when building ports. Notes: svn path=/head/; revision=81749
* Remove MIPS support.David E. O'Brien2001-04-111-5/+0
| | | | | | | It has rotted quite badly and no one has provided updates for it. Notes: svn path=/head/; revision=75400
* Define "FREEBSD_NATIVE" in the freebsd-native header to reduce the amountDavid E. O'Brien2001-03-021-1/+1
| | | | | | | | | | of stuff (and thus length of error output) we put on the invocation command line. Also follow the new FSF/GNU style of giving the symbol a value so it can be used in `if()' statements in addition to `#if' so seldomly compiled in code (on some platforms) gets compiled always, to help reduce bit-rot. Notes: svn path=/head/; revision=73306
* Add comment about a requirement in using a 64-bit `long' on i386.David E. O'Brien2000-11-101-0/+3
| | | | Notes: svn path=/head/; revision=68572
* Scoot things over to the temporary *.295 source while I do major constructionDavid E. O'Brien2000-06-041-1/+1
| | | | | | | on the mainline sources. Notes: svn path=/head/; revision=61238
* Enable Haifa on sparc64 as well.Steve Price2000-04-021-1/+1
| | | | Notes: svn path=/head/; revision=58954
* Move some cflag contents down to where they are acutally used.David E. O'Brien2000-03-131-2/+0
| | | | Notes: svn path=/head/; revision=57965
* Merge cc_drv into cc_int. Merge more shared files into cc_int.David E. O'Brien2000-01-241-6/+0
| | | | Notes: svn path=/head/; revision=56552
* Allow the specification of a prefix for gcc to find all the various bits.David E. O'Brien1999-12-291-8/+7
| | | | | | | | | | If one wishes to anchor the compiler toolchain tree somewhere other than /, all one needs to do is set "TOOLS_PREFIX" to a different rooting. Submitted by: marcel (in a different format and reworked by me) Notes: svn path=/head/; revision=55220
* Fix cut-n-paste braino.David E. O'Brien1999-12-221-2/+2
| | | | Notes: svn path=/head/; revision=54991
* Another style nit.David E. O'Brien1999-12-221-2/+2
| | | | Notes: svn path=/head/; revision=54988
* * Support a non-default sized `long' data type. This allows one to easilyDavid E. O'Brien1999-12-221-5/+9
| | | | | | | | | | | build the compiler with a 64-bit longs on the i386. * Comment an important dependancy. * Fix some style nits Submitted by: bde Notes: svn path=/head/; revision=54987
* * Remove debugging cruft that accidently got committed.David E. O'Brien1999-12-221-8/+15
| | | | | | | | * Support mixed OBJDIR handling such .a's are properly found with a mix of obj subdirs both w/in and outside the source tree works. Requested by BDE. Notes: svn path=/head/; revision=54986
* Add libcc_fbsd.a that contains libc and libiberty routines needed inDavid E. O'Brien1999-12-191-6/+7
| | | | | | | | | bootstraping on FreeBSD specifically. 3.2 upgrade path tested by: marcel Notes: svn path=/head/; revision=54837
* Remove the `sysctl' get osversion hack. There are issues with cross-hostingDavid E. O'Brien1999-11-201-4/+0
| | | | | | | | builds, Also, `sysctl' is not a build-tool and I'd rather not make it one. 3-STABLE has been updated to deal with the main reason this came in. Notes: svn path=/head/; revision=53442
* Allow sub-Makefile's to determine the version of the OS we are make'ing on.David E. O'Brien1999-11-171-0/+4
| | | | Notes: svn path=/head/; revision=53267
* Cut over the system compiler from from EGCS 1.1.2 to GCC 2.95.2.David E. O'Brien1999-11-151-2/+2
| | | | Notes: svn path=/head/; revision=53173
* Move -I of cc_tool/ before the GCCDIR ones.David E. O'Brien1999-10-121-1/+1
| | | | | | | | | | | | | | | | When I imported EGCS into contrib/egcs/ I failed to prune out egcs/gcc/cp/hash.h which is generated from gxx.gperf. Thus `cc1plus' wasn't using the hash.h we generated by cc/cc_tools/Makefile, but rather the one in egcs/gcc/cp/. When I imported contrib/gcc/ I did prune gcc/cp/hash.h. Unfortunately the GCC maintainers weren't smart on their file nameing and there is also a egcs/gcc/hash.h (name overloading does NOT work as well on the filesystem as in C++...). Due to the -I ordering we are were then picking up gcc/hash.h when compiling `cc1plus'. Notes: svn path=/head/; revision=52170