[hurd,commited] hurd: Enable x86_64 build script
Checks
Commit Message
This now passes crossbuilds.
---
NEWS | 5 +++++
README | 2 +-
scripts/build-many-glibcs.py | 3 +++
3 files changed, 9 insertions(+), 1 deletion(-)
Comments
I'm observing that build-many-glibcs.py runs can end up with modifications
to the source directory (which later cause problems with updating the
glibc checkout):
diff --git a/sysdeps/mach/hurd/bits/errno.h b/sysdeps/mach/hurd/bits/errno.h
index 069865189f..3b6363568d 100644
--- a/sysdeps/mach/hurd/bits/errno.h
+++ b/sysdeps/mach/hurd/bits/errno.h
@@ -4,11 +4,11 @@
libc-symbols.h
mach/message.h
mach/kern_return.h
- mach/i386/kern_return.h
+ mach/x86_64/kern_return.h
mach/port.h
mach/boolean.h
- mach/i386/boolean.h
- mach/i386/vm_types.h
+ mach/x86_64/boolean.h
+ mach/x86_64/vm_types.h
stdint.h
../stdlib/stdint.h
../bits/libc-header-start.h
What this suggests to me is that the contents generated for
sysdeps/mach/hurd/bits/errno.h depend on the system for which glibc is
configured - which is never appropriate for a file in the source
directory. Either you need separate files for i386 and x86_64, or the
contents need to avoid depending on the architecture, or the file needs to
become purely a build-tree (and installed) file and not checked in.
Hello,
Joseph Myers, le mar. 09 mai 2023 21:53:26 +0000, a ecrit:
> I'm observing that build-many-glibcs.py runs can end up with modifications
> to the source directory (which later cause problems with updating the
> glibc checkout):
Ah, indeed, kern_return.h happens to be pulling machine-specific
headers, but that doesn't matter for the errno.h content. I have thus
ruled them out from the comment.
Samuel
@@ -24,6 +24,11 @@ Major new features:
* A new tunable, glibc.pthread.stack_hugetlb, can be used to disable
Transparent Huge Pages (THP) in stack allocation at pthread_create.
+* Support for x86_64 running on Hurd has been added. This port requires
+ as least binutils 2.40 and GCC 13:
+
+ - x86_64-gnu
+
Deprecated and removed features, and other changes affecting compatibility:
* In the Linux kernel for the hppa/parisc architecture some of the
@@ -12,7 +12,7 @@ implement the operating system behavior seen by user applications.
In GNU/Hurd systems, it works with a microkernel and Hurd servers.
The GNU C Library implements much of the POSIX.1 functionality in the
-GNU/Hurd system, using configurations i[4567]86-*-gnu.
+GNU/Hurd system, using configurations i[4567]86-*-gnu and x86_64-gnu.
When working with Linux kernels, this version of the GNU C Library
requires Linux kernel version 3.2 or later.
@@ -465,6 +465,9 @@ class Context(object):
'ccopts': '-m32 -march=i486'},
{'arch': 'i586',
'ccopts': '-m32 -march=i586'}])
+ self.add_config(arch='x86_64',
+ os_name='gnu',
+ gcc_cfg=['--disable-multilib'])
def add_config(self, **args):
"""Add an individual build configuration."""