summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)AuthorFilesLines
2012-12-06add MAP_NORESERVE to bits/mman.hrofl0r6-0/+6
this is needed for qemu, and since it differs for each arch it can't be circumvented easily by using a macro in CFLAGS.
2012-12-04fix regression in arm user.h that happened during big user.h changesRich Felker1-0/+1
2012-11-26remove stat member aliases from ppc-specific bits/stat.hRich Felker1-6/+0
if these are to be supported, they belong in the main stat.h, not repeated for each arch.
2012-11-25fixup mcontext stuff to expost gregset_t/fpregset_t as appropriateRich Felker6-10/+32
2012-11-25make sys/procfs.h mostly work on most archsRich Felker5-8/+30
these structures are purely for use by trace/debug tools and tools working with core files. the definition of fpregset_t, which was previously here, has been removed because it was wrong; fpregset_t should be the type used in mcontext_t, not the type used in ptrace/core stuff.
2012-11-25remove microblaze user.h incorrectly copied from armRich Felker1-40/+1
2012-11-23begin sys/user.h and sys/reg.h fixes for portsRich Felker4-98/+78
aside from microblaze, these should be roughly correct for all archs now. some misc junk macros and typedefs are missing, which should probably be added for max compatibility with trace/debug tools.
2012-11-23fix powerpc ucontext, again..Rich Felker1-5/+0
it should now really match the kernel. some of the removed padding corresponded to the difference between user and kernel sigset_t. the space at the end was redundant with the uc_mcontext member and seems to have been added as a result of misunderstanding glibc's definition versus the kernel's.
2012-11-23fix termios constants on mipsRich Felker1-10/+21
2012-11-23sigcontext/mcontext cleanup for arch-specific bitsRich Felker5-81/+94
with these changes, the members/types of mcontext_t and related stuff should closely match the glibc definitions. unlike glibc, however, the definitions here avoid using typedefs as much as possible and work directly with the underlying types, to minimize namespace pollution from signal.h in the default (_BSD_SOURCE) profile. this is a first step in improving compatibility with applications which poke at context/register information -- mainly debuggers, trace utilities, etc. additional definitions in ucontext.h and other headers may be needed later. if feature test macros are used to request a conforming namespace, mcontext_t is replaced with an opaque structure of the equivalent size and alignment; conforming programs cannot examine its contents anyway.
2012-11-23fix powerpc setjmp/longjmp to save/restore float regs; enlarge/align jmp_bufRich Felker1-1/+1
2012-11-23fix up leftover, incorrect NSIG definitions in arch-specific signal.hRich Felker5-5/+0
2012-11-23remove stuff that doesn't belong in powerpc 32-bit sigcontextRich Felker1-4/+0
these fields were wrongly copied from the kernel's ppc64 struct def
2012-11-21more ppc signal.h typedef order fixesRich Felker1-13/+13
2012-11-21fix misordered typedefs in ppc signal.hRich Felker1-2/+2
2012-11-21ppc signal/NSIG related fix (warning fix, redefinition)Rich Felker1-2/+1
2012-11-21add back NSIG, removed from powerpc in last commit, but for all archsRich Felker6-0/+12
unlike the previous definition, NSIG/_NSIG is supposed to be one more than the highest signal number. adding this will allow simplifying libc-internal code that makes signal-related syscalls, which can be done as a later step. some apps might use it too; while this usage is questionable, it's at least not insane.
2012-11-21make powerpc signal.h namespace-clean for posix/isocRich Felker1-19/+32
also handle the non-GNUC case where alignment attribute is not available by simply omitting it. this will not cause problems except for inclusion of mcontex_t/ucontext_t in application-defined structures, since the natural alignment of the uc_mcontext member relative to the start of ucontext_t is already correct. and shame on whoever designed this for making it impossible to satisfy the ABI requirements without GNUC extensions.
2012-11-21fix powerpc types to match abi, and some feature test issuesRich Felker3-7/+8
2012-11-21fix invalid usage of mcontext_t in powerpc signal.hrofl0r1-1/+1
2012-11-18fix breakage from introducing bits header for sys/io.hRich Felker6-6/+0
apparently some other archs have sys/io.h and should not break just because they don't have the x86 port io functions. provide a blank bits/io.h everywhere for now.
2012-11-18add port io functions to sys/io.hRich Felker2-0/+160
based on proposal by Isaac Dunham. nonexistance of bits/io.h will cause inclusion of sys/io.h to produce an error on archs that are not supposed to have it. this is probably the desired behavior, but the error message may be a bit unusual.
2012-11-18add missing const on powerpc FE_DFL_ENVRich Felker1-1/+1
2012-11-18fenv support for ppc, untestedRich Felker1-7/+28
based on code sent to the mailing list by nsz, with minor changes.
2012-11-18fcntl.h: O_SEARCH was missing for powerpcrofl0r5-24/+9
put some macros that do not differ between architectures in the main header and remove from bits. restructure mips header so it has the same structure as the others.
2012-11-18ppc socket.h: add forgotten cmsghdrrofl0r1-0/+7
2012-11-16dynamic linking support for powerpcRich Felker1-8/+27
incomplete but at least partly working. requires all files to be compiled in the new "secure" plt model, not the old one that put plt code in the data segment. TLS is untested but may work. invoking the dynamic linker explicitly to load a program does not yet handle argv correctly.
2012-11-16fix ppc stat structure definitionRich Felker1-4/+3
2012-11-16fix powerpc termios.h and ioctl.hrofl0r2-192/+232
2012-11-15disable SO_REUSEPORT in sys/socket.hRich Felker1-1/+1
although a number is reserved for it, this option is not implemented on Linux and does not work. defining it causes some applications to use it, and subsequently break due to its failure.
2012-11-15ppc wchar_t is long, not intRich Felker1-1/+1
2012-11-14fix powerpc atomic compare-and-swap functionRich Felker1-6/+7
previous version did not compare at all; it was just a fancy atomic write. untested. further atomic fixes may be needed.
2012-11-14update ppc atomic code to match the endian-agnostic version on other archsRich Felker1-14/+6
2012-11-14fix wchar limits mistakenly copied from armRich Felker1-2/+2
2012-11-13PPC port cleaned up, static linking works well now.rofl0r35-956/+1025
2012-11-13import preliminary ppc work by rdp.Richard Pennington29-0/+1971
2012-11-05fix numerous mips abi constant definition mismatchesRich Felker3-89/+120
2012-10-19fix struct stat size/padding on microblazeRich Felker1-1/+2
2012-10-18inline syscalls for microblazeRich Felker1-0/+97
2012-10-18better support for reverse-endian variants of arm/mips/microblazeRich Felker3-0/+12
these macros are supported by more compilers
2012-10-18floating point environment/exceptions support for mipsRich Felker1-3/+13
2012-10-15microblaze TLS relocation support, completely untestedRich Felker1-0/+6
2012-10-15add support for TLS variant I, presently needed for arm and mipsRich Felker7-11/+33
despite documentation that makes it sound a lot different, the only ABI-constraint difference between TLS variants II and I seems to be that variant II stores the initial TLS segment immediately below the thread pointer (i.e. the thread pointer points to the end of it) and variant I stores the initial TLS segment above the thread pointer, requiring the thread descriptor to be stored below. the actual value stored in the thread pointer register also tends to have per-arch random offsets applied to it for silly micro-optimization purposes. with these changes applied, TLS should be basically working on all supported archs except microblaze. I'm still working on getting the necessary information and a working toolchain that can build TLS binaries for microblaze, but in theory, static-linked programs with TLS and dynamic-linked programs where only the main executable uses TLS should already work on microblaze. alignment constraints have not yet been heavily tested, so it's possible that this code does not always align TLS segments correctly on archs that need TLS variant I.
2012-10-13ensure pointer decay in inline-asm arg for i386 syscall6Rich Felker1-1/+1
this is actually a rather subtle issue: do arrays decay to pointers when used as inline asm args? gcc says yes, but currently pcc says no. hopefully this discrepency in pcc will be fixed, but since the behavior is not clearly defined anywhere I can find, I'm using an explicit operation to cause the decay to occur.
2012-10-11i386 vsyscall support (vdso-provided sysenter/syscall instruction based)Rich Felker1-66/+7
this doubles the performance of the fastest syscalls on the atom I tested it on; improvement is reportedly much more dramatic on worst-case cpus. cannot be used for cancellable syscalls.
2012-10-05fix incorrect TLS reloc macro names in x86_64 reloc.hRich Felker1-3/+3
2012-10-04dynamic-linked TLS support for everything but dlopen'd libsRich Felker5-5/+63
currently, only i386 is tested. x86_64 and arm should probably work. the necessary relocation types for mips and microblaze have not been added because I don't understand how they're supposed to work, and I'm not even sure if it's defined yet on microblaze. I may be able to reverse engineer the requirements out of gcc/binutils output.
2012-09-29microblaze portRich Felker29-0/+1962
based on initial work by rdp, with heavy modifications. some features including threads are untested because qemu app-level emulation seems to be broken and I do not have a proper system image for testing.
2012-09-22fix IPC_64 in msgctl tooRich Felker1-0/+2
2012-09-22fix broken semctl on systems that don't use IPC_64 flagRich Felker3-0/+6
not tested on mips and arm; they may still be broken. x86_64 should be ok now.