summaryrefslogtreecommitdiff
path: root/arch/x32
AgeCommit message (Collapse)AuthorLines
2014-06-18refactor to remove arch-specific relocation code from dynamic linkerRich Felker-27/+20
this was one of the main instances of ugly code duplication: all archs use basically the same types of relocations, but roughly equivalent logic was duplicated for each arch to account for the different naming and numbering of relocation types and variation in whether REL or RELA records are used. as an added bonus, both REL and RELA are now supported on all archs, regardless of which is used by the standard toolchain.
2014-06-16dynamic linker: permit error returns from arch-specific reloc functionRich Felker-1/+2
the immediate motivation is supporting TLSDESC relocations which require allocation and thus may fail (unless we pre-allocate), but this mechanism should also be used for throwing an error on unsupported or invalid relocation types, and perhaps in certain cases, for reporting when a relocation is not satisfiable.
2014-05-30add sched_{get,set}attr syscall numbers and SCHED_DEADLINE macroSzabolcs Nagy-0/+6
linux 3.14 introduced sched_getattr and sched_setattr syscalls in commit d50dde5a10f305253cbc3855307f608f8a3c5f73 and the related SCHED_DEADLINE scheduling policy in commit aab03e05e8f7e26f51dee792beddcb5cca9215a5 but struct sched_attr "extended scheduling parameters data structure" is not yet exported to userspace (necessary for using the syscalls) so related uapi definitions are not added yet.
2014-04-15fix RLIMIT_ constants for mipsSzabolcs Nagy-0/+0
The mips arch is special in that it uses different RLIMIT_ numbers than other archs, so allow bits/resource.h to override the default RLIMIT_ numbers (empty on all archs except mips). Reported by orc.
2014-04-15add namespace-protected name for sysinfo functionRich Felker-1/+4
it will be needed to implement some things in sysconf, and the syscall can't easily be used directly because the x32 syscall uses the wrong structure layout. the l (uncreative, for "linux") prefix is used since the symbol name __sysinfo is already taken for AT_SYSINFO from the aux vector. the way the x32 override of this function works is also changed to be simpler and avoid the useless jump instruction.
2014-03-18fix signal.h breakage from moving stack_t to arch-specific bitsRich Felker-6/+6
in the previous changes, I missed the fact that both the prototype of the sigaltstack function and the definition of ucontext_t depend on stack_t.
2014-03-18move signal.h definition of stack_t to arch-specific bitsRich Felker-0/+6
it's different at least on mips. mips version will be fixed in a separate commit to show the change.
2014-03-17x32: fix struct statfsrofl0r-2/+4
the omission of the padding was uncovered by the latest regression statvfs regression test added to libc-test.
2014-03-11move struct semid_ds to from shared sys/sem.h to bitsRich Felker-0/+16
the definition was found to be incorrect at least for powerpc, and fixing this cleanly requires making the definition arch-specific. this will allow cleaning up the definition for other archs to make it more specific, and reversing some of the ugliness (time_t hacks) introduced with the x32 port. this first commit simply copies the existing definition to each arch without any changes. this is intentional, to make it easier to review changes made on a per-arch basis.
2014-03-06x32: fix sysinfo()rofl0r-0/+47
the kernel uses long longs in the struct, but the documentation says they're long. so we need to fixup the mismatch between the userspace and kernelspace structs. since the struct offers a mem_unit member, we can avoid truncation by adjusting that value.
2014-02-23make the x32 port use the correct ld-musl-x32.path filenameRich Felker-1/+1
previously it was wrongly using the x86_64 one, precluding having both x32 and x86_64 libs present on the same system.
2014-02-23fix x32 syscall arch.h timespec fixup coderofl0r-53/+49
it's legal to call the __syscall functions with more arguments than necessary, and the __syscall_cp cancel dummy impl. does just that. thus we must insert the switch for all possible syscalls numbers into all of the syscallN inline functions.
2014-02-23fix some issues in x32 syscall_cp_fixuprofl0r-11/+8
- the nanosleep fixup "fixed" the second timespec* argument erroneusly. - the futex fixup was missing the check for FUTEX_WAIT. - general cleanup using a macro.
2014-02-23mostly-cosmetic fixups to x32 port mergeRich Felker-1/+1
2014-02-23x32 port (diff against vanilla x86_64)rofl0r-679/+762
2014-02-23import vanilla x86_64 code as x32rofl0r-0/+1986