summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/cc
Commit message (Collapse)AuthorAgeFilesLines
* Add support for bmake. This includes:marcel2012-10-062-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Don't do upgrade_checks when using bmake. As long as we have WITH_BMAKE, there's a bootstrap complication in ths respect. Avoid it. Make the necessary changes to have upgrade_checks work wth bmake anyway. 2. Remove the use of -E. It's not needed in our build because we use ?= for the respective variables, which means that we'll take the environment value (if any) anyway. 3. Properly declare phony targets as phony as bmake is a lot smarter (and thus agressive) about build avoidance. 4. Make sure CLEANFILES is complete and use it on .NOPATH. bmake is a lot smarter about build avoidance and should not find files we generate in the source tree. We should not have files in the repository we want to generate, but this is an easier way to cross this hurdle. 5. Have behavior under bmake the same as it is under make with respect to halting when sub-commands fail. Add "set -e" to compound commands so that bmake is informed when sub-commands fail. 6. Make sure crunchgen uses the same make as the rest of the build. This is important when the make utility isn't called make (but bmake for example). 7. While here, add support for using MAKEOBJDIR to set the object tree location. It's the second alternative bmake looks for when determining the actual object directory (= .OBJDIR). Submitted by: Simon Gerraty <sjg@juniper.net> Submitted by: John Van Horne <jvanhorne@juniper.net>
* Merging of projects/armv6, part 3gonzo2012-08-152-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* After the binutils 2.17.50 import, the assembler supports AS_REL16nwhitehorn2012-07-081-1/+1
| | | | relocations.
* Add src.conf option WITH_SHARED_TOOLCHAIN to enable building thekib2012-04-293-2/+10
| | | | | | | | toolchain binaries as dynamically linked. Option is disabled by default. Reviewed by: ru (previous version) MFC after: 2 weeks
* Assume a big-endian default on MIPS and drop the "eb" suffix from MACHINE_ARCH.jmallett2012-03-291-2/+3
| | | | | | | | | | | | | | | This makes our naming scheme more closely match other systems and the expectations of much third-party software. MIPS builds which are little-endian should require and exhibit no changes. Big-endian TARGET_ARCHes must be changed: From: To: mipseb mips mipsn32eb mipsn32 mips64eb mips64 An entry has been added to UPDATING and some foot-shooting protection (complete with warnings which should become errors in the near future) to the top-level base system Makefile.
* Add a WITH_CLANG_IS_CC option for src.conf(5), disabled by default, thatdim2012-02-294-7/+951
| | | | | | | | | | installs clang as /usr/bin/cc, /usr/bin/c++ and /usr/bin/cpp. Note this does *not* disable building and installing gcc, which will still be available as /usr/bin/gcc, /usr/bin/g++ and /usr/bin/gcpp. If you want to disable gcc completely, you must use WITHOUT_GCC. MFC after: 2 weeks
* Enable TLS support for ARM toolchaingonzo2012-02-141-2/+0
| | | | Reviewed by: cognet
* * Don't give the impression that this compiler is GPLv3.obrien2011-10-241-1/+1
| | | | | | (It is "well known" that GCC 4.2.2 is GPLv3.) * Don't give the impression that this compiler isn't "trustable". * Fix dependency nit.
* Update gcc's __FreeBSD__ and __FreeBSD_cc_version macros for FreeBSD 10.dim2011-10-181-2/+2
|
* Remove libobjc and other Objective-C related components, as these aredim2011-04-174-42/+1
| | | | | | extremely outdated, and not used by anything in the base system. Silence from: current@
* In r219639, SSSE3 instruction set support was backported to our gcc.dim2011-04-141-1/+1
| | | | | | | | Therefore, we also need to install the new tmmintrin.h header containing the related intrinsic functions, similar to xmmintrin.h, emmintrin.h, etc. Reported by: George Liaskos <geo.liaskos@gmail.com>
* Now that TLS is supported for sparc64 by both binutils 2.17.50 committedmarius2011-03-111-1/+1
| | | | in r218822 and rtld(1) committed in r219533 turn on TLS support in GCC.
* Merge binutils 2.17.50 to head. This brings a number of improvements todim2011-02-181-7/+5
|\ | | | | | | | | | | | | | | | | x86 CPU support, better support for powerpc64, some new directives, and many other things. Bump __FreeBSD_version, and add a note to UPDATING. Thanks to the many people that have helped to test this. Obtained from: projects/binutils-2.17
| * Fix a missing underscore.nwhitehorn2010-12-091-1/+1
| |
| *-. Sync: merge r215944 through r216132 from ^/head.dim2010-12-021-1/+3
| |\ \
| * | | Sync: merge r215396 through r215463 from ^/head.dim2010-11-181-1/+1
| | | |
| * | | Sync: merge r215273 through r215318 from ^/head.dim2010-11-141-1/+1
| | | |
| * | | Sync: merge r214895 through r215140 from ^/head.dim2010-11-114-27/+28
| |\ \ \
| * | | | In case of powerpc64, enable HAVE_LD_NO_DOT_SYMS in gcc's auto-host.h.dim2010-10-221-1/+3
| | | | | | | | | | | | | | | | | | | | Requested by: nwhitehorn
| * | | | Update gcc's auto-host.h header for binutils 2.17: turn ondim2010-10-221-3/+3
| | | | | | | | | | | | | | | | | | | | HAVE_COMDAT_GROUP, HAVE_GAS_WEAKREF and HAVE_LD_SYSROOT.
* | | | | Remove unused support for 64 bit long on 32 bit architectures.tijl2011-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)
* | | | | Retire TARGET_ABI.imp2011-01-072-11/+8
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Unbreak amd64<->i386 cross builds.nwhitehorn2010-12-021-2/+3
| | | |
* | | | The driver-XXX.c files used for host CPU detection with -march=nativenwhitehorn2010-12-021-1/+2
| |_|/ |/| | | | | | | | | | | should not be compiled in the cross-tools case (where -march=native makes no sense). This fixes cross-building x86 toolchains on non-x86 systems.
* | | Let gcc and ld know where to find 32 bit libraries on amd64.tijl2010-11-171-1/+1
| | | | | | | | | | | | | | | Reviewed by: arch@ Approved by: kib (mentor)
* | | We need to add powerpc64->powerpc translations (I knew I hated copyingimp2010-11-141-1/+1
| |/ |/| | | | | | | | | | | | | this code in the first place). Also MACHINE_ARCH powerpc is 32-bit, not MACHINE_CPUARCH == powerpc. Submitted by: nathanw
* | Complete the integration of tbemd branch into head.imp2010-11-104-27/+28
|/ | | | | | | | | | | | | | | | 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.
* Teach our toolchain how to generate 64-bit PowerPC binaries. This fixesnwhitehorn2010-07-103-4/+22
| | | | | | | | a variety of bugs in binutils related to handling of 64-bit PPC ELF, provides a GCC configuration for 64-bit PowerPC on FreeBSD, and associated build systems tweaks. Obtained from: projects/ppc64
* Fix build for O32 systems without a TARGET_CPUTYPE defined. We must default tojmallett2010-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.
* Add/improve mips64r2, Octeon, n32 and n64 support in the toolchain.jmallett2010-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
* Non-GCC gcc compatible compilers may provide the same multimedia intrinsicobrien2010-05-123-3/+7
| | | | | | | headers as GCC, but of their own implementation. So put the GCC ones into their own header "namespace". Requested by: ed
* Make little endian compiles produce little endian binaries on mips.imp2010-03-051-0/+4
| | | | Submitted by: neel@
* Back-merge (by hand) r195668:imp2010-01-081-3/+0
| | | | | | r195668 | gonzo | 2009-07-13 17:01:12 -0600 (Mon, 13 Jul 2009) | 3 lines - Get rid of ugly TARGET_CPU_DEFAULT default. 16 is MASK_DSP and was set there due to my ignroance.
* Back out previous revision until better tested fix is ready.kan2009-06-291-8/+0
| | | | Approved by: re (impliciti, by approving previos check-in)
* Eliminate .text relocations in shared libraries compiled with stack protector.kan2009-06-281-0/+8
| | | | | | | | | | | | Use libssp_nonshared library to pull __stack_chk_fail_local symbol into each library that needs it instead of pulling it from libc. GCC generates local calls to this function which result in absolute relocations put into position-independent code segment, making dynamic loader do extra work everys time given shared library is being relocated and making affected text pages non-shareable. Reviewed by: kib Approved by: re (kensmith)
* Fix build breakage due to the interplay between r189801 and r189824.das2009-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.)
* Add strndup(3) prototype to string.h.kib2008-12-081-1/+1
| | | | | | | | | | | This change was erronously ommitted from the r185690, and attempt to simply add the prototype to string.h has revealed that several contributed programs defined local prototypes for strndup(), controlled by autoconfed config.h. So, manually change #undef HAVE_STRNDUP to #define HAVE_STRNDUP 1. Next import of the corresponding program would regenerate config.h, overriding the changes in this commit. No objections from: kan
* Add FreeBSD/MIPS support to GCC.obrien2008-09-013-1/+14
|
* Turn cc_tools/Makefile and Makefile.tgt into a "linear" read. Sharedobrien2008-08-313-23/+20
| | | | | parts of the configuration aren't duplicated, and arch-specific exceptions are made "in-place". Also clean up the FreeBSD/amd64 config a little.
* Use LC_ALL=C before awk generating "optionlist"ache2007-11-181-3/+3
| | | | | | (and before two other awk calls, just to be safe) Without it sorting is broken for locales with ASCII collating equivalence like (v,w) in sv_SE
* Welcome FreeBSD 8.obrien2007-10-121-2/+2
|
* Disable TLS for arm and sparc64 here as binutils 2.15 predate GNU TLSmarius2007-10-081-0/+2
| | | | | | | | support for these. This is in line with gnu/lib/libgomp/config.h and gnu/lib/libstdc++/config.h. Reviewed by: cognet, obrien Approved by: re (kensmith)
* Make gcc default to big endian when building it for a big endian target.cognet2007-09-181-0/+4
| | | | | | | This was lost while migrating to gcc4. Reported by: Michael Reifenberger <mike at Reifenberger dot com> Approved by: re (blanket)
* Fix compiles when user chooses to disable both ObjC and C++ support inkan2007-05-281-1/+2
| | | | | | GCC. Reported by: bz
* Back out the addition of -static to LDFLAGS; I'm pretty confidentru2007-05-211-1/+0
| | | | | | | | | | | | | | | | that the build failure was caused by a computer/sources date/time mismatch that caused GCC tools to be mistakenly rebuilt again at an inappropriate time during buildworld, re-linking them against new libraries instead of host's installed libraries and thus making them not runnable by the host. Normally they are only built in the early stage of buildworld (build-tools) that links them against shared libraries of the host, but if either the system clock or modification date/time on source files is set incorrectly, make(1) can be foolished into thinking that tools are stale and will rebuild them again, now in the "target" environment which is not suitable for building helper apps that are to be run during buildworld. OK'ed by: kan
* Work-around for upgrading from a pre-symbol-versioned world.scottl2007-05-191-0/+1
| | | | Blame-to: cperciva
* Update bmake glue to build GCC 4.2.kan2007-05-1930-827/+2672
| | | | | | | | | | | | | | | | | | | | | 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.
* Minor Makefile cleanup. Do not use Makefile variables named 'version' andkan2007-03-125-9/+8
| | | | | | | | | | | | | '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
* Remove gratuitous white space change.obrien2006-11-061-12/+5
|
* Prepare to pick up manpages from their new location.ru2006-09-212-7/+2
|
OpenPOWER on IntegriCloud