diff options
author | Mike Frysinger <vapier@gentoo.org> | 2007-09-15 07:50:58 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2007-09-15 07:50:58 +0000 |
commit | c0441bbed5d817b4f8f7f27f5d066760f73d6bbc (patch) | |
tree | f4bd2877dc770691e9bba20fb7e25c3d41e80067 /ldso | |
parent | d9ec80053e440a08251e88a50bfaa283d9e00795 (diff) |
Blue Swirl writes:
I got the library to compile with the attached patches, though dynamic
loader crashes early.
In buildroot I changed the architecture name by hand from sparc to
sparc64, otherwise the compiler produced 32-bit files with V9 (64-bit)
instructions. This configuration is not supported by QEMU, so I aimed
for pure 64-bit. I think Sparc64 option needs to be added to
buildroot.
The _Qp_ ops seem to be required by the ABI. This and setjmp patches
are just hacks to get the compilation further. The _Qp_ ops can be
found in glibc, would it be OK to use those?
V9 assembler requires declarations for global register use.
The mem* functions in sparc32 directory did not work. They are
actually used only by the hybrid 32-bit + V9 CPU configuration.
Diffstat (limited to 'ldso')
-rw-r--r-- | ldso/include/dl-syscall.h | 4 | ||||
-rw-r--r-- | ldso/ldso/sparc/dl-startup.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/ldso/include/dl-syscall.h b/ldso/include/dl-syscall.h index b42416a52..ec42fbd64 100644 --- a/ldso/include/dl-syscall.h +++ b/ldso/include/dl-syscall.h @@ -16,7 +16,11 @@ /* Pull in whatever this particular arch's kernel thinks the kernel version of * struct stat should look like. It turns out that each arch has a different * opinion on the subject, and different kernel revs use different names... */ +#if defined(__sparc_v9__) && (__WORDSIZE == 64) +#define kernel_stat64 stat +#else #define kernel_stat stat +#endif #include <bits/kernel_stat.h> #include <bits/kernel_types.h> diff --git a/ldso/ldso/sparc/dl-startup.h b/ldso/ldso/sparc/dl-startup.h index 7da972269..4ceb7c55a 100644 --- a/ldso/ldso/sparc/dl-startup.h +++ b/ldso/ldso/sparc/dl-startup.h @@ -9,6 +9,7 @@ asm ("\ .global _start\n\ .type _start,%function\n\ .align 32\n\ + .register %g2, #scratch\n\ _start:\n\ /* Allocate space for functions to drop their arguments. */\n\ sub %sp, 6*4, %sp\n\ |