Commit graph

67 commits

Author SHA1 Message Date
Ed Maste 7481f0978a arm64 libc: hide .cerror, .curbrk, .minbrk for WITHOUT_SYMVER
When symver is in use these are hidden because they're not listed in
the Symbol.map. Add an explicit .hidden so they are also hidden in the
WITHOUT_SYMVER case.

Reviewed by:	andrew
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D5775
2016-04-14 16:32:27 +00:00
Andrew Turner 4798b7f381 Disable support for compat syscalls on arm64. These symbols were never
shipped since arm64 exists only on 11+.

Submitted by:	brooks
Reviewed by:	emaste, imp
2016-04-06 16:09:10 +00:00
Ed Maste dae2d550d6 libc: stop exporting curbrk and minbrk in the private namespace
They are not used anywhere else in the base system and are an internal
implementation detail that does not need to be exposed.

Reviewed by:	kib
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D5728
2016-03-24 18:47:19 +00:00
Konstantin Belousov 4d22d07a07 Add support for usermode (vdso-like) gettimeofday(2) and
clock_gettime(2) on ARMv7 and ARMv8 systems which have architectural
generic timer hardware. It is similar how the RDTSC timer is used in
userspace on x86.

Fix a permission problem where generic timer access from EL0 (or
userspace on v7) was not properly initialized on APs.

For ARMv7, mark the stack non-executable. The shared page is added for
all arms (including ARMv8 64bit), and the signal trampoline code is
moved to the page.

Reviewed by:	andrew
Discussed with:	emaste, mmel
Sponsored by:	The FreeBSD Foundation
Differential revision:	https://reviews.freebsd.org/D4209
2015-12-07 12:20:26 +00:00
Craig Rodrigues 6874645fa9 Add include for declaration of _set_tp(). Eliminates -Wmissing-prototypes warnings. 2015-09-20 04:59:01 +00:00
Andrew Turner ccee502763 Add the definitions of __infinity and __nan. 2015-08-20 13:11:52 +00:00
Andrew Turner 249d5c7acc Add support for makecontext. This supports up to 8 arguments as this
simplifies the code, these can be passed in registers.

Obtained from:	ABT Systems Ltd
Sponsored by:	The FreeBSD Foundation
2015-07-10 08:36:22 +00:00
Andrew Turner 1af1dde836 Add hton and ntoh to the arm64 Symbols.map file, they exist but were not
exported.
2015-07-06 09:57:40 +00:00
Andrew Turner 74735cf188 Cleanup brk and sbrk to use the same code to find curbrk and minbrk when
both compiling for PIC and non-PIC.

Sponsored by:	ABT Systems Ltd
2015-07-02 14:54:21 +00:00
Andrew Turner 93b86b2fb0 Implement fpgetmask, it's needed by Python.
Approved by:	ABT Systems Ltd
Sponsored by:	The FreeBSD Foundation
2015-06-25 08:22:25 +00:00
Andrew Turner bbe1d59571 Export __flt_rounds from the arm64 libc.so 2015-06-25 08:15:47 +00:00
Andrew Turner f36c0f6257 Implement fpsetmask. Some third-party software makes use of it, for example
perl.

Obtained from:	ABT Systems Ltd
Sponsored by:	The FreeBSD Foundation
2015-06-24 16:18:58 +00:00
Andrew Turner a998adbb90 Set the alignment of the setjmp magic values correctly. The alignment needs
to be before the lavel, otherwise an extra word may be added between the
label and the data.

Obtained from:	ABT Systems Ltd
Sponsored by:	The FReeBSD Foundation
2015-06-24 16:15:32 +00:00
Andrew Turner cfca10c23e Set the correct register when calling sigprocmask in longjmp.
Submitted by:	Patrick Wildt <patrick@bitrig.org>
Obtained from:	drahn@bitrig.org
2015-06-06 10:28:38 +00:00
Ed Maste e09e55dc82 Add fabs() to arm64 libc
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D2532
2015-05-14 17:12:45 +00:00
Andrew Turner d422e6f9b5 Add the start of libc and libstand for arm64. Not all of the machine
dependent functions have been implemented, but this is enough for world.

Differential Revision:	https://reviews.freebsd.org/D2132
Reviewed by:	emaste
Sponsored by:	The FreeBSD Foundation
2015-04-07 09:52:14 +00:00
Andrew Turner 8daa81674e Start to import support for the AArch64 architecture from ARM. This change
only adds support for kernel-toolchain, however it is expected further
changes to add kernel and userland support will be committed as they are
reviewed.

As our copy of binutils is too old the devel/aarch64-binutils port needs
to be installed to pull in a linker.

To build either TARGET needs to be set to arm64, or TARGET_ARCH set to
aarch64. The latter is set so uname -p will return aarch64 as existing
third party software expects this.

Differential Revision:	https://reviews.freebsd.org/D2005
Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
2015-03-19 13:53:47 +00:00