summaryrefslogtreecommitdiffstats
path: root/gnu/lib/libgcc
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | Revision 258428 changed gcc by virtue of having _bswapsi2 _bswapdi2 inmarcel2014-01-191-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libgcc, but this was not propagated to this file. Revision 260844 added them here for ia64 unbeknownst revision 258428. Fix it for all... Pointed out by: pfg
* | | | | Replace LIBGCC by LIBCOMPILER_RT.ed2014-01-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | We now use libcompiler_rt on all platforms now. Instead of referring directly to -lgcc and LIBGCC, use -lcompiler_rt and LIBCOMPILER_RT.
* | | | | For ia64, add _bswapsi2 & _bswapdi2. The audio/flac port uses themarcel2014-01-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | bswap32 builtin and the compiler emits a call to the libgcc function rather than generating inline code.
* | | | | To avoid having to explicitly test COMPILER_TYPE for settingdim2013-12-221-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clang-specific or gcc-specific flags, introduce the following new variables for use in Makefiles: CFLAGS.clang CFLAGS.gcc CXXFLAGS.clang CXXFLAGS.gcc In bsd.sys.mk, these get appended to the regular CFLAGS or CXXFLAGS for the right compiler. MFC after: 1 week
* | | | | Revert r257691, r257645:gjb2013-11-061-13/+0
| | | | | | | | | | | | | | | | | | | | Let amd64/amd64 build again.
* | | | | Fix libgcc build with gcc after r257645, by using -Wno-static-in-inlinedim2013-11-051-0/+2
| | | | | | | | | | | | | | | | | | | | for clang only.
* | | | | Quiesce warning around gcc_assert() for an inline macro that usessbruno2013-11-041-0/+11
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a static variable. This code has been moved around in gcc, but is still in use in the latest trunk version of the compiler. gnu/lib/libgcc/../../../contrib/gcc/unwind-dw2.c:208:36: warning: static variable 'dwarf_reg_size_table' is used in an inline function with external linkage [-Wstatic-in-inline] gcc_assert (index < (int) sizeof(dwarf_reg_size_table));
* | | | Enable libcompiler-rt on MIPS.ed2013-04-201-4/+0
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | Originally we disabled libcompiler-rt on MIPS and SPARC64, because of an issue where __clzdi2 and __ctzdi2 would cause endless recursion. This bug has been fixed in r230021 already, but for some reason we only switched to libcompiler-rt on SPARC64 -- not MIPS. This means we can finally use <stdatomic.h> on all our architectures.
* | | Link libgcc_s against compiler-rt on ARM EABI. This allows us to use all ofandrew2013-03-171-3/+3
| |/ |/| | | | | | | | | the symbols in compiler-rt, including the ones not available in the old libgcc. This fixes the build with clang which generates calls to funstions that are missing from libgcc_s.
* | Add compiler support for the ARM EABI.andrew2013-01-171-8/+17
| | | | | | | | | | | | 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.
* | Get libcompiler-rt and libgcc building on ARM with clang.andrew2012-12-181-1/+8
| | | | | | | | | | | | | | * Don't provide clear_cache or the __sync_* functions on ARM with clang as they are provided by clang as builtin functions. * Tell clang it is aloud to compile some libgcc code using heinous GCC extensions.
* | Clean up hardcoded ar(1) flags in the tree to use the global ARFLAGS ineadler2012-12-061-2/+2
|/ | | | | | | | | | | | share/mk/sys.mk instead. This is part of a medium term project to permit deterministic builds of FreeBSD. Submitted by: Erik Cederstrand <erik@cederstrand.dk> Reviewed by: imp, toolchain@ Approved by: cperciva MFC after: 2 weeks
* Switch sparc64 to using libcompiler_rt; since r230021 we have a workaroundmarius2012-05-151-1/+1
| | | | | in place allowing it to be used there and since r235388 (see also r235486) we also have usable div/mod optimizations like libgcc has.
* Replace a bare use of nm with ${NM} for easier cross compilation inimp2012-04-211-2/+2
| | | | environments where nm is spelled differently.
* Assume a big-endian default on MIPS and drop the "eb" suffix from MACHINE_ARCH.jmallett2012-03-291-1/+1
| | | | | | | | | | | | | | | 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.
* Revert last change now that the reason for it is no more...imp2011-02-021-2/+1
| | | | MACHINE_ARCH is now always mipsel when building mips/mips.
* Rewrite the ARCH check another way for backward compatibility.jchandra2011-01-291-1/+2
| | | | Compilation fails now, if TARGET_ARCH=mips instead of mipsel/mipseb.
* Fix n32 compile.jchandra2011-01-271-2/+2
| | | | | | | These changes are needed to fix n32 compile after the recent change of mips n32 MACHINE_ARCH to mipsn32eb/mipsn32el. Reviewed by: imp, bz (earlier version)
* Retire TARGET_ABI.imp2011-01-071-2/+3
| | | | | | | | | | | | | | | 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.
* Switch mips architectures back to libgcc.kan2010-12-291-1/+1
| | | | | | MIPS64 n64 binaries are broken with libcompiler_rt at this time. Switch mips back to libgcc until the cause of breakage is analyzed and fixed.
* These two cases should be different...imp2010-11-141-2/+2
| | | | Submitted by: nathanw@
* Revert to libgcc for sparc64.ed2010-11-121-0/+4
| | | | | | | | | I've had a report of a sparc64 system where cc1 generates illegal instructions. We still have to diagnose this properly, but instead of hosing all sparc64 boxes out there, fall back to libgcc to prevent more damage. Reported by: Florian Smeets
* Replace libgcc.a by libcompiler_rt.a.ed2010-11-111-1/+0
| | | | | | | | | | | | | | | libcompiler_rt.a is a BSD licensed C language runtime, which implements many routines which are linked into binaries on architectures where certain functionality is missing (e.g. 64 bits mul/div on i386). Unfortunately, libcompiler_rt cannot replace libgcc entirely. Certain features, such as an unwinder for exception handling, are missing. That's why only libgcc.a is replaced for now, because this one does seem to be complete. Tested by: rene (amd64), nwhitehorn (powerpc), droso (i386 exprun) and many others. Thanks! Obtained from: user/ed/compiler-rt
* Don't use ${LIB} to obtain the library name.ed2010-11-111-9/+9
| | | | | | | Once we use libcompiler_rt, the LIB-line must go, to prevent libgcc.a from being built. Therefore, just hardcode the name. Obtained from: user/ed/compiler-rt
* Complete the integration of tbemd branch into head.imp2010-11-101-9/+9
| | | | | | | | | | | | | | | | 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-101-0/+5
| | | | | | | | 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
* Add/improve mips64r2, Octeon, n32 and n64 support in the toolchain.jmallett2010-06-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-121-0/+1
| | | | | | | headers as GCC, but of their own implementation. So put the GCC ones into their own header "namespace". Requested by: ed
* Merge r195030 from project/mips into head by hand:imp2010-01-081-1/+5
| | | | | | | r195030 | gonzo | 2009-06-25 19:27:31 -0600 (Thu, 25 Jun 2009) | 4 lines - Switch to libc softfloat from libgcc implementation. The problem with latter is that it is not complete, fpsetXXX/fpgetXXX functions are missing.
* Fix one spelling and one copy&paste error in comments.kan2009-12-141-2/+2
|
* Second attempt at eliminating .text relocations in shared librarieskan2009-07-141-0/+6
| | | | | | | | | | | | | | compiled with stack protector. 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 every time given shared library is being relocated and making affected text pages non-shareable. Reviewed by: kib Approved by: re (kib)
* Back out previous revision until better tested fix is ready.kan2009-06-291-7/+1
| | | | Approved by: re (impliciti, by approving previos check-in)
* Eliminate .text relocations in shared libraries compiled with stack protector.kan2009-06-281-1/+7
| | | | | | | | | | | | 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)
* Honor WITHOUT_INSTALLLIB in some places.jkim2009-02-131-0/+2
|
* MFP4: Add mips to the list of soft-float platforms.imp2008-09-191-2/+2
|
* Prefer the patch in p4 to the patch in svn as it properly sorts theimp2008-09-191-1/+1
| | | | architectures alphabetically.
* Add FreeBSD/MIPS support to GCC.obrien2008-09-011-1/+1
|
* Let PowerPC world optionally build with -msoft-float. For FPU-less PowerPCraj2008-02-241-1/+1
| | | | | | | | | variations (e500 currently), this provides a gcc-level FPU emulation and is an alternative approach to the recently introduced kernel-level emulation (FPU_EMU). Approved by: cognet (mentor) MFp4: e500
* Remove comment that was added by mistakes and which prevented _eprintfkan2007-08-141-1/+1
| | | | | | and gcc_bcmp to be added to static libgcc.a. Approved by: re (kensmith)
* Update bmake glue to build GCC 4.2.kan2007-05-191-134/+254
| | | | | | | | | | | | | | | | | | | | | 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.
* Don't build the libgcc with functions already included in the libc tocognet2006-10-121-1/+1
| | | | | | unbreak the build. We'll switch back to the libgcc functions and get rid of the libsoftfloat later.
* Convert NO_PROFILE and NO_LIB32 to new style.ru2006-03-181-2/+3
|
* NODOCCOMPRESS -> NO_DOCCOMPRESSru2004-12-211-4/+4
| | | | | | | | NOINFO -> NO_INFO NOINFOCOMPRESS -> NO_INFOCOMPRESS NOLINT -> NO_LINT NOPIC -> NO_PIC NOPROFILE -> NO_PROFILE
* For variables that are only checked with defined(), don't provideru2004-10-241-1/+1
| | | | any fake value.
* Add missing patch which was forgotten during GCC 3.4.2 import. libgcc.akan2004-08-041-4/+2
| | | | | | | | gets most of it content back now, when symbols from LIB2FUNCS are actually compiled. Noticed by: Steve Kargl <gk at troutmask dot apl dot washington dot edu> Pointy hat to: kan
* Bmake glue for GCC 3.4.2-prerelease.kan2004-07-281-25/+29
|
* Add unwind-c.c file required for -fexceptions in C sources.kan2003-07-111-2/+2
|
* Catch up with bsd.lib.mk,v 1.143.ru2003-06-301-13/+0
|
* Build/install the PIC version of libgcc (libcc_pic.a) for use by sharedpeter2003-06-131-0/+3
| | | | libraries that do exception unwinding.
* Zap now-unused SHLIB_MINORpeter2002-09-281-1/+0
|
OpenPOWER on IntegriCloud