<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glibc/hurd, branch master</title>
<subtitle>Fork of glibc for development</subtitle>
<id>https://git.zx2c4.com/glibc/atom/hurd?h=master</id>
<link rel='self' href='https://git.zx2c4.com/glibc/atom/hurd?h=master'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/'/>
<updated>2024-07-13T15:05:13Z</updated>
<entry>
<title>hurd: Fix restoring message to be retried</title>
<updated>2024-07-13T15:05:13Z</updated>
<author>
<name>Samuel Thibault</name>
<email>samuel.thibault@ens-lyon.org</email>
</author>
<published>2024-07-13T15:00:55Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=c8b4ce0b368115714bd4cce131e1683759471099'/>
<id>urn:sha1:c8b4ce0b368115714bd4cce131e1683759471099</id>
<content type='text'>
save_data stores the start of the original message to be retried,
overwritten by the EINTR reply. In 64b builds the overwrite is however
rounded up to the 64b pointer size, so we have to save more than just
the 32b err.

Thanks a lot to Luca Dariz for the investigation!
</content>
</entry>
<entry>
<title>hurd: Fix getxattr/listxattr returning ERANGE</title>
<updated>2024-06-10T20:01:40Z</updated>
<author>
<name>Samuel Thibault</name>
<email>samuel.thibault@ens-lyon.org</email>
</author>
<published>2024-06-10T20:01:40Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=5968125f55a3a3f3394e4ebe45e1f96d4864c576'/>
<id>urn:sha1:5968125f55a3a3f3394e4ebe45e1f96d4864c576</id>
<content type='text'>
The manpage says that when the passed size is zero, they should set the
expected size and return 0. ERANGE shall be returned only when the non-zero
passed size is not large enough.
</content>
</entry>
<entry>
<title>hurd: Fix setxattr return value on replacing</title>
<updated>2024-06-10T20:00:20Z</updated>
<author>
<name>Samuel Thibault</name>
<email>samuel.thibault@ens-lyon.org</email>
</author>
<published>2024-06-10T20:00:20Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=ed06248019908dd4f286552594ac3ec844ef3da4'/>
<id>urn:sha1:ed06248019908dd4f286552594ac3ec844ef3da4</id>
<content type='text'>
When XATTR_REPLACE is set we shall succeed when the value already
exists, and fail with ENODATA otherwise, instead of the converse.
</content>
</entry>
<entry>
<title>hurd: Fix getxattr("gnu.translator") returning ENODATA</title>
<updated>2024-06-10T19:57:53Z</updated>
<author>
<name>Samuel Thibault</name>
<email>samuel.thibault@ens-lyon.org</email>
</author>
<published>2024-06-10T19:57:53Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=ba5a23422a156804234dff6c5be89e20ee8f9ec2'/>
<id>urn:sha1:ba5a23422a156804234dff6c5be89e20ee8f9ec2</id>
<content type='text'>
When no translator is set, __file_get_translator would return EINVAL
which is a confusing value. Better check for a passive translation
before getting the value.
</content>
</entry>
<entry>
<title>hurd: Stop mapping AT_NO_AUTOMOUNT to O_NOTRANS</title>
<updated>2024-04-30T20:08:16Z</updated>
<author>
<name>Sergey Bugaev</name>
<email>bugaevc@gmail.com</email>
</author>
<published>2023-11-06T13:50:51Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=bc8879f4f5f3bc19f6f87a0b7136fd5297dce628'/>
<id>urn:sha1:bc8879f4f5f3bc19f6f87a0b7136fd5297dce628</id>
<content type='text'>
While AT_NO_AUTOMOUNT is similar in function to the Hurd's O_NOTRANS,
there are significant enough differences in semantics:

1. AT_NO_AUTOMOUNT has no effect on already established mounts,
   whereas O_NOTRANS causes the lookup to ignore both passive and active
   translators. A better approximation of the AT_NO_AUTOMOUNT behavior
   would be to honor active translators, but avoid starting passive
   ones; like what the file_name_lookup_carefully () routine from
   sutils/clookup.c in the Hurd source tree does.

2. On GNU/Hurd, translators are used much more pervasively than mounts
   on "traditional" Unix systems: among other things, translators
   underlie features like symlinks, device nodes, and sockets. And while
   on a "traditional" Unix system, the mountpoint and the root of the
   mounted tree may look similar enough for many purposes (they're both
   directories, for one thing), the Hurd allows for any combination of
   the two node types, and indeed it is common to have e.g. a device
   node "mounted" on top of a regular file node on the underlying
   filesystem. Ignoring the translator and stat'ing the underlying node
   is therefore likely to return very different results from what you'd
   get if you stat the translator's root node.

In practice, mapping AT_NO_AUTOMOUNT to O_NOTRANS was breaking GNU
Coreutils, including stat(1) and ls(1):

$ stat /dev/hd0s1
  File: /dev/hd0s1
  Size: 0       Blocks: 8          IO Block: 8192   regular empty file
Device: 0,8     Inode: 32866       Links: 1

This was also breaking GNOME's glib, where a g_local_file_stat () call
that is supposed to stat () a file through a symlink uses
AT_NO_AUTOMOUNT, which gets mapped to O_NOTRANS, which then causes the
stat () call to stat symlink itself like lstat () would, rather then the
file it points to, which is what the logic expects to happen.

This reverts most of 13710e7e6af6c8965cc9a63a0660cb4ce1966557
"hurd: Add support for AT_NO_AUTOMOUNT".

Signed-off-by: Sergey Bugaev &lt;bugaevc@gmail.com&gt;
</content>
</entry>
<entry>
<title>hurd: Stop relying on VM_MAX_ADDRESS</title>
<updated>2024-03-23T21:44:02Z</updated>
<author>
<name>Sergey Bugaev</name>
<email>bugaevc@gmail.com</email>
</author>
<published>2024-03-23T17:32:43Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=4648bfbbde5466929d24013478697cbdec847b46'/>
<id>urn:sha1:4648bfbbde5466929d24013478697cbdec847b46</id>
<content type='text'>
We'd like to avoid committing to a specific size of virtual address
space (i.e. the value of VM_AARCH64_T0SZ) on AArch64.  While the current
version of GNU Mach still exports VM_MAX_ADDRESS for compatibility, we
should try to avoid relying on it when we can.  This piece of logic in
_hurdsig_getenv () doesn't actually care about the size of user-
accessible virtual address space, it just wants to preempt faults on any
addresses starting from the value of the P pointer and above.  So, use
(unsigned long int) -1 instead of VM_MAX_ADDRESS.

While at it, change the casts to (unsigned long int) and not just
(long int), since the type of struct hurd_signal_preemptor.{first,last}
is unsigned long int.

Signed-off-by: Sergey Bugaev &lt;bugaevc@gmail.com&gt;
Message-ID: &lt;20240323173301.151066-3-bugaevc@gmail.com&gt;
</content>
</entry>
<entry>
<title>hurd: Move internal functions to internal header</title>
<updated>2024-03-23T21:43:07Z</updated>
<author>
<name>Sergey Bugaev</name>
<email>bugaevc@gmail.com</email>
</author>
<published>2024-03-23T17:32:42Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=7f02511e5b8879430e2b3c51601341d3c0314071'/>
<id>urn:sha1:7f02511e5b8879430e2b3c51601341d3c0314071</id>
<content type='text'>
Move _hurd_self_sigstate (), _hurd_critical_section_lock (), and
_hurd_critical_section_unlock () inline implementations (that were
already guarded by #if defined _LIBC) to the internal version of the
header.  While at it, add &lt;tls.h&gt; to the includes, and use
__LIBC_NO_TLS () unconditionally.

Signed-off-by: Sergey Bugaev &lt;bugaevc@gmail.com&gt;
Message-ID: &lt;20240323173301.151066-2-bugaevc@gmail.com&gt;
</content>
</entry>
<entry>
<title>hurd: Reformat Makefile.</title>
<updated>2024-02-25T18:38:16Z</updated>
<author>
<name>Carlos O'Donell</name>
<email>carlos@redhat.com</email>
</author>
<published>2023-06-09T21:46:34Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=f31d677fd69fb68c8b7a3c4cdaa6e9a1bd46d6a4'/>
<id>urn:sha1:f31d677fd69fb68c8b7a3c4cdaa6e9a1bd46d6a4</id>
<content type='text'>
Reflow and sort Makefile.

Code generation changes present due to link order changes.

No regressions on x86_64 and i686.

Tested with build-many-glibcs.py for x86_64-gnu.
</content>
</entry>
<entry>
<title>hurd: Declare _hurd_intr_rpc_msg* with protected visibility</title>
<updated>2024-01-03T20:59:54Z</updated>
<author>
<name>Sergey Bugaev</name>
<email>bugaevc@gmail.com</email>
</author>
<published>2024-01-03T17:14:35Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=b6931d6d14c71fd229cc2ff94c810bd3390687db'/>
<id>urn:sha1:b6931d6d14c71fd229cc2ff94c810bd3390687db</id>
<content type='text'>
These symbols are internal and never exported; make sure the compiler
realizes that when compiling hurdsig.c and does not try to emit GOT
reads.

Signed-off-by: Sergey Bugaev &lt;bugaevc@gmail.com&gt;
</content>
</entry>
<entry>
<title>hurd: Add some missing includes</title>
<updated>2024-01-03T20:59:54Z</updated>
<author>
<name>Sergey Bugaev</name>
<email>bugaevc@gmail.com</email>
</author>
<published>2024-01-03T17:14:34Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=dac7c6406582e36d38bc94794c15d581e3c6ebda'/>
<id>urn:sha1:dac7c6406582e36d38bc94794c15d581e3c6ebda</id>
<content type='text'>
Signed-off-by: Sergey Bugaev &lt;bugaevc@gmail.com&gt;
</content>
</entry>
</feed>
