summaryrefslogtreecommitdiff
path: root/arch/arm
AgeCommit message (Collapse)AuthorLines
2012-05-24fix arm syscall.h to reflect which syscalls actually exist (on EABI)Rich Felker-22/+0
2012-05-22fix missing _BSD_SOURCE support in bits/*.hRich Felker-4/+4
this is actually rather ugly, and would get even uglier if we ever want to support further feature test macros. at some point i may factor the bits headers into separate files for C base, POSIX base, and nonstandard extensions (the only distinctions that seem to matter now) and then the logic for which to include can go in the main header rather than being duplicated for each arch. the downside of this is that it would result in more files having to be opened during compilation, so as long as the ugliness does not grow, i'm inclined to leave it alone for now.
2012-04-24use signed char rather than plain char for int8_tRich Felker-4/+4
otherwise this BADLY breaks if -funsigned-char is passed to gcc
2012-04-15move F_DUPFD_CLOEXEC out of bitsRich Felker-2/+0
fcntl values 1024 and up are universal, arch-independent. later I'll add some of the other linux-specific ones for notify, leases, pipe size, etc. here too.
2012-04-15add F_SETSIG and F_GETSIG (linux specific) to fcntl.hRich Felker-0/+2
F_* is in the reserved namespace so no feature test is needed
2012-03-21fix DECIMAL_DIG definitionsRich Felker-0/+2
DECIMAL_DIG is not the same as LDBL_DIG type_DIG is the maximimum number of decimal digits that can survive a round trip from decimal to type and back to decimal. DECIMAL_DIG is the minimum number of decimal digits required in order for any floating point type to survive the round trip to decimal and back, and it is generally larger than LDBL_DIG. since the exact formula is non-trivial, and defining it larger than necessary may be legal but wasteful, just define the right value in bits/float.h.
2012-02-25use __attribute__((const)) on arm __pthread_self functionRich Felker-1/+3
2012-02-15add float_t and double_t to math.hRich Felker-0/+3
2012-02-09replace bad cancellation cleanup abi with a sane oneRich Felker-6/+0
the old abi was intended to duplicate glibc's abi at the expense of being ugly and slow, but it turns out glib was not even using that abi except on non-gcc-compatible compilers (which it doesn't even support) and was instead using an exceptions-in-c/unwind-based approach whose abi we could not duplicate anyway without nasty dwarf2/unwind integration. the new abi is copied from a very old glibc abi, which seems to still be supported/present in current glibc. it avoids all unwinding, whether by sjlj or exceptions, and merely maintains a linked list of cleanup functions to be called from the context of pthread_exit. i've made some care to ensure that longjmp out of a cleanup function should work, even though it is not required to. this change breaks abi compatibility with programs which were using pthread cancellation, which is unfortunate, but that's why i'm making the change now rather than later. considering that most pthread features have not been usable until recently anyway, i don't see it as a major issue at this point.
2011-10-17fix some details in ugly stuff that doesn't belong in libcRich Felker-6/+6
patches by sh4rm4, presumably needed to make gdb or some similar junk happy...
2011-10-15don't define wchar_t on c++Rich Felker-0/+2
it's a keyword in c++ (wtf). i'm not sure this is the cleanest solution; it might be better to avoid ever defining __NEED_wchar_t on c++. but in any case, this works for now.
2011-10-05fix fcntl O_* flags for armRich Felker-4/+4
no idea why these 4 are permuted and the rest are standard/generic
2011-10-01typo (copy 2) in arm reloc.hRich Felker-1/+1
2011-10-01typo in arm reloc.hRich Felker-1/+1
2011-10-01first attempt at arm dynamic linkingRich Felker-0/+26
2011-09-22"optimize" arm __pthread_selfRich Felker-4/+1
actually this is just to avoid gcc being stupid and refusing to inline the function version, even when the size cost is essentially identical whether it's inlined or not.
2011-09-21update syscalls with off_t arguments to handle argument alignment, if neededRich Felker-1/+2
the arm syscall abi requires 64-bit arguments to be aligned on an even register boundary. these new macros facilitate meeting the abi requirement without imposing significant ugliness on the code.
2011-09-19fix the definition of struct statvfs to match lsb abiRich Felker-15/+6
at the same time, make struct statfs match the traditional definition and make it more useful, especially the fsid_t stuff.
2011-09-19cleanup redundancy in bits/signal.h versionsRich Felker-121/+12
2011-09-19fix the type of wchar_t on arm; support wchar_t varying with archRich Felker-6/+6
really wchar_t should never vary, but the ARM EABI defines it as an unsigned 32-bit int instead of a signed one, and gcc follows this nonsense. thus, to give a conformant environment, we have to follow (otherwise L""[0] and L'\0' would be 0U rather than 0, but the application would be unaware due to a mismatched definition for WCHAR_MIN and WCHAR_MAX, and Bad Things could happen with respect to signed/unsigned comparisons, promotions, etc.). fortunately no rules are imposed by the C standard on the relationship between wchar_t and wint_t, and WEOF has type wint_t, so we can still make wint_t always-signed and use -1 for WEOF.
2011-09-19fix incorrect long double parameters on arm (and other future ports)Rich Felker-10/+10
this was the cause of crashes in printf when attempting to print floating point values.
2011-09-18initial commit of the arm portRich Felker-0/+2076
this port assumes eabi calling conventions, eabi linux syscall convention, and presence of the kernel helpers at 0xffff0f?0 needed for threads support. otherwise it makes very few assumptions, and the code should work even on armv4 without thumb support, as well as on systems with thumb interworking. the bits headers declare this a little endian system, but as far as i can tell the code should work equally well on big endian. some small details are probably broken; so far, testing has been limited to qemu/aboriginal linux.