Age | Commit message (Collapse) | Author | Files | Lines |
|
This commit bumps glibc from 2.37 to 2.38.
Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
|
|
glibc 2.37 has been released on February 1st, 2023.
We still use 2.33 in this repo.
Let's make a huge step forward to the latest upstream release.
Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
|
|
Both the glibc and newlib submodules are already pointing to the
upstream repositories where development happens.
Since they are therefore not referring to RISC-V specific forks,
this patch unifies the directory naming by only prepending the
"riscv-" prefix to submodules that point to repositories in the
riscv-collab Github organization.
Signed-off-by: Florian Hofhammer <florian.hofhammer@fhofhammer.de>
|
|
|
|
This reduces the performance cliff between RV32 and RV64 slightly,
without an egregious increase in code size.
|
|
The arch-specific file needs to provide this, according to
"linux/bits/fcntl-linux.h". "linux/generic/bits/fcntl.h" used to provide this
for RISC-V.
Another way to achieve the same result might be to include
"linux/generic/bits/fcntl.h" from RISC-V's own "bits/fcntl.h", but 'flock' is
defined a bit differently (it will possibly be even more different in the
128-bit implementation) and it's not guarded by "ifndef" in
"linux/generic/bits/fcntl.h".
|
|
This file provides an implementation similar to other 64-bit architectures, so
F_GETLK64, F_SETLK64 and F_SETLKW64 are the same as the non-64 counterparts and
__O_LARGEFILE is defined correctly.
|
|
|
|
|
|
The FP exception flags were being interpreted as the rounding mode,
causing printf to do weird things.
|
|
This reverts commit e05cc858aa5a6ed1ae0fec885a83090f81f355fe.
Too much code assumes LA maps to AUIPC. Perhaps that is unreasonable,
but the improvement of this patch is so minor that it seems hard to
justify going back and fixing the code.
|
|
|
|
|
|
To use our old definition, which is smaller and more performant, we needed
to link sysdep.c into a few more libraries for glibc 2.22 than 2.21.
This effectively reverts commit 7cd185cf83f543900ef17a358de28b573fb39c69.
|
|
I was getting undefined references to __syscall_error when using the
old one. aarch64's version doesn't calal into __syscall_error but
instead uses the defined macros to inline the functionality of
__syscall_error, which certainly feels like it's in the spirit of
INLINE_SYSCALL.
|
|
I'm not sure why the old one stopped working, but the MIPS version of
this file has always been using __BYTE_ORDER__, and that is defined.
I also had to use __ORDER_LITTLE_ENDIAN__ instead of LITTLE_ENDIAN, as
that has gone away as well.
|
|
This follows the same argument as END. I'm trying to #undef as
infrequently as possible, since it just feels super nasty.
|
|
I've been having a lot of header ordering problems where END gets
redefined.
|
|
This removes a difference between RISC-V's hardfloat and softfloat
implementations. Since there's no actual code here (just a shim to
GCC's builtins), I don't think there's any reason to have this be
hardfloat specific.
I moved this because it's not in Tilera's FPU directory, and that's
where this file came from.
|
|
As per but #73, this was causing some compile failures related to
nothrow when using C++ and pedantic. The actual fix is to wrap this
with "__NTH", but Tilera's version looks simpler because it just calls
a GCC builtin rather than providing a second implementation.
I tried removing this file, but then I don't get inlined versions of
these calls.
|
|
Some glibc floating point routines use inline assembly. This changes
them to use regular C code to do this when compiled without hardware
floatint-point support. The change just uses regular C to perform
these operations when compiled on ABIs without hardware floating
point.
|
|
h/t Sebastian Wicki for the bug report.
|
|
|
|
|
|
|
|
|
|
This permits avoiding a misleading architecture prefix when building a
toolchain that support both RV32 and RV64. This makes glibc
consistent with binutils and gcc with respect to the riscv- target.
The target riscv- is identical to riscv64-, i.e., RV64 is the default.
|
|
This allows for sharing headers between RV32 and RV64 compilers, which
in turn supports a combined toolchain for both targets, with
appropriate duplicate builds of glibc.
|
|
x86 puts "struct user_regs_struct" in <sys/user.h>, but that requires
duplicating code between Linux and glibc. Even though it's just an
ABI-breaking structure, I don't want to do that.
This causes <sys/user.h> to end up defining "struct user_regs_struct"
which helps with compatibility. It's not a big deal because the
internals of "struct user_regs_struct" still need some #ifdef, but
it's one less line per package...
While not the greatest ports to copy, powerpc and sh do this. With
the patch Gentoo still builds.
|
|
Explicitly order the Implies subdirectory list such that "generic"
precedes "wordsize-64". Among other issues, the latter still partly
implements getdents(2) with the deprecated syscall of the same name,
despite getdents64 being available.
|
|
Change a "inline" to "__inline__"
|
|
So "inline" isn't complient C, which means strict packages won't build
with it. This uses "__inline__" instead, which is ANSI C. This patch
is required to get freetype to build.
|
|
Ensure that ld.so follows the preferred canonical behavior, whereby
dl_main() populates the DT_DEBUG entry in the .dynamic section with the
runtime address of the r_debug struct. GDB relies on r_debug to locate
the link map when reconstructing the shared library list.
This is documented in elf/rtld-debugger-interface.txt in the glibc
source tree.
|
|
This is a kludge, but statically linking against libpthread is useful,
even if not well supported by glibc.
|
|
I screwed up when porting it to the new calling convention.
|
|
|
|
This prevents segfaults incident to uncaught C++ exceptions.
|
|
Not all are errors; they may just be large values.
Only results in the range [-4095,-1] are errors.
|
|
|
|
|
|
Thread-local storage shouldn't be affected by these calls.
|
|
We were accidentally clobbering the cancellation mask with syscall arg 0.
|
|
|
|
"jump" was renamed to "tail" (as in tail call) and may freely clobber a
t-register, as before. A new "jump" was added that requires a second
argument, which is the scratch register it may clobber.
"tail" should be used for tail calls; "jump" should be used for
intraprocedural jumps more than 1 MiB away.
|
|
RV32.
|
|
Position-dependent executables are now linked at base address 0x800000.
Shared libraries and PIEs are now linked at base address 0.
|
|
ld.so was using a non-PIC reloc to get the link-time address of _DYNAMIC,
which, while correct, causes the library to be flagged DT_TEXTREL. Avoid
this by leveraging the fact that the static linker has put the link-time
address of _DYNAMIC in the first GOT entry.
|
|
h/t Martin Maas
|
|
|
|
|