aboutsummaryrefslogtreecommitdiff
path: root/gnu/lib/libgcc
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | | | Sync FreeBSD's bmake branch with Juniper's internal bmake branch.Marcel Moolenaar2012-08-221-0/+281
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Requested by: Simon Gerraty <sjg@juniper.net> Notes: svn path=/projects/bmake/; revision=239572
* | | | | | | | | Exclude the floating-point functions from libgcc_s on arm64, they areAndrew Turner2015-04-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unneeded and will be provided by compiler-rt. Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=280993
* | | | | | | | | Convert to LIBADDBaptiste Daroussin2014-11-251-4/+2
| |_|_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reduce overlinking Notes: svn path=/head/; revision=275077
* | | | | | | | Remove MK_ARM_EABI, the armeb issues have been fixed. The code to supportAndrew Turner2014-10-011-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | | | Add ${LIBC} to DPADD to fix "make checkdpadd"Enji Cooper2014-08-201-0/+1
| |_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Phabric: D632 Approved by: jmmv (mentor) MFC after: 2 weeks Notes: svn path=/head/; revision=270216
* | | | | | | Remove ia64.Marcel Moolenaar2014-07-071-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=268351
* | | | | | | Make sure that the sub-makes for unwind.h start from the CURDIRWarner Losh2014-06-241-1/+1
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (/usr/src) tree rather than the OBJDIR (/usr/obj) tree. This fixes broken incremental builds with the canonical MAKESYSPATH workaround of .../share/mk. This is a gross kludge. Notes: svn path=/head/; revision=267845
* | | | | | Use src.opts.mk in preference to bsd.own.mk except where we need stuffWarner Losh2014-05-061-1/+1
| |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | from the latter. Notes: svn path=/head/; revision=265420
* | | | | Introduce RANLIBFLAGS to mirror ARFLAGS and add -D to both. This setsDag-Erling Smørgrav2014-04-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | all timestamps in static libraries to 0 so that consecutive builds from the same source, even on different machines, produce identical libraries. MFC after: 3 weeks Notes: svn path=/head/; revision=264367
* | | | | Revision 258428 changed gcc by virtue of having _bswapsi2 _bswapdi2 inMarcel Moolenaar2014-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 Notes: svn path=/head/; revision=260874
* | | | | Replace LIBGCC by LIBCOMPILER_RT.Ed Schouten2014-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. Notes: svn path=/head/; revision=260849
* | | | | For ia64, add _bswapsi2 & _bswapdi2. The audio/flac port uses theMarcel Moolenaar2014-01-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bswap32 builtin and the compiler emits a call to the libgcc function rather than generating inline code. Notes: svn path=/head/; revision=260844
* | | | | To avoid having to explicitly test COMPILER_TYPE for settingDimitry Andric2013-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 Notes: svn path=/head/; revision=259730
* | | | | Revert r257691, r257645:Glen Barber2013-11-061-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let amd64/amd64 build again. Notes: svn path=/head/; revision=257733
* | | | | Fix libgcc build with gcc after r257645, by using -Wno-static-in-inlineDimitry Andric2013-11-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for clang only. Notes: svn path=/head/; revision=257691
* | | | | Quiesce warning around gcc_assert() for an inline macro that usesSean Bruno2013-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)); Notes: svn path=/head/; revision=257645
* | | | Enable libcompiler-rt on MIPS.Ed Schouten2013-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. Notes: svn path=/head/; revision=249702
* | | Link libgcc_s against compiler-rt on ARM EABI. This allows us to use all ofAndrew Turner2013-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. Notes: svn path=/head/; revision=248401
* | Add compiler support for the ARM EABI.Andrew Turner2013-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. Notes: svn path=/head/; revision=245539
* | Get libcompiler-rt and libgcc building on ARM with clang.Andrew Turner2012-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. Notes: svn path=/head/; revision=244382
* | Clean up hardcoded ar(1) flags in the tree to use the global ARFLAGS inEitan Adler2012-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 Notes: svn path=/head/; revision=243933
* Switch sparc64 to using libcompiler_rt; since r230021 we have a workaroundMarius Strobl2012-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. Notes: svn path=/head/; revision=235487
* Replace a bare use of nm with ${NM} for easier cross compilation inWarner Losh2012-04-211-2/+2
| | | | | | | environments where nm is spelled differently. Notes: svn path=/head/; revision=234546
* Assume a big-endian default on MIPS and drop the "eb" suffix from MACHINE_ARCH.Juli Mallett2012-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. Notes: svn path=/head/; revision=233644
* Revert last change now that the reason for it is no more...Warner Losh2011-02-021-2/+1
| | | | | | | MACHINE_ARCH is now always mipsel when building mips/mips. Notes: svn path=/head/; revision=218181
* Rewrite the ARCH check another way for backward compatibility.Jayachandran C.2011-01-291-1/+2
| | | | | | | Compilation fails now, if TARGET_ARCH=mips instead of mipsel/mipseb. Notes: svn path=/head/; revision=218064
* Fix n32 compile.Jayachandran C.2011-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) Notes: svn path=/head/; revision=217942
* Retire TARGET_ABI.Warner Losh2011-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. Notes: svn path=/head/; revision=217123
* Switch mips architectures back to libgcc.Alexander Kabaev2010-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. Notes: svn path=/head/; revision=216804
* These two cases should be different...Warner Losh2010-11-141-2/+2
| | | | | | | Submitted by: nathanw@ Notes: svn path=/head/; revision=215275
* Revert to libgcc for sparc64.Ed Schouten2010-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 Notes: svn path=/head/; revision=215185
* Replace libgcc.a by libcompiler_rt.a.Ed Schouten2010-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 Notes: svn path=/head/; revision=215127
* Don't use ${LIB} to obtain the library name.Ed Schouten2010-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 Notes: svn path=/head/; revision=215126
* Complete the integration of tbemd branch into head.Warner Losh2010-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. Notes: svn path=/head/; revision=215082
* Teach our toolchain how to generate 64-bit PowerPC binaries. This fixesNathan Whitehorn2010-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 Notes: svn path=/head/; revision=209867
* Add/improve mips64r2, Octeon, n32 and n64 support in the toolchain.Juli Mallett2010-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 Notes: svn path=/head/; revision=208737
* Non-GCC gcc compatible compilers may provide the same multimedia intrinsicDavid E. O'Brien2010-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 Notes: svn path=/head/; revision=207995
* Merge r195030 from project/mips into head by hand:Warner Losh2010-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. Notes: svn path=/head/; revision=201852
* Fix one spelling and one copy&paste error in comments.Alexander Kabaev2009-12-141-2/+2
| | | | Notes: svn path=/head/; revision=200499
* Second attempt at eliminating .text relocations in shared librariesAlexander Kabaev2009-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) Notes: svn path=/head/; revision=195697
* Back out previous revision until better tested fix is ready.Alexander Kabaev2009-06-291-7/+1
| | | | | | | Approved by: re (impliciti, by approving previos check-in) Notes: svn path=/head/; revision=195152
* Eliminate .text relocations in shared libraries compiled with stack protector.Alexander Kabaev2009-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) Notes: svn path=/head/; revision=195151
* Honor WITHOUT_INSTALLLIB in some places.Jung-uk Kim2009-02-131-0/+2
| | | | Notes: svn path=/head/; revision=188583
* MFP4: Add mips to the list of soft-float platforms.Warner Losh2008-09-191-2/+2
| | | | Notes: svn path=/head/; revision=183167
* Prefer the patch in p4 to the patch in svn as it properly sorts theWarner Losh2008-09-191-1/+1
| | | | | | | architectures alphabetically. Notes: svn path=/head/; revision=183165
* Add FreeBSD/MIPS support to GCC.David E. O'Brien2008-09-011-1/+1
| | | | Notes: svn path=/head/; revision=182627
* Let PowerPC world optionally build with -msoft-float. For FPU-less PowerPCRafal Jaworowski2008-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 Notes: svn path=/head/; revision=176530
* Remove comment that was added by mistakes and which prevented _eprintfAlexander Kabaev2007-08-141-1/+1
| | | | | | | | | and gcc_bcmp to be added to static libgcc.a. Approved by: re (kensmith) Notes: svn path=/head/; revision=171846
* Update bmake glue to build GCC 4.2.Alexander Kabaev2007-05-191-132/+252
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Don't build the libgcc with functions already included in the libc toOlivier Houchard2006-10-121-1/+1
| | | | | | | | | unbreak the build. We'll switch back to the libgcc functions and get rid of the libsoftfloat later. Notes: svn path=/head/; revision=163279