History log of /src/lib/libc/compiler_rt/
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
1.55 10-Sep-2025 nat

Switch over m68k soffloat build to libc/softfloat.

m68k would previously use softfloat functions contained in libgcc_s.

This change aligns m68k with other platforms built with softfloat.

It is still possible to build the gcc_s softfloat impementation by setting
MKSOFFTFLOAT=yes MKLIBCSOFTFLOAT=no

Addresses PR/59393.


Revision tags: netbsd-11-0-RC1 perseant-exfatfs-base-20250801 netbsd-11-base
1.54 06-Apr-2025 rillig

all: remove 'constant in conditional context' from LINTFLAGS

Lint no longer emits this message, as it produced too many false
positives.


1.53 13-Mar-2025 rillig

compiler_rt: suppress lint warnings about missing prototypes


1.52 25-Jan-2025 christos

more lint for clang.


1.51 04-Oct-2024 christos

more clang lint appeasing


Revision tags: perseant-exfatfs-base-20240630 perseant-exfatfs-base
1.50 07-Jun-2024 riastradh

branches: 1.50.2;
lib/libc/compiler_rt/Makefile.inc: Sort LINTFLAGS lines.

No functional change intended.


1.49 07-Jun-2024 riastradh

libc: Pacify lint on aarch64.


1.48 01-May-2024 christos

fix clang lint build.


1.47 10-Mar-2024 rillig

compiler_rt: allow signed bit shifts for __negv

Standard C defines '1 << 31' as undefined behavior, but
https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html allows
it for GCC.


1.46 23-Jan-2024 christos

Add vax


1.45 23-Jan-2024 christos

more annotation for powerpc


1.44 21-Jan-2024 christos

fix more alpha


1.43 19-Jan-2024 christos

add lint flags for compiler_rt


1.42 09-Nov-2023 rin

libc/compiler_rt: Consistently use LIBC_MACHINE_{ARCH,CPU}

Instead of MACHINE_{ARCH,CPU}, respectively.

With this change, unnecessary comparetf2.c is no longer
compiled in for 32-bit compat libc on aarch64.


Revision tags: netbsd-10-1-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base
1.41 05-Oct-2022 nia

libc: switch aarch64 to use softfloat functions from compiler_rt

The old definitions in qp.c being all grouped together in one file
causes problems when static linking with libgcc (i.e. cc --static-libgcc)
due to functions like __trunctfdf2 conflicting with libgcc, as seen in
PR 57021

We can also add some missing functions like __fixdfti for converting
a double to an int128_t, the lack of which is currently preventing webkit
from linking on aarch64, as seen in PR 57022

Unclear to me if libc is the right place for these functions, but
we can avoid breaking compatibility right now and maintain the status
quo while avoiding some obvious immediate problems.
nm output for libc shows no functions being removed by this change.


1.40 16-Jun-2021 rin

PR port-arm/55897

Fix ABI mismatch for armhf runtime routines for floating-point arithmetics;
For hard-float arm variants, provide

(1) generic runtime routines with correct calling convention, and
(2) EABI runtime routines at the same time.

I've confirmed that no binary changes for kernels.

LGTM by skrll


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
1.39 02-Sep-2020 jakllsch

Treat aarch64eb the same as aarch64


1.38 22-Apr-2020 rin

Restrict usage of m68k assembler versions of {,u}divsi3 and {,u}divsi3 to
kernel and bootloader for 68010.

They requires a special calling convention to udivsi3, and cannot to be
mixed up in normal routines provided by libgcc or compiler_rt. Although,
there's no problem for using them in a controlled situation, i.e., kernel
and standalone programs.

Note that this does not affect at all m68k ports other than sun2, since
codes generated by gcc do not call these routines.

Assembler files are moved from common/lib/libc/arch/m68k/gen to
sys/lib/libkern/arch/m68k in order not to be compiled in libc.

Revert hack introduced to lib/libc/compiler_rt/Makefile.inc rev 1.37:
http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/compiler_rt/Makefile.inc#rev1.37

Proposed on port-sun2@ with no response...
(Again, this does not affect m68k ports other than sun2.)
http://mail-index.netbsd.org/port-sun2/2020/03/10/msg000102.html


Revision tags: phil-wifi-20200421 phil-wifi-20200411 phil-wifi-20200406
1.37 08-Mar-2020 rin

Fix broken printf(3) %d output for numbers more than two digits, e.g.,

printf("%d\n", 42) ---> "::" instead of "42"

Our __{,u}modsi3 codes assume that __udivsi3 returns remainder to
%d1 (volatile register). __udivsi3 in libgcc does not, and therefore
mixing them up results in mess.


Revision tags: is-mlppp-base phil-wifi-20191119
1.36 29-Oct-2019 joerg

Always include soft-float compare and order logic in libc when using
compiler-rt.


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
1.35 23-Jul-2017 martin

branches: 1.35.4; 1.35.6;
Do not use IEEE 754 specific functions for VAX


Revision tags: perseant-stdc-iso10646-base
1.34 16-Jun-2017 joerg

Implement __clear_cache using __syncicache on PPC


Revision tags: netbsd-8-base
1.33 26-May-2017 joerg

branches: 1.33.2;
Use MACHINE_ARCH for the sparc check.


1.32 24-May-2017 joerg

Add __clear_cache implementatin for SPARC/SPARC64.


Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
1.31 30-Mar-2016 martin

Drop fixxfdi.c for m68k (where double == long double and this isn't needed
but causes duplicate symbols with softfloat, if compiling MKSOFTFLOAT=yes)


1.30 26-Mar-2016 martin

Make sure to define __SOFT_FP__ when building a SOFTFLOAT userland


1.29 29-Feb-2016 adam

Fix buidling with MKPROFILE=no


1.28 27-Feb-2016 joerg

Sync with changes in the profiling implementation of compiler-rt.
Switch to the "Linux" runtime, which is kind of misnamed for the mostly
ELF based implementation. Make sure to hook up the runtime source
only for the profile library as it uses constructors for the output
creation.


1.27 03-Sep-2014 matt

Changes for OR1K


1.26 17-Aug-2014 matt

branches: 1.26.2;
VAX does need __clzsi2


1.25 13-Aug-2014 joerg

powerpc64 uses the same sources as powerpc and needs the long double as
double-double sources.


Revision tags: tls-maxphys-base netbsd-7-base
1.24 10-Aug-2014 matt

branches: 1.24.2;
MKCOMPAT fixes for when compat MACHINE_CPU != normal MACHINE_CPU


1.23 10-Aug-2014 joerg

Add the not-yet-used IEEE quad support files.


1.22 10-Aug-2014 matt

Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.


Revision tags: tls-earlyentropy-base
1.21 14-Jul-2014 joerg

Don't include atomic.c, we have aliases for it in src/common.


1.20 20-May-2014 joerg

branches: 1.20.2;
For the moment, don't complain about const casts.


1.19 16-May-2014 joerg

Prepare in case we want to hook up the profile init code later.


1.18 16-May-2014 joerg

Deal with PGO rename.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15
1.17 19-Mar-2014 uwe

branches: 1.17.2;
On sh3 __udivsi3 is gcc "millicode" with special calling convention
(less registers clobbered than usual). Each DSO that needs it gets
its own hidden copy from libgcc.a. Do not compile udivsi3.c for sh3
here since this C version doesn't conform to what gcc expects and
overrides the libgcc.a version.

This makes binaries compiled with gcc4.8 work. The issue was not
exposed with gcc4.5 since it uses different division strategy by
default.


Revision tags: riastradh-drm2-base3
1.16 02-Mar-2014 matt

Change remaining "MACHINE_ARCH" to "LIBC_MACHINE_ARCH"


1.15 26-Feb-2014 joerg

Update compiler-rt glue for the new source layout.


1.14 29-Jan-2014 joerg

Long double support builds for PPC now.


1.13 18-Jan-2014 joerg

ARM needs __clear_cache.


1.12 18-Jan-2014 joerg

Must use LIBC_MACHINE_ARCH for deciding whether 64bit support code is
neded. Otherwise e.g. i386 compat libs are broken.


1.11 18-Jan-2014 joerg

__fixsfdi is required, __fixdfsi already in softfloat.


1.10 18-Jan-2014 joerg

Use a separate variable for the use of GCC's unwind code.


1.9 17-Jan-2014 joerg

Don't use aeabi_dcmp.S and aeabi_fcmp.S on ARM yet, softfloat provides
the same set of symbols.


1.8 17-Jan-2014 joerg

Comment out softfloat code until it is decided what to use long term.


1.7 17-Jan-2014 joerg

__floatunsidf and __floatunsisf are provided by softfloat, but
__fixdfdi and __fixdfsi are not. So move them into the corresponding
chunks.


1.6 17-Jan-2014 joerg

Explicitly enumerate platforms that have unwind support to make
piecewise migration easier.


1.5 16-Jan-2014 matt

Don't build common quad routines if the platform is 64bit since they
will not be emitted by the compiler.


1.4 15-Jan-2014 joerg

Add profiling helper functions to the build.


1.3 03-Dec-2013 joerg

Don't include bswap for ARM right now, the routines require ARMv6.
Separate the soft-float code and don't include it in the libgcc case.


1.2 03-Dec-2013 joerg

Add ARM (EABI) specific sources. Split off code that requires C11,
unwind support in libc or overlaps with soft-float in preparation for
using compiler-rt in the non-clang case.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
1.1 04-Jul-2013 joerg

Build glue for including compiler-rt in libc, not hooked up yet.