about summary refs log tree commit diff
path: root/arch/arm
Commit message (Collapse)AuthorAgeFilesLines
* fix DECIMAL_DIG definitionsRich Felker2012-03-211-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.
* use __attribute__((const)) on arm __pthread_self functionRich Felker2012-02-251-1/+3
|
* add float_t and double_t to math.hRich Felker2012-02-151-0/+3
|
* replace bad cancellation cleanup abi with a sane oneRich Felker2012-02-091-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.
* fix some details in ugly stuff that doesn't belong in libcRich Felker2011-10-171-6/+6
| | | | | patches by sh4rm4, presumably needed to make gdb or some similar junk happy...
* don't define wchar_t on c++Rich Felker2011-10-151-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.
* fix fcntl O_* flags for armRich Felker2011-10-051-4/+4
| | | | no idea why these 4 are permuted and the rest are standard/generic
* typo (copy 2) in arm reloc.hRich Felker2011-10-011-1/+1
|
* typo in arm reloc.hRich Felker2011-10-011-1/+1
|
* first attempt at arm dynamic linkingRich Felker2011-10-011-0/+26
|
* "optimize" arm __pthread_selfRich Felker2011-09-221-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.
* update syscalls with off_t arguments to handle argument alignment, if neededRich Felker2011-09-211-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.
* fix the definition of struct statvfs to match lsb abiRich Felker2011-09-191-15/+6
| | | | | at the same time, make struct statfs match the traditional definition and make it more useful, especially the fsid_t stuff.
* cleanup redundancy in bits/signal.h versionsRich Felker2011-09-191-121/+12
|
* fix the type of wchar_t on arm; support wchar_t varying with archRich Felker2011-09-192-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.
* fix incorrect long double parameters on arm (and other future ports)Rich Felker2011-09-191-10/+10
| | | | | this was the cause of crashes in printf when attempting to print floating point values.
* initial commit of the arm portRich Felker2011-09-1827-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.