aboutsummaryrefslogtreecommitdiff
path: root/lib/libgcc_s
Commit message (Collapse)AuthorAgeFilesLines
* libgcc_s: export integer and floating point __aeabi_ symbolsMichal Meloun2025-05-041-0/+68
| | | | | | | | | | | | | | | | | | | Export all integer and floating point __aeabi_ functions defined by "Run-time ABI for Arm Architecture" from libgcc, excluding __aeabi_h2f_alt, __aeabi_f2h_alt and __aeabi_d2h_alt, which are not yet implemented by compiler-rt. To maintain ABI backward compatibility, convert __aeabi_ floating-point symbols previously exported from libc to an explicit non-default version. Remove guessing of vfp/not-vfp version for compiler-rt sources. The vfp version needs additional runtime logic to select the right implementation and we don't have it implemented. MFC after: 1 month Reviewed by: dim PR: 271087 Differential Revision: https://reviews.freebsd.org/D50100
* Revert "Export additional __aeabi_ symbols from arm's libgcc_s"Dimitry Andric2025-01-041-26/+1
| | | | | | | | | | | | This reverts commit caab831338f4eeaa7455e981478be9fd414b7969, because some new unresolved issues came up in bug 271087: Some programs depend on these symbols, when they are compiled for armv6 or armv7. Closes #1560 (slightly changed due to sorting of the symbols). PR: 271087 Reported by: mmel MFC after: immediately
* Export additional __aeabi_ symbols from arm's libgcc_sDimitry Andric2024-12-281-1/+26
| | | | | | | | | | Some programs depend on these symbols, when they are compiled for armv6 or armv7. Closes #1560 (slightly changed due to sorting of the symbols). PR: 271087 Reported by: fuz Submitted by: jfc@mit.edu MFC after: 1 week
* Update Makefile.depend filesSimon J. Gerraty2024-10-141-1/+0
| | | | | | | After building packages we have a number of new and updated Makefile.depend files Reviewed by: stevek
* Remove residual blank line at start of MakefileWarner Losh2024-07-151-1/+0
| | | | | | | This is a residual of the $FreeBSD$ removal. MFC After: 3 days (though I'll just run the command on the branches) Sponsored by: Netflix
* libgcc_s: fix nonsense definesBrooks Davis2024-05-171-4/+4
| | | | | | | These symbols are present on amd64 or i386. Reported by: kaktus, jhibbits Fixes: 98c8caafffb65 libgcc_s: 80-bit long double function are x86-only
* libgcc_s: __extendxftf2 and __trunctfxf2 are amd64-onlyBrooks Davis2024-05-021-4/+6
| | | | | | | __extendxftf2 and __trunctfxf2 build on amd64 not aarch64 and riscv. Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D45052
* libgcc_s: 80-bit long double function are x86-onlyBrooks Davis2024-05-011-9/+13
| | | | | | | Don't try to expose them on other architectures. Reviewed by: arichardson Differential Revision: https://reviews.freebsd.org/D45028
* libgcc_s: expose __divmoddi4 on i386Brooks Davis2024-04-192-0/+9
| | | | | | | | | | | | GCC has used this for some time (since 7.0) and apparently we were getting away with using the hidden symbol, but when linking with --no-undefined-version we get an error unless it's properly exported. (For anyone who wonders at the assymetry, __udivmoddi4 is indeed much older and was introduced with GCC 3.0.) MFC after: 3 days Reviewed by: dim Differential Revision: https://reviews.freebsd.org/D44878
* libgcc_s: exclude symbols not present on some archesBrooks Davis2024-04-161-0/+24
| | | | | | | arm, aarch64, and riscv lack some/all frame_info interfaces. arm and powerpc lack some numeric functions. Differential Revision: https://reviews.freebsd.org/D44324
* libgcc_s: only export 128-bit int APIs when availableBrooks Davis2024-04-161-26/+41
| | | | | | | | | These interfaces are only compiled when the platform supports 128-bit ints. Use a CRT_HAS_128BIT guard similar to the one used in the compiler_rt sources. Reviewed by: dim Differential Revision: https://reviews.freebsd.org/D44323
* libgcc_s: only export 128-bit long double when availableBrooks Davis2024-04-161-0/+2
| | | | | | | These functions are only available on aarch64 and riscv so only try to export them on those architectures. Differential Revision: https://reviews.freebsd.org/D44322
* Merge llvm-project main llvmorg-18-init-15088-gd14ee76181fbDimitry Andric2024-04-061-0/+2
| | | | | | | | This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-15088-gd14ee76181fb. PR: 276104 MFC after: 1 month
* dirdeps: Update/fix Makefile.depend* for toolchainKa Ho Ng2023-11-271-0/+1
| | | | This fixes make pseudo/toolchain.
* Remove $FreeBSD$: one-line sh patternWarner Losh2023-08-163-3/+0
| | | | Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
* Remove $FreeBSD$: one-line .h patternWarner Losh2023-08-163-3/+0
| | | | Remove /^\s*\*+\s*\$FreeBSD\$.*$\n/
* libcompiler_rt/libgcc_s: Remove MIPS build glue.John Baldwin2023-03-291-2/+1
| | | | | Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D39328
* Export _Unwind_Complete and _Unwind_VRS_Pop from arm's libgcc_sDimitry Andric2022-04-271-0/+2
| | | | | | | | | | Apparently some ports on arm require these symbols, and while they were available in llvm's libunwind, they were never exported via the arm specific Symbol.map. Put them in the same version block as gcc does (GCC_3.5). Reported by: Robert Clausecker <fuz_at_fuz.su> MFC after: 3 days
* libgcc_s: Export 64-bit int to 128-bit float functionsJessica Clarke2021-10-031-0/+2
| | | | | | | | | | | | The corresponding 32-bit int and 128-bit int functions were added in 790a6be5a169, as were all combinations of the float to int functions, but these two were overlooked. __floatditf is needed to build curl for riscv as there's a signed 64-bit int to 128-bit float conversion in lib/progress.c's trspeed as of 7.77.0. Reviewed by: dim MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D31997
* Add build system support for ASAN+UBSAN instrumentationAlex Richardson2021-08-021-0/+3
| | | | | | | | | | | | This adds two new options WITH_ASAN/WITH_UBSAN that can be set to enable instrumentation of all binaries with AddressSanitizer and/or UndefinedBehaviourSanitizer. This current patch is almost sufficient to get a complete buildworld with sanitizer instrumentation but in order to actually build and boot a system it depends on a few more follow-up commits. Reviewed By: brooks, kib, markj Differential Revision: https://reviews.freebsd.org/D31043
* Export various 128 bit long double functions from libgcc_s.so.1Dimitry Andric2021-06-142-0/+32
| | | | | | | | | | | | | | | These were already compiled for some time on aarch64 and riscv, by including lib/libcompiler_rt/Makefile.inc, but never exported in the shared library. Since gcc exports these under version GCC_4.6.0, we do the same. This review should replace D11482 for now. For e.g. amd64 more work is still to be done, as compiler-rt does not seem to support 128 bit long double math for that architecture. Reviewed by: cem MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D28690
* Rename NO_WERROR -> MK_WERROR=noAlex Richardson2021-01-071-1/+1
| | | | | | | | As suggested in D27598. This also supports MK_WERROR.clang=no and MK_WERROR.gcc=no to support the existing NO_WERROR.<compiler> uses. Reviewed By: brooks Differential Revision: https://reviews.freebsd.org/D27601
* Remove the SYMVER build option.John Baldwin2020-04-301-2/+0
| | | | | | | | | | | | | | This option was added as a transition aide when symbol versioning was first added. It was enabled by default in 2007 and is supported even by the old GPLv2 binutils. Trying to disable it currently fails to build in libc and at this point it isn't worth fixing the build. Reported by: Michael Dexter Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D24637 Notes: svn path=/head/; revision=360511
* Fix LLVM libunwnwind _Unwind_Backtrace symbol version for ARM.Michal Meloun2019-12-164-1/+13
| | | | | | | | | | | | | | | | | In original GNU libgcc, _Unwind_Backtrace is published with GCC_3.3 version for all architectures but ARM. For ARM should be publishes with GCC_4.3.0 version. This was originally omitted in r255095, fixed in r318024 and omitted aging in LLVM libunwind implementation in r354347. For ARM _Unwind_Backtrace should be published as default with GCC_4.3.0 version , (because this is right original version) and again as normal(not-default) with GCC_3.3 version (to maintain ABI compatibility compiled/linked with wrong pre r318024 libgcc) PR: 233664 Notes: svn path=/head/; revision=355803
* Update Makefile.depend filesSimon J. Gerraty2019-12-111-1/+0
| | | | | | | | | | | | | Update a bunch of Makefile.depend files as a result of adding Makefile.depend.options files Reviewed by: bdrewery MFC after: 1 week Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org/D22494 Notes: svn path=/head/; revision=355617
* Fix llvm-libunwind userspace build on ARMConrad Meyer2019-11-054-12/+62
| | | | | | | | | | | | | | | | | | | | GCC's libgcc exports a few ARM-specific symbols for ARM EABI, AEABI, or EHABI or whatever it's called. Export the same ones from LLVM-libunwind's libgcc_s, on ARM. As part of this, convert libgcc_s from a direct Version.map to one constructed from component Symbol.map files. This allows the ARM-specific Symbol.map to be included only on ARM. Fix ARM-only oddities in struct name/aliases in LLVM-libunwind to match non-ARM definitions and ARM-specific expectations in libcxxrt / libcompiler_rt. No functional change intended for non-ARM architectures. This commit does not actually flip the switch for ARM defaults from libgcc to llvm-libunwind, but makes it possible (to compile, anyway). Notes: svn path=/head/; revision=354347
* Fix build by escaping a line break.Glen Barber2018-01-311-1/+1
| | | | | | | | | PR: 225597 Submitted by: cbnfinley at gmail.com Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=328637
* Don't include long double routines on architectures with small long double.John Baldwin2018-01-311-2/+8
| | | | | | | | | Reviewed by: emaste Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D13874 Notes: svn path=/head/; revision=328635
* DIRDEPS_BUILD: libgcc now depends on MK_LLVM_LIBUNWINDBryan Drewery2017-10-311-0/+16
| | | | | | | | | | The dependency on gnu/lib/libgcc or lib/libgcc* is determined at 'make dirdeps' time. Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325181
* Sort entries in libgcc_s Version.mapEd Maste2017-07-051-1/+1
| | | | Notes: svn path=/head/; revision=320673
* Apply r315689 to lib/libgcc_s as well to unbreak the gcc xtoolchain buildEnji Cooper2017-03-281-0/+4
| | | | | | | | | | | | | | lib/libgcc_s consumes lib/libcompiler_rt/Makefile*. The NO_WERROR.gcc in lib/libcompiler_rt/Makefile doesn't seem to have made a difference in being able to build this, so sprinkle NO_WERROR.gcc here as well. MFC after: 3 days Reported by: Jenkins (FreeBSD-head-amd64-gcc) Tested with: amd64-gcc-6.3.0 (devel/amd64-xtoolchain-gcc) Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=316101
* libgcc_s: add libc DT_NEEDED to fix underlinkingEd Maste2017-01-131-0/+1
| | | | | | | | | | PR: 216012 Reported by: jbeich MFC after: 1 week Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=312076
* libcc_{s,eh}: build without SSPEd Maste2016-11-111-0/+1
| | | | | | | | | | | | | As in the gnu/lib/libgcc Makefile: libgcc is linked in last and thus cannot depend on ssp symbols coming from earlier libraries. Disable stack protection for this library. Reviewed by: dim Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=308563
* Spell 'PACKAGE' correctly.Glen Barber2016-11-111-1/+1
| | | | | | | | | Submitted by: Kyle Evans, emaste MFC after: 3 days Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=308537
* add missing i386 symbols libgcc_s symbol version mapEd Maste2016-11-081-0/+26
| | | | | | | | | | After r308294 they were missing on i386 (and previously were exported only accidentally). Reported by: antoine Notes: svn path=/head/; revision=308445
* add __divdi3 and __udivdi3 to libgcc_s symbol version mapEd Maste2016-11-061-0/+2
| | | | | | | | | | After r308294 they were missing on i386 (and previously were exported only accidentally). Reported by: antoine Notes: svn path=/head/; revision=308379
* libgcc_s: make unspecified shlib symbols localEd Maste2016-11-041-0/+3
| | | | | | | | | We want only symbols explicitly specified in the Version.map. Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=308294
* Move the LLVM-based libgcc_s to /libEd Maste2016-10-241-0/+1
| | | | | | | | | | When enabled, it should install in the same location as the existing library. Reported by: antoine Notes: svn path=/head/; revision=307864
* libgcc_s: add libm dependencies from div{d,s,x}c3Ed Maste2016-10-131-0/+18
| | | | | | | | | | | | | | | compiler-rt's complex division support routines contain calls to compiler builtins such as `__builtin_scalbnl`. Unfortunately Clang turns these back into a call to `scalbnl`. For now link libm's C version of the required support routines. Reviewed by: ed Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D8190 Notes: svn path=/head/; revision=307231
* Introduce lib/libgcc_eh and lib/libgcc_s for LLVM's implementationEd Maste2016-10-132-0/+137
They are not yet connected to the build, but I am adding them to allow for easier testing, ports exp-runs, etc. Reviewed by: ed Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D8188 Notes: svn path=/head/; revision=307230