<feed xmlns='http://www.w3.org/2005/Atom'>
<title>grovel/arch/arm, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>http://euandre.org/git/grovel/atom?h=main</id>
<link rel='self' href='http://euandre.org/git/grovel/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://euandre.org/git/grovel/'/>
<updated>2023-11-07T02:48:02Z</updated>
<entry>
<title>ldso: convert TLSDESC_BACKWARDS from "#ifdef" to "if" logic</title>
<updated>2023-11-07T02:48:02Z</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2023-11-07T02:48:02Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/grovel/commit/?id=039d3c34f2e3578a8b7ada42f89213b844aa7a4e'/>
<id>urn:sha1:039d3c34f2e3578a8b7ada42f89213b844aa7a4e</id>
<content type='text'>
this style is preferred because it allows the code to be
compile-checked even on archs where it is not used.
</content>
</entry>
<entry>
<title>re-enable vdso clock_gettime on arm (32-bit) with workaround</title>
<updated>2022-09-19T17:21:54Z</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2022-09-12T12:38:03Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/grovel/commit/?id=bf14ef193b4203aa9a8b173faeeea06d98397f65'/>
<id>urn:sha1:bf14ef193b4203aa9a8b173faeeea06d98397f65</id>
<content type='text'>
commit 4486c579cbf0d989080705f515d08cb48636ba88 disabled vdso
clock_gettime on arm due to a Linux kernel bug that was not understood
at the time, whereby the vdso function silently produced
catastrophically wrong results on some systems.

since then, the bug was tracked down to the way the arm kernel
disabled use of vdso clock_gettime on kernels where the necessary
timer was not available or was disabled. it simply patched out the
symbols, but it only did this for the legacy time32 functions, and
left the time64 function in place but non-operational. kernel commit
4405bdf3c57ec28d606bdf5325f1167505bfdcd4 (first present in 5.8)
provided the fix.

if this were a bug that impacted all users of the broken kernel
versions, we could probably ignore it and assume it had been patched
or replaced. however, it's very possible that these kernels appear in
the wild in devices running time32 userspace (glibc, musl 1.1.x, or
some other environment) where they appear to work fine, but where our
new binaries would fail catastrophically if we used the time64 vdso
function.

since the kernel has not (yet?) given us a way to probe for the
working time64 vdso function semantically, we work around the problem
by refusing to use the time64 one unless the time32 one is also
present. this will revert to not using vdso at all if the time32 one
is ever removed, but at least that's safe against wrong results and is
just a missed optimization.
</content>
</entry>
<entry>
<title>bits/syscall.h: add landlock syscalls from linux v5.13</title>
<updated>2022-03-08T22:21:14Z</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2021-07-04T16:34:15Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/grovel/commit/?id=ee05b11b67d59a6c5bb4b9d661bcc20bbd0bbe7a'/>
<id>urn:sha1:ee05b11b67d59a6c5bb4b9d661bcc20bbd0bbe7a</id>
<content type='text'>
see

  linux commit a49f4f81cb48925e8d7cbd9e59068f516e984144
  arch: Wire up Landlock syscalls

  linuxcommit 17ae69aba89dbfa2139b7f8024b757ab3cc42f59
  Merge tag 'landlock_v34' of ... jmorris/linux-security

Landlock provides for unprivileged application sandboxing. The goal of
Landlock is to enable to restrict ambient rights (e.g. global filesystem
access) for a set of processes. Landlock is inspired by seccomp-bpf but
instead of filtering syscalls and their raw arguments, a Landlock rule
can restrict the use of kernel objects like file hierarchies, according
to the kernel semantic.
</content>
</entry>
<entry>
<title>bits/syscall.h: add mount_setattr from linux v5.12</title>
<updated>2022-03-08T22:19:51Z</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2021-05-25T20:53:18Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/grovel/commit/?id=f7d3db5bfc4c3b2315dd8c3137f0f332e1c6896a'/>
<id>urn:sha1:f7d3db5bfc4c3b2315dd8c3137f0f332e1c6896a</id>
<content type='text'>
new syscall to change the properties of a mount or a mount tree using
file descriptors which the new mount api is based on, see

  linux commit 2a1867219c7b27f928e2545782b86daaf9ad50bd
  fs: add mount_setattr()
</content>
</entry>
<entry>
<title>bits/syscall.h: add epoll_pwait2 from linux v5.11</title>
<updated>2022-03-08T22:19:36Z</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2021-03-07T19:21:34Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/grovel/commit/?id=b21f3ded780cc8fd8e510c99aeaf4a453d8c8a22'/>
<id>urn:sha1:b21f3ded780cc8fd8e510c99aeaf4a453d8c8a22</id>
<content type='text'>
see

  linux commit b0a0c2615f6f199a656ed8549d7dce625d77aa77
  epoll: wire up syscall epoll_pwait2

  linux commit 58169a52ebc9a733aeb5bea857bc5daa71a301bb
  epoll: add syscall epoll_pwait2

epoll_wait with struct timespec timeout instead of int. no time32 variant.
</content>
</entry>
<entry>
<title>bits/syscall.h: add process_madvise from linux v5.10</title>
<updated>2021-02-15T14:15:54Z</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2020-12-19T20:12:31Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/grovel/commit/?id=fd285f9dec226ca9e5377888ee24e3f8f5ada49f'/>
<id>urn:sha1:fd285f9dec226ca9e5377888ee24e3f8f5ada49f</id>
<content type='text'>
mainly added to linux to allow a central process management service in
android to give MADV_COLD|PAGEOUT hints for other processes, see

  linux commit ecb8ac8b1f146915aa6b96449b66dd48984caacc
  mm/madvise: introduce process_madvise() syscall: an external memory
  hinting API
</content>
</entry>
<entry>
<title>bits/syscall.h: add __NR_close_range from linux v5.9</title>
<updated>2020-11-29T05:54:14Z</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2020-10-24T10:15:43Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/grovel/commit/?id=3ba370fe8d9f450d351d710066fa20afad8ce3df'/>
<id>urn:sha1:3ba370fe8d9f450d351d710066fa20afad8ce3df</id>
<content type='text'>
see

  linux commit 9b4feb630e8e9801603f3cab3a36369e3c1cf88d
  arch: wire-up close_range()

  linux commit 278a5fbaed89dacd04e9d052f4594ffd0e0585de
  open: add close_range()
</content>
</entry>
<entry>
<title>bits/syscall.h: add __NR_faccessat2 from linux v5.8</title>
<updated>2020-09-09T21:21:03Z</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2020-07-28T21:17:13Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/grovel/commit/?id=9b7ed9702ce8925a5a947ad3bdbba126fe955aaf'/>
<id>urn:sha1:9b7ed9702ce8925a5a947ad3bdbba126fe955aaf</id>
<content type='text'>
the linux faccessat syscall lacks a flag argument that is necessary
to implement the posix api, see

  linux commit c8ffd8bcdd28296a198f237cc595148a8d4adfbe
  vfs: add faccessat2 syscall
</content>
</entry>
<entry>
<title>add pidfd_getfd and openat2 syscall numbers from linux v5.6</title>
<updated>2020-09-09T21:19:55Z</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2020-03-31T18:32:51Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/grovel/commit/?id=d990090384c6a468bb86962baf8bae7b6fd1d2bf'/>
<id>urn:sha1:d990090384c6a468bb86962baf8bae7b6fd1d2bf</id>
<content type='text'>
also added clone3 on sh and m68k, on sh it's still missing (not
yet wired up), but reserved so safe to add.

see

  linux commit fddb5d430ad9fa91b49b1d34d0202ffe2fa0e179
  open: introduce openat2(2) syscall

  linux commit 9a2cef09c801de54feecd912303ace5c27237f12
  arch: wire up pidfd_getfd syscall

  linux commit 8649c322f75c96e7ced2fec201e123b2b073bf09
  pid: Implement pidfd_getfd syscall

  linux commit e8bb2a2a1d51511e6b3f7e08125d52ec73c11139
  m68k: Wire up clone3() syscall
</content>
</entry>
<entry>
<title>deduplicate __pthread_self thread pointer adjustment out of each arch</title>
<updated>2020-08-27T22:36:45Z</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2020-08-25T02:23:08Z</published>
<link rel='alternate' type='text/html' href='http://euandre.org/git/grovel/commit/?id=3a5b9ae7cf656648c80fe155a5239d9b4fb4c485'/>
<id>urn:sha1:3a5b9ae7cf656648c80fe155a5239d9b4fb4c485</id>
<content type='text'>
the adjustment made is entirely a function of TLS_ABOVE_TP and
TP_OFFSET. aside from avoiding repetition of the TP_OFFSET value and
arithmetic, this change makes pthread_arch.h independent of the
definition of struct __pthread from pthread_impl.h. this in turn will
allow inclusion of pthread_arch.h to be moved to the top of
pthread_impl.h so that it can influence the definition of the
structure.

previously, arch files were very inconsistent about the type used for
the thread pointer. this change unifies the new __get_tp interface to
always use uintptr_t, which is the most correct when performing
arithmetic that may involve addresses outside the actual pointed-to
object (due to TP_OFFSET).
</content>
</entry>
</feed>
