<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libc/arm/sys, branch releng/12.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2018-06-04T19:35:15Z</updated>
<entry>
<title>Reimplement brk() and sbrk() to avoid the use of _end.</title>
<updated>2018-06-04T19:35:15Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2018-06-04T19:35:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=9f9c9b22ecfd9e87cbe9e1becf946faeb5fbcac6'/>
<id>urn:sha1:9f9c9b22ecfd9e87cbe9e1becf946faeb5fbcac6</id>
<content type='text'>
Previously, libc.so would initialize its notion of the break address
using _end, a special symbol emitted by the static linker following
the bss section.  Compatibility issues between lld and ld.bfd could
cause the wrong definition of _end (libc.so's definition rather than
that of the executable) to be used, breaking the brk()/sbrk()
interface.

Avoid this problem and future interoperability issues by simply not
relying on _end.  Instead, modify the break() system call to return
the kernel's view of the current break address, and have libc
initialize its state using an extra syscall upon the first use of the
interface.  As a side effect, this appears to fix brk()/sbrk() usage
in executables run with rtld direct exec, since the kernel and libc.so
no longer maintain separate views of the process' break address.

PR:		228574
Reviewed by:	kib (previous version)
MFC after:	2 months
Differential Revision:	https://reviews.freebsd.org/D15663
</content>
</entry>
<entry>
<title>Remove architecture specific shmat.S files.</title>
<updated>2018-04-05T18:17:46Z</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2018-04-05T18:17:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=97e5d68bb0f0df7e562e11e2aa24c8e685ced041'/>
<id>urn:sha1:97e5d68bb0f0df7e562e11e2aa24c8e685ced041</id>
<content type='text'>
These files are identical to the generated system calls.
In the case of MIPS, the file was already disconnected from the build.

Submitted by:	Ali Mashtizadeh &lt;ali@mashtizadeh.com&gt;
Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D14976
</content>
</entry>
<entry>
<title>Remove architecture specific sigreturn.S files.</title>
<updated>2018-04-04T22:45:08Z</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2018-04-04T22:45:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=7dd87e9a82e8cb5326186e2c3e31eb8e534ee087'/>
<id>urn:sha1:7dd87e9a82e8cb5326186e2c3e31eb8e534ee087</id>
<content type='text'>
All of these files are identical (modulo license blocks and VCS IDs) to
the files generated by lib/libc/sys/Makefile.inc and serve no purpose.

Reported by:	Ali Mashtizadeh &lt;ali@mashtizadeh.com&gt;
Reviewed by:	kib
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D14953
</content>
</entry>
<entry>
<title>libc: further adoption of SPDX licensing ID tags.</title>
<updated>2017-11-25T17:12:48Z</updated>
<author>
<name>Pedro F. Giffuni</name>
<email>pfg@FreeBSD.org</email>
</author>
<published>2017-11-25T17:12:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d915a14ef094c8dfc1a5aee70e135abfec01d0f1'/>
<id>urn:sha1:d915a14ef094c8dfc1a5aee70e135abfec01d0f1</id>
<content type='text'>
Mainly focus on files that use BSD 2-Clause license, however the tool I
was using mis-identified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.
</content>
</entry>
<entry>
<title>Reduce duplicate NOASM and PSEUDO definitions</title>
<updated>2016-09-08T22:38:20Z</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2016-09-08T22:38:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=aec2fba60fb75d0e6d43b95bfc6c93dd5a59cec3'/>
<id>urn:sha1:aec2fba60fb75d0e6d43b95bfc6c93dd5a59cec3</id>
<content type='text'>
The initial value of NOASM is nearly the same in all cases and the
initial value of PSEUDO is the same in all cases so reduce duplication
(and hopefully, future merge conflicts) by machine independent defaults.

Also document the PSEUDO variable.

Reviewed by:	jhb, kib
Obtained from:	CheriBSD
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D7820
</content>
</entry>
<entry>
<title>Rewrite ptrace(2) wrappers in C.</title>
<updated>2016-08-29T18:47:51Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2016-08-29T18:47:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=afd3e268d2560b0b878c07adf086ddbca58ca524'/>
<id>urn:sha1:afd3e268d2560b0b878c07adf086ddbca58ca524</id>
<content type='text'>
Besides removing hand-translation to assembler, this also adds missing
wrappers for arm64 and risc-v.

Reviewed by:	emaste, jhb
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D7694
</content>
</entry>
<entry>
<title>Remove unusedd and obsolete openbsd_poll system call.  (Phase 1)</title>
<updated>2016-08-18T10:50:40Z</updated>
<author>
<name>George V. Neville-Neil</name>
<email>gnn@FreeBSD.org</email>
</author>
<published>2016-08-18T10:50:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5cba398b0c04ed6de6dcf4b5981f699329f93a4a'/>
<id>urn:sha1:5cba398b0c04ed6de6dcf4b5981f699329f93a4a</id>
<content type='text'>
Reported by:	brooks
Reviewed by:	brooks,jhb
Differential Revision:	https://reviews.freebsd.org/D7548
</content>
</entry>
<entry>
<title>Implement userspace gettimeofday(2) with HPET timecounter.</title>
<updated>2016-08-17T09:52:09Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2016-08-17T09:52:09Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=16808549465cce0799540b9c2d79c6a8cd40691a'/>
<id>urn:sha1:16808549465cce0799540b9c2d79c6a8cd40691a</id>
<content type='text'>
Right now, userspace (fast) gettimeofday(2) on x86 only works for
RDTSC.  For older machines, like Core2, where RDTSC is not C2/C3
invariant, and which fall to HPET hardware, this means that the call
has both the penalty of the syscall and of the uncached hw behind the
QPI or PCIe connection to the sought bridge.  Nothing can me done
against the access latency, but the syscall overhead can be removed.
System already provides mappable /dev/hpetX devices, which gives
straight access to the HPET registers page.

Add yet another algorithm to the x86 'vdso' timehands. Libc is updated
to handle both RDTSC and HPET.  For HPET, the index of the hpet device
to mmap is passed from kernel to userspace, index might be changed and
libc invalidates its mapping as needed.

Remove cpu_fill_vdso_timehands() KPI, instead require that
timecounters which can be used from userspace, to provide
tc_fill_vdso_timehands{,32}() methods.  Merge i386 and amd64
libc/&lt;arch&gt;/sys/__vdso_gettc.c into one source file in the new
libc/x86/sys location.  __vdso_gettc() internal interface is changed
to move timecounter algorithm detection into the MD code.

Measurements show that RDTSC even with the syscall overhead is faster
than userspace HPET access.  But still, userspace HPET is three-four
times faster than syscall HPET on several Core2 and SandyBridge
machines.

Tested by:	Howard Su &lt;howard0su@gmail.com&gt;
Sponsored by:	The FreeBSD Foundation
MFC after:	1 month
Differential revision:	https://reviews.freebsd.org/D7473
</content>
</entry>
<entry>
<title>Replace use of the pipe(2) system call with pipe2(2) with a zero flags</title>
<updated>2016-06-22T21:11:27Z</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2016-06-22T21:11:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b60998c6331e2be21f1fc29fa6c82d94a1f72ef0'/>
<id>urn:sha1:b60998c6331e2be21f1fc29fa6c82d94a1f72ef0</id>
<content type='text'>
value.

This eliminates the need for machine dependant assembly wrappers for
pipe(2).

It also make passing an invalid address to pipe(2) return EFAULT rather
than triggering a segfault.  Document this behavior (which was already
true for pipe2(2), but undocumented).

Reviewed by:	andrew
Approved by:	re (gjb)
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D6815
</content>
</entry>
<entry>
<title>Do not compile ARMv6 instructions on ARMv4/v5.  Although clang is fine</title>
<updated>2015-12-24T22:13:52Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2015-12-24T22:13:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=66fa67c7f78053395cfebbbbea69ff8c26e0ae77'/>
<id>urn:sha1:66fa67c7f78053395cfebbbbea69ff8c26e0ae77</id>
<content type='text'>
with mrrc, gcc is not.  The disabled code is not executed on ARMv4
anyway.

Reported and reviewed by:	ian
Sponsored by:	The FreeBSD Foundation
</content>
</entry>
</feed>
