Commit Graph

5215 Commits

Author SHA1 Message Date
Elliott Hughes
66b18dd4e4 Merge "Fix the x86_64 fenv.h." 2013-10-03 03:48:19 +00:00
Elliott Hughes
361847f9ac Fix the x86_64 fenv.h.
We should clean all the fenv.h files up, but not now. I've raised
bug 11050744 as a reminder.

Change-Id: I640c15b0f0477ec1a7891c031860404875bbe4b5
2013-10-02 17:02:58 -07:00
Nick Kralevich
2c701a1bac Merge "libc: don't export unnecessary symbols" 2013-10-02 23:59:23 +00:00
Elliott Hughes
5b9310e502 Fix 32-bit issues in tests, and add a trivial test for the FD_* macros.
Change-Id: Ia3f21ce1f0ed9236527fe44d36ccb7de6bf63113
2013-10-02 16:59:05 -07:00
Nick Kralevich
32bbf8a63b libc: don't export unnecessary symbols
Symbols associated with the internal implementation of memcpy
like routines should be private.

Change-Id: I2b1d1f59006395c29d518c153928437b08f93d16
2013-10-02 16:54:58 -07:00
Nick Kralevich
f741e1c2ed Merge "FORTIFY_SOURCE: Add __FD_* checks" 2013-10-02 23:26:50 +00:00
Nick Kralevich
90201d5eca FORTIFY_SOURCE: Add __FD_* checks
Add FORTIFY_SOURCE checks for the following macros:

* FD_CLR
* FD_ISSET
* FD_SET

Bug: 11047121
Change-Id: I3c5952136aec9eff3288b91b1318677ff971525c
2013-10-02 16:11:30 -07:00
Stephen Hines
32c0c6e7d5 Merge "Use gnu++11 and gnu99 explicitly for C++/C files." 2013-10-02 22:18:26 +00:00
Nick Kralevich
00d51c9f6e Merge "Use alloc_size attribute on *alloc functions" 2013-10-02 21:31:43 +00:00
Nick Kralevich
b91791d71c Use alloc_size attribute on *alloc functions
malloc and family were not declared with __attribute__((alloc_size)).
This was (sometimes) preventing FORTIFY_SOURCE related functions
from knowing the size of the buffer it's dealing with, inhibiting
FORTIFY_SOURCE protections.

Add __attribute__((alloc_size))

Information about the alloc_size attribute can be found
at http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html

Change-Id: Ia2f0a445f0170a7325f69259b5e7fb35a9f14921
2013-10-02 14:14:40 -07:00
Stephen Hines
762cea46f0 Use gnu++11 and gnu99 explicitly for C++/C files.
Clang and gcc default to different standards, so we should be explicit
about the versions we want to compile for.

Change-Id: I65495a2392dd29f36373b94c616c2506173e6033
2013-10-02 12:37:16 -07:00
Elliott Hughes
4bbf3a8b55 Merge "Remove #define _BITSIZE 32." 2013-10-02 17:06:44 +00:00
Stephen Hines
70e1730c38 Merge "Remove _FORTIFY_SOURCE in implementation files." 2013-10-02 16:30:15 +00:00
Stephen Hines
e0e6409c12 Merge "Add simple implementation _Unwind_GetIP() for clang compiles." 2013-10-02 16:29:22 +00:00
Elliott Hughes
5e72c513bf Remove #define _BITSIZE 32.
I've no idea what _BITSIZE was supposed to be, glibc doesn't have it,
the BSDs don't have it, and no code is currently using it. But having
it set unconditionally to 32 sounds like a bad idea.

Change-Id: I900235c1489afba891fff0bc3b43e9d593249a4f
2013-10-02 09:23:46 -07:00
Elliott Hughes
e26135ab18 Merge "The x86_64 kernel headers are the x86 kernel headers." 2013-10-02 15:52:02 +00:00
Elliott Hughes
9461e9fae3 Merge "Add missing backslash in MIPS filelist" 2013-10-02 02:46:12 +00:00
Chris Dearman
fa4d596abc Add missing backslash in MIPS filelist
Change-Id: I993ea7038cd641ea167d974226e2350e49d41c88
2013-10-01 19:11:26 -07:00
Stephen Hines
5f6cfce4f6 Add simple implementation _Unwind_GetIP() for clang compiles.
Clang (prior to 3.4) does not actually provide a declaration (or definition)
of _Unwind_GetIP() for ARM. We can work around this by writing our own
basic implementation using the available primitive operations.

Change-Id: If6c66846952d8545849ad32d2b55daa4599cfe2c
2013-10-01 18:20:51 -07:00
Elliott Hughes
86d920c302 The x86_64 kernel headers are the x86 kernel headers.
Change-Id: I8763aee7043800eb23a720914b57396e79fa812e
2013-10-01 18:03:23 -07:00
Elliott Hughes
5e244a9bee Merge "Fix libm build for x86_64." 2013-10-02 01:00:25 +00:00
Elliott Hughes
770a349560 Fix libm build for x86_64.
Change-Id: If89da2d5c3d9a88f78ffd8b260ad0f2fd391c608
2013-10-01 17:57:19 -07:00
Elliott Hughes
bcc2bd3b1e Merge "x86_64: libm fixes" 2013-10-02 00:32:43 +00:00
Elliott Hughes
6892a29b9e Merge "Remove more assumptions that pointers are 32-bit." 2013-10-02 00:30:51 +00:00
Elliott Hughes
405f8553cf Remove more assumptions that pointers are 32-bit.
Change-Id: I2157e2fc4db7692b746c697982c3d028a056462a
2013-10-01 17:25:28 -07:00
Elliott Hughes
b2acd5ded1 Merge "x86_64: Update Makefiles for x86_64 targets and add symlinks" 2013-10-01 22:37:10 +00:00
Pavel Chupin
a567a8e4bd x86_64: Update Makefiles for x86_64 targets and add symlinks
Use basic .c versions of all functions for x86_64 until they are
manually optimized and .s versions released.

Change-Id: I59bba08931e894822db485c8803c2665c226234a
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2013-10-01 15:36:08 -07:00
Stephen Hines
35d937e4eb Remove _FORTIFY_SOURCE in implementation files.
This was causing conflicting declarations for the library definitions of
common functions like sprintf(), snprintf(), and strchr().

Change-Id: I5daaa8a58183aa0d4d0fae8a7cb799671810f576
2013-10-01 15:02:07 -07:00
Elliott Hughes
4eaa1e1ea8 Merge "x86_64: add new __NR_arch_prctl syscall" 2013-10-01 20:58:41 +00:00
Pavel Chupin
9a4127bb0a x86_64: add new __NR_arch_prctl syscall
This is used to set/get TLS on x86_64. There's no public declaration
of this because it's not meant to be used outside the C library, like
glibc (though we don't currently have any visibility controls to ensure
this).

Change-Id: I5fc0a5e3ffc3f4cd597d92ee685ab19568ea18f7
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2013-10-01 13:56:21 -07:00
Elliott Hughes
232dff3af2 Merge "Regenerate the system call stubs (to get x86_64)." 2013-10-01 20:53:51 +00:00
Elliott Hughes
e4ffd9f234 Regenerate the system call stubs (to get x86_64).
This touches the x86 stubs too because arm, x86, and x86_64 now
all share the same header (at a source level), which causes a
reordering of the #include lines.

Change-Id: If9a1e2b2718bd41d8399fea748bce672c513ef84
2013-10-01 13:29:43 -07:00
Elliott Hughes
475e8dde17 Merge "x86_64: Add x86_64 syscalls and tune gen scripts for x86_64" 2013-10-01 20:27:49 +00:00
Pavel Chupin
f12a18b850 x86_64: Add x86_64 syscalls and tune gen scripts for x86_64
* Tune syscall stubs generator for 4th target: x86_64
* Update SYSCALLS.TXT with x86_64 syscalls:
 - Most of the x86 syscalls are equally supported
 - *32 syscalls are not supported on 64-bit
 - *64 syscalls are replaced accordingly without 64 suffix
 - Some syscalls are not supported, replaced with x86_64 analog

Syscalls are regenerated as separate patch for review convenience.

Change-Id: I4ea2e0f13759b0aa61f05208ca68da8d6bc7c048
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2013-10-01 13:27:07 -07:00
Pavel Chupin
ce7add19d8 x86_64: libm fixes
* Makefile update for x86_64 target
* amd64 arch files

Change-Id: I8f17e3338bffd89a3086fbddd1e91bb4619eac1b
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2013-10-01 11:38:54 -07:00
Elliott Hughes
fd152c3158 Merge "Clean up some comments." 2013-10-01 18:10:54 +00:00
Elliott Hughes
c0af695426 Clean up some comments.
Copyright headers shouldn't contain the filename (and especially
shouldn't contain a different file's filename).

Change-Id: I82690a3bf371265402bc16f5d2fbb9299c3a1926
2013-10-01 11:10:21 -07:00
Elliott Hughes
f281fd02e9 Merge "Better statfs/fstatfs glibc compatibility." 2013-10-01 15:30:40 +00:00
Elliott Hughes
693bd73fcd Merge "Remove 32-bit assumptions from the ELF code." 2013-10-01 15:23:44 +00:00
Elliott Hughes
01a700e5d2 Better statfs/fstatfs glibc compatibility.
Change-Id: I069d169c96cd71b75a045ec911fb4bd484c6b2c9
2013-09-30 21:57:07 -07:00
Elliott Hughes
f5ea738baa Merge "Fix x86 build." 2013-10-01 02:23:02 +00:00
Elliott Hughes
3456a1f5f4 Fix x86 build.
Change-Id: I1f2d8189bec3d0e25d21ca7d7bd73fd02f8678e2
2013-09-30 19:20:02 -07:00
Elliott Hughes
c620059479 Remove 32-bit assumptions from the ELF code.
Change-Id: I2c1f3d34c33685799aade8866eec44479ff9f963
2013-09-30 18:43:46 -07:00
Elliott Hughes
6dee3b9aee Merge "Add x86_64 to the bionic headers." 2013-10-01 01:42:43 +00:00
Elliott Hughes
d3e64a3f40 Add x86_64 to the bionic headers.
Manual changes:

  cpp.py: cope with macros that refer to other macros.

  defaults.py: x86 no longer always implies __i386__; use __i386__ to replace
  the kernel CONFIG_X86_32 flag.

  asm/page.h: the upstream page.h isn't a uapi header and no longer includes
  the stuff we were using it for. Let's just have our own static file, since
  it's the same for all our architectures (both 32- and 64-bit).

  sys/select.h: we used to use the various FD_SET-related macros from the
  kernel header files, but they've gone. Adjust by adding trivial equivalent
  definitions.

Automated changes:

  libc/kernel/arch-x86, libc/kernel/common: regenerated from
  external/kernel-headers.

Change-Id: I84fc0ed52dc742e043b4ae300fd3b58ee99b7fcd
2013-09-30 18:42:13 -07:00
Elliott Hughes
76218efbeb Merge "Fix inttypes.h and stdint.h for 64-bit (and C++11)." 2013-09-30 21:53:06 +00:00
Elliott Hughes
a9a02acc9f Fix inttypes.h and stdint.h for 64-bit (and C++11).
Change-Id: I394630348413c9aafcac137ce1ca5f0a93d9ab6f
2013-09-30 14:46:47 -07:00
Elliott Hughes
4d016c6a83 Merge "Upgrade to tzcode2013f plus Android modifications (from tzcode2013d plus Android modifications)." 2013-09-27 22:38:45 +00:00
Nick Kralevich
6aed6077fb Merge "Fix unnecessary call to __strncpy_chk2" 2013-09-27 22:13:19 +00:00
Nick Kralevich
d13c2b1ba6 Fix unnecessary call to __strncpy_chk2
If "n" is smaller than the size of "src", then we'll
never read off the end of src. It makes no sense to call
__strncpy_chk2 in those circumstances.

For example, consider the following code:

int main() {
  char src[10];
  char dst[5];
  memcpy(src, "0123456789", sizeof(src));
  strncpy(dst, src, sizeof(dst));
  dst[4] = '\0';
  printf("%s\n", dst);
  return 0;
}

In this code, it's clear that the strncpy will never read off
the end of src.

Change-Id: I9cf58857a0c5216b4576d21d3c1625e2913ccc03
2013-09-27 13:21:24 -07:00