[v2,11/13] or1k: Build Infrastructure
Checks
Context |
Check |
Description |
dj/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
Commit Message
---
sysdeps/or1k/Implies | 3 ++
sysdeps/or1k/Makefile | 7 +++++
sysdeps/or1k/nofpu/Implies | 1 +
sysdeps/or1k/nptl/Makefile | 21 +++++++++++++
sysdeps/or1k/preconfigure | 34 +++++++++++++++++++++
sysdeps/unix/sysv/linux/or1k/Implies | 3 ++
sysdeps/unix/sysv/linux/or1k/Makefile | 12 ++++++++
sysdeps/unix/sysv/linux/or1k/configure | 4 +++
sysdeps/unix/sysv/linux/or1k/configure.ac | 4 +++
sysdeps/unix/sysv/linux/or1k/shlib-versions | 2 ++
10 files changed, 91 insertions(+)
create mode 100644 sysdeps/or1k/Implies
create mode 100644 sysdeps/or1k/Makefile
create mode 100644 sysdeps/or1k/nofpu/Implies
create mode 100644 sysdeps/or1k/nptl/Makefile
create mode 100644 sysdeps/or1k/preconfigure
create mode 100644 sysdeps/unix/sysv/linux/or1k/Implies
create mode 100644 sysdeps/unix/sysv/linux/or1k/Makefile
create mode 100644 sysdeps/unix/sysv/linux/or1k/configure
create mode 100644 sysdeps/unix/sysv/linux/or1k/configure.ac
create mode 100644 sysdeps/unix/sysv/linux/or1k/shlib-versions
Comments
On Sat, 13 Nov 2021, Stafford Horne via Libc-alpha wrote:
> diff --git a/sysdeps/unix/sysv/linux/or1k/configure.ac b/sysdeps/unix/sysv/linux/or1k/configure.ac
> new file mode 100644
> index 0000000000..d439e7fd53
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/or1k/configure.ac
> @@ -0,0 +1,4 @@
> +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
> +# Local configure fragment for sysdeps/unix/sysv/linux/or1k.
> +
> +arch_minimum_kernel=5.10.0
This seems to be a lot more recent than when OpenRISC support was actually
added to the Linux kernel, and also more recent than when 64-bit time
support was added for 32-bit architectures (which may be a convenient
minimum kernel for some new 32-bit architectures for that reason).
Requiring a newer kernel like that is certainly fine if convenient for the
port, but I think the choice of minimum kernel version, and the reasons
for it, deserve mention at least in the commit message and the NEWS file
entry.
On Thu, Nov 18, 2021 at 10:34:10PM +0000, Joseph Myers wrote:
> On Sat, 13 Nov 2021, Stafford Horne via Libc-alpha wrote:
>
> > diff --git a/sysdeps/unix/sysv/linux/or1k/configure.ac b/sysdeps/unix/sysv/linux/or1k/configure.ac
> > new file mode 100644
> > index 0000000000..d439e7fd53
> > --- /dev/null
> > +++ b/sysdeps/unix/sysv/linux/or1k/configure.ac
> > @@ -0,0 +1,4 @@
> > +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
> > +# Local configure fragment for sysdeps/unix/sysv/linux/or1k.
> > +
> > +arch_minimum_kernel=5.10.0
>
> This seems to be a lot more recent than when OpenRISC support was actually
> added to the Linux kernel, and also more recent than when 64-bit time
> support was added for 32-bit architectures (which may be a convenient
> minimum kernel for some new 32-bit architectures for that reason).
> Requiring a newer kernel like that is certainly fine if convenient for the
> port, but I think the choice of minimum kernel version, and the reasons
> for it, deserve mention at least in the commit message and the NEWS file
> entry.
OK, during the v1 review you mentioned:
You'll probably need a newer minimum kernel when requiring 64-bit time
support, until all the fallback for 64-bit time on 32-bit kernels without
the 64-bit-time syscalls is implemented.
I really just chose the version I was working on at the time. I just looked
back on it, this version 5.10 is good because. 1. it is a long term support
version. 2. in 5.8 I fixed a kernel bug which caused clone/fork to not work
with TLS.
I will upate the commit/news.
-Stafford
new file mode 100644
@@ -0,0 +1,3 @@
+wordsize-32
+ieee754/dbl-64
+ieee754/flt-32
new file mode 100644
@@ -0,0 +1,7 @@
+ASFLAGS-.os += -fPIC
+
+ifeq ($(subdir),elf)
+# Extra shared linker files to link only into dl-allobjs.so.
+sysdep-rtld-routines += dl-start
+endif
+
new file mode 100644
@@ -0,0 +1 @@
+ieee754/soft-fp
new file mode 100644
@@ -0,0 +1,21 @@
+# Copyright (C) 2021 Free Software Foundation, Inc.
+#
+# This file is part of the GNU C Library.
+#
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library. If not, see
+# <https://www.gnu.org/licenses/>.
+
+ifeq ($(subdir),csu)
+gen-as-const-headers += tcb-offsets.sym
+endif
new file mode 100644
@@ -0,0 +1,34 @@
+#
+# This is free and unencumbered software released into the public domain.
+#
+# Anyone is free to copy, modify, publish, use, compile, sell, or
+# distribute this software, either in source code form or as a compiled
+# binary, for any purpose, commercial or non-commercial, and by any
+# means.
+#
+# In jurisdictions that recognize copyright laws, the author or authors
+# of this software dedicate any and all copyright interest in the
+# software to the public domain. We make this dedication for the benefit
+# of the public at large and to the detriment of our heirs and
+# successors. We intend this dedication to be an overt act of
+# relinquishment in perpetuity of all present and future rights to this
+# software under copyright law.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+#
+
+case "$machine" in
+or1k*)
+ base_machine=or1k
+ machine=or1k
+
+ with_fp_cond="defined __or1k_hard_float__"
+ ;;
+esac
+
new file mode 100644
@@ -0,0 +1,3 @@
+or1k/nptl
+unix/sysv/linux/generic/wordsize-32
+unix/sysv/linux/generic
new file mode 100644
@@ -0,0 +1,12 @@
+ifeq ($(subdir),misc)
+ sysdep_routines += prctl or1k_clone
+endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
+
+# pull in __syscall_error routine
+libpthread-routines += sysdep
+librt-routines += sysdep
+
new file mode 100644
@@ -0,0 +1,4 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/or1k.
+
+arch_minimum_kernel=5.10.0
new file mode 100644
@@ -0,0 +1,4 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/or1k.
+
+arch_minimum_kernel=5.10.0
new file mode 100644
@@ -0,0 +1,2 @@
+DEFAULT GLIBC_2.35
+ld=ld-linux-or1k.so.1