Commit Graph

3463 Commits

Author SHA1 Message Date
Elliott Hughes
2ecc164ae9 Remove the dependency on the non-uapi __kernel_nlink_t.
The kernel doesn't have an nlink_t; it just uses the equivalent of
uint32_t. We already had a usable __nlink_t in the C library, so
let's just define our nlink_t in terms of __nlink_t, which is what
__nlink_t was meant for anyway.

Note that our struct stat just follows the kernel, and doesn't refer
to nlink_t anyway.

Change-Id: I2a56e418e42404b1741b08c50554b03c11caebae
2013-11-08 14:38:12 -08:00
Elliott Hughes
0538d38a30 am 26d8853a: am cac7eec5: am 68723453: Merge "Generate the uapi headers for mips and x86/x86_64."
* commit '26d8853ab5d3c42654a90bf31e54bb851f3b083c':
  Generate the uapi headers for mips and x86/x86_64.
2013-11-08 14:28:57 -08:00
Elliott Hughes
26d8853ab5 am cac7eec5: am 68723453: Merge "Generate the uapi headers for mips and x86/x86_64."
* commit 'cac7eec55a4853abfcd5b8d7bce35d79ab330132':
  Generate the uapi headers for mips and x86/x86_64.
2013-11-08 14:23:38 -08:00
Elliott Hughes
abd626117c Generate the uapi headers for mips and x86/x86_64.
Bug: 11559337
Change-Id: I23b1a43e7bfa8fa6f9df7e59d2e731a0ec52dafc
2013-11-08 11:46:03 -08:00
Elliott Hughes
fae1b3d1a2 am b92de381: am 99a38fcf: am 486c8616: Merge "Prepare to switch to the uapi <linux/signal.h>."
* commit 'b92de38170e3d3aeb2b05449909fb76c96954062':
  Prepare to switch to the uapi <linux/signal.h>.
2013-11-07 15:13:24 -08:00
Elliott Hughes
693cd7ff65 am 81c24a1a: am c9c84992: am 266eb4a4: Merge "Stop using the non-uapi <linux/err.h> header file."
* commit '81c24a1a49ada6fa86ea51070a6202fce7036f36':
  Stop using the non-uapi <linux/err.h> header file.
2013-11-07 15:12:59 -08:00
Elliott Hughes
b92de38170 am 99a38fcf: am 486c8616: Merge "Prepare to switch to the uapi <linux/signal.h>."
* commit '99a38fcf33d220524e41979a3f9d842399fd638d':
  Prepare to switch to the uapi <linux/signal.h>.
2013-11-07 12:45:33 -08:00
Elliott Hughes
61fb3fc770 Prepare to switch to the uapi <linux/signal.h>.
<time.h> didn't need to copy the cruft from <signal.h>, and
<signal.h> only needs the uid_t hack when it's not using
uapi headers.

pthread_exit.cpp should include what it uses.

Change-Id: I836c36abe0f0a781d41fc425b249d1c7686bb124
2013-11-07 12:29:07 -08:00
Elliott Hughes
81c24a1a49 am c9c84992: am 266eb4a4: Merge "Stop using the non-uapi <linux/err.h> header file."
* commit 'c9c84992fb9ccbf32580c93967356383f58d9687':
  Stop using the non-uapi <linux/err.h> header file.
2013-11-07 10:48:29 -08:00
Elliott Hughes
ed74484dcb Stop using the non-uapi <linux/err.h> header file.
We only need it for MAX_ERRNO, and it's time we had somewhere to put
the little assembler utility macros we've been putting off writing.

Change-Id: I9354d2e0dc47c689296a34b5b229fc9ba75f1a83
2013-11-07 10:31:05 -08:00
Rom Lemarchand
d1cd2392c9 Merge "Refresh libc/kernel/common/linux/ion.h" 2013-11-07 13:29:57 +00:00
Elliott Hughes
2a6e13064f am 6fc4a1cd: am a034e1d3: Merge "Remove pathconf\'s dependencies on non-uapi header files."
* commit '6fc4a1cd3aecca409766e82d333f9cb127a85593':
  Remove pathconf's dependencies on non-uapi header files.
2013-11-06 17:38:12 -08:00
Elliott Hughes
07ddeb0901 am dc9b54c1: am f945732e: Merge "Fix a TODO; we\'ve had SOCK_CLOEXEC for a while now."
* commit 'dc9b54c11c3b20fe5d1dc5c591ff058788e7b376':
  Fix a TODO; we've had SOCK_CLOEXEC for a while now.
2013-11-06 17:21:35 -08:00
Elliott Hughes
7250d2e5b4 Remove pathconf's dependencies on non-uapi header files.
Change-Id: I597996e4b141b009916f7ad2866dd100e08aa4d3
2013-11-06 17:21:09 -08:00
Elliott Hughes
a4e281a549 am 76833a7c: am 9e63e03d: Merge "Clean up the 32-bit kernel support, fix LP64 fcntl declaration."
* commit '76833a7c575ca372b41cb6e2a964918d69fc0dbe':
  Clean up the 32-bit kernel support, fix LP64 fcntl declaration.
2013-11-06 17:07:35 -08:00
Elliott Hughes
9be07fa527 Fix a TODO; we've had SOCK_CLOEXEC for a while now.
Change-Id: I4bc39b57f3c33441ead74127f576bf5a4e311566
2013-11-06 17:04:56 -08:00
Elliott Hughes
9e63e03d34 Merge "Clean up the 32-bit kernel support, fix LP64 fcntl declaration." 2013-11-07 01:02:55 +00:00
Elliott Hughes
062092543f Clean up the 32-bit kernel support, fix LP64 fcntl declaration.
In practice, thanks to all the registers the stubs don't actually change,
but it's confusing to have an incorrect declaration.

I suspect that fcntl remains broken for aarch64; it happens to work for
x86_64 because the first vararg argument gets placed in the right register
anyway, but I have no reason to believe that's true for aarch64.

This patch adds a unit test, though, so we'll be able to tell when we get
as far as running the unit tests.

Change-Id: I58dd0054fe99d7d51d04c22781d8965dff1afbf3
2013-11-06 16:33:39 -08:00
Ben Cheng
64aca718ee am 99205dc9: am af10f9e9: Merge "Add processed uapi kernel headers for ARM."
* commit '99205dc987735e1d57f2e1b8446448f655808ab5':
  Add processed uapi kernel headers for ARM.
2013-11-06 16:10:15 -08:00
Elliott Hughes
c606294b93 am 3721a7e7: am 7115c802: Merge "Fix pread/pwrite for LP64."
* commit '3721a7e71fc831f6d58b7253627043d0658ad977':
  Fix pread/pwrite for LP64.
2013-11-06 16:10:14 -08:00
Elliott Hughes
a047e0ab51 am afc51b92: am c4dbc16e: Merge "Make cpp.py less braindead."
* commit 'afc51b92a0e531f05e0e5477ea857a8669e5e5d1':
  Make cpp.py less braindead.
2013-11-06 16:10:12 -08:00
Ben Cheng
af10f9e927 Merge "Add processed uapi kernel headers for ARM." 2013-11-06 23:55:25 +00:00
Ben Cheng
a6b53f03c7 Add processed uapi kernel headers for ARM.
Change-Id: Id34de841b7b4b5a1bf7d22eb793860f92f24a6e5
2013-11-06 15:51:05 -08:00
Elliott Hughes
8fbf8deb34 Fix pread/pwrite for LP64.
Unlike on 32-bit systems where off_t is 32-bit, we don't want to
throw away the top 32 bits of an LP64 system's 64-bit off_t.

Change-Id: Ib2e0daeb4fc0b8ab3d1b983d0b371d8f81033b50
2013-11-06 13:10:37 -08:00
Elliott Hughes
40596aa005 Make cpp.py less braindead.
The old code ignored operator precedence (!), despite having two tables
of operator precedence. The code's still pretty awful, but I've cleaned
it up enough to fix this, the most important bug.

This patch lets us correctly clean the uapi unistd.h, stat.h, and swab.h files,
and also fixes the mess we were already making of various old kernel
header files. I've added a bunch more tests, fixed the existing tests that
the existing script was already failing (!), and changed the script so that
the tests are run every time the script is run.

We can probably remove some of the old kernel header files that we were
parsing incorrectly, but we can worry about that later.

Bug: 11253477
Change-Id: Ie66c65b3a7ae13b4e98ed8038a6a534f06eae0e5
2013-11-06 12:04:48 -08:00
Rom Lemarchand
ea699f0cf4 Refresh libc/kernel/common/linux/ion.h
Change-Id: Ibd2bf99224b31bbad7b3a9b0d82bfef19162db7b
2013-11-06 09:55:03 -08:00
Elliott Hughes
c76ba85e16 am ffe06880: am f1258672: Merge "Fix <sys/select.h> for LP64, clean up <time.h>."
* commit 'ffe068808909c9825807dbaf8679b9f9efc2c690':
  Fix <sys/select.h> for LP64, clean up <time.h>.
2013-11-05 14:01:49 -08:00
Elliott Hughes
3503ce2177 Fix <sys/select.h> for LP64, clean up <time.h>.
The 64-bit uapi headers don't define FD_CLR and friends, so this
patch updates libc/kernel/common/linux/time.h after the change
b934bbec145e9e084bf48149a3a94ae3dd132157 in external/kernel-headers,
then fixes <sys/select.h> to work in this new world, and removes
some now-unnecessary duplication from <time.h> (with other cruft
cleaned up while I'm here).

Change-Id: Ifd26f901b4d200c65065b3e6ef1b74055127e052
2013-11-05 13:28:36 -08:00
Elliott Hughes
a0352c60ec am 3c5d651c: am 9b9f0d0c: Merge "Remove unnecessary #include."
* commit '3c5d651c051e56e7fb48214e334600cd3f361460':
  Remove unnecessary #include.
2013-11-05 12:06:58 -08:00
Elliott Hughes
6fa79c5cf5 Remove unnecessary #include.
Change-Id: I99dade0b3803272ee29eba2ad36b0311f8a24c31
2013-11-05 11:59:06 -08:00
Elliott Hughes
748ad3d3f5 am 00889af0: am 943cc1b5: Merge "Refresh libc/kernel/common/linux/uinput.h"
* commit '00889af038359e0a7e97384bad25a809e8887857':
  Refresh libc/kernel/common/linux/uinput.h
2013-10-31 16:07:39 -07:00
Scott Anderson
126f66a601 Refresh libc/kernel/common/linux/uinput.h
Change-Id: Icd830af5aee63276554ebf7bfe8192965209cc59
Signed-off-by: Scott Anderson <saa@google.com>
2013-10-31 15:45:32 -07:00
Elliott Hughes
8441e0312c am 61ec6a62: am cc9b7456: Merge "Move the pthread debugging flags to the right place."
* commit '61ec6a621c699d68246a3dfe724fa13f0555ecf4':
  Move the pthread debugging flags to the right place.
2013-10-31 14:26:46 -07:00
Elliott Hughes
66759d6041 Move the pthread debugging flags to the right place.
Change-Id: Ie805bd837d1f72cdf1818e056c0baeb0857e4e84
2013-10-31 14:09:39 -07:00
Elliott Hughes
26e9e3c76a am 1658691e: am 0360e3ab: Merge "<pthread.h> fixes and pthread cleanup."
* commit '1658691e0cfe2eb221bee837649de1907a579a0b':
  <pthread.h> fixes and pthread cleanup.
2013-10-31 13:43:18 -07:00
Elliott Hughes
c3f114037d <pthread.h> fixes and pthread cleanup.
<pthread.h> was missing nonnull attributes, noreturn on pthread_exit,
and had incorrect cv qualifiers for several standard functions.

I've also marked the non-standard stuff (where I count glibc rather
than POSIX as "standard") so we can revisit this cruft for LP64 and
try to ensure we're compatible with glibc.

I've also broken out the pthread_cond* functions into a new file.

I've made the remaining pthread files (plus ptrace) part of the bionic code
and fixed all the warnings.

I've added a few more smoke tests for chunks of untested pthread functionality.

We no longer need the libc_static_common_src_files hack for any of the
pthread implementation because we long since stripped out the rest of
the armv5 support, and this hack was just to ensure that __get_tls in libc.a
went via the kernel if necessary.

This patch also finishes the job of breaking up the pthread.c monolith, and
adds a handful of new tests.

Change-Id: Idc0ae7f5d8aa65989598acd4c01a874fe21582c7
2013-10-31 12:31:16 -07:00
Elliott Hughes
b0b2e29d4e am 9be24f71: am d0d0b52d: Merge "Remove an obsolete ARM gdb hack."
* commit '9be24f71604d4e667bf23d77bb953a29737b3f2d':
  Remove an obsolete ARM gdb hack.
2013-10-30 14:42:59 -07:00
Elliott Hughes
b5b97f20a8 Remove an obsolete ARM gdb hack.
Experiment shows that the claim in the makefile was false: gdb works fine
setting breakpoints in these functions when compiled without special treatment.

Change-Id: Ibdf4dd5a14d171c954b8c2089daaf28e1c310be9
2013-10-30 14:32:42 -07:00
Elliott Hughes
0f3973bdb5 am 6cf34775: am 47a73363: Merge "Factor out some of the makefile cruft."
* commit '6cf34775513859dd48b986162e761aff57df82fb':
  Factor out some of the makefile cruft.
2013-10-29 19:18:56 -07:00
Elliott Hughes
8695949391 am ee99ebbc: am 7a8e20c9: Merge "Explain the sigprocmask in pthread_exit."
* commit 'ee99ebbc8f0447880f316a10b2249f813f964172':
  Explain the sigprocmask in pthread_exit.
2013-10-29 18:31:06 -07:00
Elliott Hughes
2f287bc728 Factor out some of the makefile cruft.
I really don't want to add yet another copy for aarch64.

Also sort arm, mips, and x86.

Also silence the "TARGET_ARCH_VARIANT" warning for non-ARM; Intel and MIPS
have both complained about it.

Change-Id: I32c592a90c0cf0cdae250d84035b3e4655543781
2013-10-29 16:59:54 -07:00
Elliott Hughes
2b6e43e00e Explain the sigprocmask in pthread_exit.
Also remove the SIGSEGV special case, which was probably because
hand-written __exit_with_stack_teardown stubs used to try to cause
SIGSEGV if the exit system call returned (which it never does, so
that dead code disappeared).

Also move the sigprocmask into the only case where it's necessary ---
the one where we unmap the stack that would be used by a signal
handler.

Change-Id: Ie40d20c1ae2f5e7125131b6b492cba7a2c6d08e9
2013-10-29 16:11:06 -07:00
Elliott Hughes
5abb9b15d1 am 3030157f: am 8e6e7cda: Merge "Update <sys/exec_elf.h> to include EM_AARCH64."
* commit '3030157f82e012612ef4c6d999878be2f65116dd':
  Update <sys/exec_elf.h> to include EM_AARCH64.
2013-10-29 08:57:41 -07:00
Elliott Hughes
126405039e Update <sys/exec_elf.h> to include EM_AARCH64.
Upstream added the constant for us.

Change-Id: I197e32d2e5b3fd499d069546ccfcc1d35d65e0a0
2013-10-28 21:28:40 -07:00
Elliott Hughes
bb9a819857 am e89d16d2: am 6e504fda: Merge "AArch64: Add support for AArch64 to stdlib/strtod.c"
* commit 'e89d16d24bb9d07856c7cc95464bfae970f4e847':
  AArch64: Add support for AArch64 to stdlib/strtod.c
2013-10-28 16:36:46 -07:00
Elliott Hughes
8d7297538c am d4e28c23: am 830de5cb: Merge "AArch64: Autogenerated syscalls for AArch64"
* commit 'd4e28c236b592a4968bff354ad7ad192d5a3f36d':
  AArch64: Autogenerated syscalls for AArch64
2013-10-28 16:25:47 -07:00
Serban Constantinescu
65ca282ecd AArch64: Add support for AArch64 to stdlib/strtod.c
This patch adds support for AArch64 to strtod.c definitions.

Change-Id: I9491c4371d921c00e73ae169877a9a71225731fb
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
2013-10-28 16:24:51 -07:00
Elliott Hughes
61f8f7b510 am 48e0ee8a: am 93b7b819: Merge "AArch64: Add support for AArch64 to the syscall interface"
* commit '48e0ee8a0900e820b2fb1bae6347e0d39da62096':
  AArch64: Add support for AArch64 to the syscall interface
2013-10-28 16:22:26 -07:00
Elliott Hughes
87de1a0154 am 5911e25b: am 07d3c6ce: Merge "Fix the *rand48 functions on LP64."
* commit '5911e25bfc8ef3815d0e1ab4f5829ff74a523088':
  Fix the *rand48 functions on LP64.
2013-10-28 16:19:02 -07:00
Serban Constantinescu
7f8863dc07 AArch64: Autogenerated syscalls for AArch64
This patch adds AArch64 syscalls, autogenerated using:
        ./libc/tools/gensyscalls.py

Change-Id: I1cc60430423ecb52a35448bf2c358b82136b2f16
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
2013-10-28 16:18:42 -07:00
Serban Constantinescu
feaa89a1bc AArch64: Add support for AArch64 to the syscall interface
This patch adds support for AArch64 to the syscall interface. The kernel
implementation exports a set of canonical syscalls, therefore some of
the userspace exported syscalls are implemented as stubs based on the
canonical set.

Change-Id: Ia965d71e97769b8be9d7655193fc40303964c4df
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
2013-10-28 16:16:34 -07:00
Elliott Hughes
60fd3450bf Fix the *rand48 functions on LP64.
I reported the mrand48 bug upstream, and 'matt' fixed the whole family
of functions!

Change-Id: I07fbc034e86499ce89599c3026a741738fd0cfc0
2013-10-28 15:24:26 -07:00
Elliott Hughes
85d8536f34 am 6ec070a0: am 020bcdae: Merge "Update <sys/exec_elf.h> to get the DF_* flags."
* commit '6ec070a01509c3477be6d36cd46b81c9b3876733':
  Update <sys/exec_elf.h> to get the DF_* flags.
2013-10-28 15:06:58 -07:00
Elliott Hughes
74ce45972d Update <sys/exec_elf.h> to get the DF_* flags.
Change-Id: Ia9e785f6b95122f94ee3b01a312db1d5bb91a72e
2013-10-28 14:59:41 -07:00
Elliott Hughes
92c6e988cd am 224aee2f: am 486d99f0: Merge "Don\'t allow text relocations on 64-bit."
* commit '224aee2f5cebcccf832c8a204163192bc752c5a1':
  Don't allow text relocations on 64-bit.
2013-10-28 14:41:45 -07:00
Elliott Hughes
e4d792adb8 Don't allow text relocations on 64-bit.
I've also updated our <sys/exec_elf.h> to match upstream.

Change-Id: I52f9fce3167541811208d273ff23ceaa112f7135
2013-10-28 14:34:56 -07:00
Elliott Hughes
d1c7766aea am e9f6c480: am 3ec5d895: Merge "Fix utime/utimes when passed a NULL pointer."
* commit 'e9f6c4800816df3acec0d5683667b5aac290f049':
  Fix utime/utimes when passed a NULL pointer.
2013-10-28 13:34:32 -07:00
Elliott Hughes
27586ebe1a Fix utime/utimes when passed a NULL pointer.
Bug: 11383777
Change-Id: If944a42f3adfa8a6ce91c167c249e009ed63300a
2013-10-28 13:21:06 -07:00
Elliott Hughes
7ef84c7d3d am d9916301: am f7f6b268: Merge "Upgrade to tzdata2013h."
* commit 'd9916301a926c925439efa3cd1bba53e49f10dfc':
  Upgrade to tzdata2013h.
2013-10-28 10:03:20 -07:00
Elliott Hughes
3df3879bd6 Upgrade to tzdata2013h.
From the release notes:

  Changes affecting current and future time stamps:

    Libya has switched its time zone back to UTC+2 without DST,
    instead of UTC+1 with DST.  (Thanks to Even Scharning.)

    Western Sahara (Africa/El_Aaiun) uses Morocco's DST rules.
    (Thanks to Gwillim Law.)

  Changes affecting future time stamps:

    Acre and (we guess) western Amazonas will switch from UTC-4 to UTC-5
    on 2013-11-10.  This affects America/Rio_Branco and America/Eirunepe.
    (Thanks to Steffen Thorsen.)

    Add entries for DST transitions in Morocco in the year 2038.
    This avoids some year-2038 glitches introduced in 2013g.
    (Thanks to Yoshito Umaoka for reporting the problem.)

Change-Id: Ic855df19773e3fbf13b941b5bfa91dcee9e181e1
2013-10-28 09:38:00 -07:00
Elliott Hughes
5332746383 am 155f5c5f: am ad8fb26a: Merge "Fix the exit syscall stub\'s name."
* commit '155f5c5ff9a86ed5319570ae13cc9a061930b0cb':
  Fix the exit syscall stub's name.
2013-10-25 09:29:38 -07:00
Elliott Hughes
6b53c2349a Fix the exit syscall stub's name.
I've left the exit_group syscall as _exit because otherwise we'd have to
convince the compiler that our _exit (which just calls __exit_group) is
actually "noreturn", and it seems like that would be less clean than just
cutting out the middleman.

We'll just have to trust ourselves not to add anything to SYSCALLS.TXT
that ought to be private but that only has a single leading underscore.
Hopefully we can manage that.

Change-Id: Iac47faea9f516186e1774381846c54cafabc4354
2013-10-24 22:41:50 -07:00
Elliott Hughes
de2df5421d am fa262c13: am bbefbf1a: Merge "Use hidden visibility for generated stubs whose names begin with underscores."
* commit 'fa262c13d9115cd84545ad4a0898d18770702e15':
  Use hidden visibility for generated stubs whose names begin with underscores.
2013-10-24 17:26:22 -07:00
Elliott Hughes
0a9d0db6b3 am c2404f6c: am d60a625d: Merge "Start moving 32-bit cruft somewhere it won\'t pollute 64-bit."
* commit 'c2404f6c1d29a47c0bc6cdf510c91e43f8a1e424':
  Start moving 32-bit cruft somewhere it won't pollute 64-bit.
2013-10-24 17:22:35 -07:00
Elliott Hughes
bbefbf1a75 Merge "Use hidden visibility for generated stubs whose names begin with underscores." 2013-10-25 00:20:24 +00:00
Elliott Hughes
567a8de3ca Start moving 32-bit cruft somewhere it won't pollute 64-bit.
Change-Id: I03a6a50a5243f29e50fb58a3cf8b5e7198640baa
2013-10-24 17:14:55 -07:00
Elliott Hughes
fff6e272e9 Use hidden visibility for generated stubs whose names begin with underscores.
Change-Id: Idb39fd04b7a14114801624e744e76e0e7913d951
2013-10-24 17:03:20 -07:00
Elliott Hughes
c55f980d23 am 4b832714: am 97288549: Merge "Let the compiler worry about implementing ffs(3)."
* commit '4b83271437727fcc2b2400b5c81dc4d3cbb7391e':
  Let the compiler worry about implementing ffs(3).
2013-10-24 16:41:34 -07:00
Elliott Hughes
bf425680e4 Let the compiler worry about implementing ffs(3).
It does at least as good a job as our old hand-written assembly anyway.

Change-Id: If7c4a1ac508bace0b71ee7b67808caa6eabf11d2
2013-10-24 16:29:40 -07:00
Elliott Hughes
557a5e08c6 am e4ab1b67: am f8dfb6f2: Merge "Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls."
* commit 'e4ab1b6795e325fe346c792e6254592a8db16d4e':
  Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls.
2013-10-24 15:56:17 -07:00
Elliott Hughes
f8dfb6f249 Merge "Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls." 2013-10-24 22:49:49 +00:00
Elliott Hughes
11952073af Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls.
(aarch64 kernels don't have these system calls.)

Change-Id: I6f64075aa412f71520f2df71c3d69b647f91c1ca
2013-10-24 15:48:32 -07:00
Ben Cheng
112b7088e7 am 8b113f75: am fcb37b87: Merge "Add __EXPORTED_HEADERS__ as predefined macro."
* commit '8b113f75b3e3835da00d0af61f033410fc29a8ca':
  Add __EXPORTED_HEADERS__ as predefined macro.
2013-10-23 15:54:04 -07:00
Ben Cheng
fcb37b876e Merge "Add __EXPORTED_HEADERS__ as predefined macro." 2013-10-23 22:47:21 +00:00
Ben Cheng
460fa7033b Add __EXPORTED_HEADERS__ as predefined macro.
To weed out stuff like this in uapi/linux/types.h

ifndef __EXPORTED_HEADERS__
warning "Attempt to use kernel headers from user space, see
http://kernelnewbies.org/KernelHeaders"
endif /* __EXPORTED_HEADERS__ */

Change-Id: I6506cea6248f7a3b44a839b98e91bdd0d3a6c4cd
2013-10-23 14:44:38 -07:00
Elliott Hughes
977f91f5bf am ae61f49b: am cdac5f73: Merge "MIPS\' pipe(2) is weird, but MIPS\' pipe2(2) is the same as everyone else\'s."
* commit 'ae61f49b130e65997750f4ffb84f22512e055c5f':
  MIPS' pipe(2) is weird, but MIPS' pipe2(2) is the same as everyone else's.
2013-10-23 11:33:24 -07:00
Elliott Hughes
c410e75c68 am 0e1faa2e: am 1370854c: Merge "Fix header file dependencies."
* commit '0e1faa2e00a4f1d4508b26a6411ac1daa1ce8b6d':
  Fix header file dependencies.
2013-10-23 11:33:23 -07:00
Elliott Hughes
cdac5f73ac Merge "MIPS' pipe(2) is weird, but MIPS' pipe2(2) is the same as everyone else's." 2013-10-23 18:27:35 +00:00
Elliott Hughes
93de3d881d Fix header file dependencies.
MIPS' asm/fcntl.h assumes a bunch of __kernel_* types are already declared.

Change-Id: Iff701bbb5ede9667a78230c2de3a8f4fe41371c5
2013-10-23 11:25:54 -07:00
Elliott Hughes
b8cf18b4dd MIPS' pipe(2) is weird, but MIPS' pipe2(2) is the same as everyone else's.
arch/mips/kernel/syscall.c has a special sysm_pipe wrapper, but there's
no special treatment of pipe2 because it carries no historical baggage.

Change-Id: I892c0f690b21992c8a48276a9b732126f18fc0ee
2013-10-23 11:21:36 -07:00
Elliott Hughes
623fcf1e98 am db7f8eb0: am 97dc3309: Merge "Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls."
* commit 'db7f8eb011db18c69ec872823906e5f9660deaf7':
  Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls.
2013-10-23 10:34:03 -07:00
Elliott Hughes
cac7b9d6ec Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls.
(aarch64 kernels only have the newer system calls.)

Also expose the new functionality that's exposed by glibc in our header files.

Change-Id: I45d2d168a03f88723d1f7fbf634701006a4843c5
2013-10-23 09:48:29 -07:00
Elliott Hughes
e514d2fe66 resolved conflicts for merge of 1dbf56aa to klp-dev-plus-aosp
Change-Id: Ia1d1467065320941d6dc3a50f7ea85eb4dbf3841
2013-10-22 16:41:42 -07:00
Elliott Hughes
f8fcfbc85a Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls.
Modern architectures only get the *at(2) system calls. For example,
aarch64 doesn't have open(2), and expects userspace to use openat(2)
instead.

Change-Id: I87b4ed79790cb8a80844f5544ac1a13fda26c7b5
2013-10-22 16:31:01 -07:00
Elliott Hughes
0775b1dae8 am 3f0505cc: am f0ed9bf2: Merge "AArch64: Fix definitions for STDINT_LIMITS"
* commit '3f0505cc87ff452f79842ab14aef44d0e4e1a2f2':
  AArch64: Fix definitions for STDINT_LIMITS
2013-10-22 12:46:55 -07:00
Serban Constantinescu
debc021491 AArch64: Fix definitions for STDINT_LIMITS
This patches fixes the definitions for STDINT_LIMITS on __LP64__
systems.

Change-Id: I5eb1664e9ef7c303432a2b041c99cec663816b75
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
2013-10-22 12:40:16 -07:00
Elliott Hughes
081b40f378 am 550ccc2e: am 8c39e58b: Merge "Make sure we have a mkfifo symbol."
* commit '550ccc2e20cb1998a959a7abb24f5ec382a93192':
  Make sure we have a mkfifo symbol.
2013-10-22 12:08:51 -07:00
Elliott Hughes
65104ba533 am 9805f3ec: am 23148470: Merge "AArch64: Fix uses of stack size for 32/64bit libc builds"
* commit '9805f3ec5b4ebfbe892e79a086c7d23a0bd393cf':
  AArch64: Fix uses of stack size for 32/64bit libc builds
2013-10-22 12:08:50 -07:00
Elliott Hughes
8c39e58b6a Merge "Make sure we have a mkfifo symbol." 2013-10-22 19:03:57 +00:00
Elliott Hughes
594b1a4af2 Make sure we have a mkfifo symbol.
Bug: https://code.google.com/p/android/issues/detail?id=58888
Change-Id: Ic0a883a5f30beb82cb7be3c4e81b6d693d5fbb4d
2013-10-22 12:03:19 -07:00
Serban Constantinescu
7f70c9b64e AArch64: Fix uses of stack size for 32/64bit libc builds
This patch fixes stack size uses to size_t.

Change-Id: I0671c85ddb1c1aceaf9440a7c73c21fe528653fa
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
2013-10-22 12:01:29 -07:00
Elliott Hughes
41c2874138 am dcc3a211: am 9d4b67ea: Merge "Fix 16-byte stack alignment requirement for x86_64 ABI"
* commit 'dcc3a211bade2f2413a689c8d273084cac516a72':
  Fix 16-byte stack alignment requirement for x86_64 ABI
2013-10-21 17:45:20 -07:00
Pavel Chupin
33a209e575 Fix 16-byte stack alignment requirement for x86_64 ABI
Change-Id: I43304803ac54c8688c61688bd96c7160614172d4
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2013-10-21 17:36:28 -07:00
Elliott Hughes
16ac7c4d97 am 1d8c8b6a: am f4ac8ba5: Merge "Fix the x86_64 vfork implementation."
* commit '1d8c8b6a9ef0100f2f17ef1b6f4d145163b22ed0':
  Fix the x86_64 vfork implementation.
2013-10-21 14:27:21 -07:00
Elliott Hughes
f1a93bf7da am 8173b001: am ac5d29fe: Merge "Fix the x86_64 clone implementation."
* commit '8173b00125bc0bdeda09d9b9d4f34a2f82b66016':
  Fix the x86_64 clone implementation.
2013-10-21 14:27:20 -07:00
Elliott Hughes
f4ac8ba566 Merge "Fix the x86_64 vfork implementation." 2013-10-21 21:20:51 +00:00
Elliott Hughes
53bfdae4ff Fix the x86_64 clone implementation.
Change-Id: Ia75f46dcb4d3222049e9a6a6fabc2b17223b47f7
2013-10-18 19:39:09 -07:00
Elliott Hughes
9ea4d5f3a8 Fix the x86_64 vfork implementation.
Change-Id: I599507f5058e6196dc2d5b5653d06d5135dd8ac1
2013-10-18 18:21:11 -07:00
Elliott Hughes
68248e2fec am 013afce9: am a5bab412: Merge "Fix struct statfs for LP64."
* commit '013afce94f1195218531f3da6f3e25f4526dddf4':
  Fix struct statfs for LP64.
2013-10-18 17:39:18 -07:00
Elliott Hughes
c7fdee72dd Fix struct statfs for LP64.
Change-Id: I9649d881588931a1d672b65ddcf94009daadb0ef
2013-10-18 17:00:11 -07:00
Elliott Hughes
2fa423f49f am c54e7b8d: am 79f79c90: Merge "x86_64: Fix sys/stat.h"
* commit 'c54e7b8d30e18eb9fd5320f10707fd57cf831576':
  x86_64: Fix sys/stat.h
2013-10-18 13:31:41 -07:00
Pavel Chupin
f68fac8c00 x86_64: Fix sys/stat.h
Add 64-bit stat structure mapping 64-bit stat syscall.

Change-Id: Ice517616391bee1d556b6c03e7f5ee610050e6c6
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2013-10-18 13:24:25 -07:00
Elliott Hughes
b13ad7a8be am b956f3ce: am e9797ac6: Merge "Fix clone.S for x86_64."
* commit 'b956f3ce7a9b4d1d8a15d6debcd36f09e2ef4aa6':
  Fix clone.S for x86_64.
2013-10-17 22:58:23 -07:00
Elliott Hughes
938f38daee Fix clone.S for x86_64.
We need to pull the arguments off the child stack and put them into the
registers they're expected to be in.

Change-Id: I064b3258cdd89d513c632857cabb46e52492af2b
2013-10-17 22:22:31 -07:00
Elliott Hughes
05c33a59b9 am 0c72ebc9: am 8ea34537: Merge "Add missing aliases for off64_t functions in 64-bit land."
* commit '0c72ebc9a1836ce9dda6e28e6b8117b4651e7c8e':
  Add missing aliases for off64_t functions in 64-bit land.
2013-10-17 21:48:24 -07:00
Elliott Hughes
8ea3453719 Merge "Add missing aliases for off64_t functions in 64-bit land." 2013-10-18 04:42:09 +00:00
Elliott Hughes
23eeda6ad9 am 6519d76c: am 88dcfb5e: Merge "Add ffs and memcmp16 to x86_64."
* commit '6519d76c2988f59622892966440577955aed9f49':
  Add ffs and memcmp16 to x86_64.
2013-10-17 21:38:00 -07:00
Elliott Hughes
8ca530e559 Add ffs and memcmp16 to x86_64.
Change-Id: I652c1356f1c7c52299977181c2cf154386979380
2013-10-17 17:03:22 -07:00
Elliott Hughes
a6519d6306 Add missing aliases for off64_t functions in 64-bit land.
See the comment in SYSCALLS.TXT for an explanation.

Change-Id: I33d4056e84160c3cca74b7b588e9924a569753ed
2013-10-17 16:56:40 -07:00
Elliott Hughes
22cf36af18 am 7e12e6af: am 5b191604: Merge "Add SOCK_CLOEXEC and SOCK_NONBLOCK socket flags."
* commit '7e12e6af56e1cc256ea6d9c2c69d8438e6ca95be':
  Add SOCK_CLOEXEC and SOCK_NONBLOCK socket flags.
2013-10-17 13:50:12 -07:00
Andrei Emeltchenko
43d2137af0 Add SOCK_CLOEXEC and SOCK_NONBLOCK socket flags.
SOCK_CLOEXEC is used to atomically set close-on-exec flag for the new
descriptor(s), and SOCK_NONBLOCK is used to mark descriptor(s) as
non-blocking.

Change-Id: I8ba6a70543d23759e3ddcc7ff9c21b567184d681
2013-10-17 13:32:32 -07:00
Elliott Hughes
1732a8da03 am 417c2061: am 922e2af4: Merge "O_CLOEXEC is always defined for arm, mips, x86, and x86_64."
* commit '417c2061c857015c1b0319646810111423b5223d':
  O_CLOEXEC is always defined for arm, mips, x86, and x86_64.
2013-10-17 12:57:57 -07:00
Elliott Hughes
7efbac17bf am 2039949b: am 967cd1bc: Merge "Fix sigaction(3) for 64-bit."
* commit '2039949b225a3f6414250385b8d814440c24bab5':
  Fix sigaction(3) for 64-bit.
2013-10-17 11:52:30 -07:00
Elliott Hughes
e989399dc2 O_CLOEXEC is always defined for arm, mips, x86, and x86_64.
I built all four, just to be sure.

Change-Id: I5c818575c8142fccfc8fb163468832807a535e90
2013-10-17 11:45:22 -07:00
Elliott Hughes
c7e9b23317 Fix sigaction(3) for 64-bit.
Also clean up <signal.h> and revert the hacks that were necessary
for 64-bit in linker/debugger.cpp until now.

Change-Id: I3b0554ca8a49ee1c97cda086ce2c1954ebc11892
2013-10-17 11:36:55 -07:00
Ben Cheng
2cda66116c am a458b609: am f89f1eaa: Merge "Refresh libc/kernel/common/linux/auxvec.h"
* commit 'a458b609dbbff789a58fe4d2710af947b20d7e29':
  Refresh libc/kernel/common/linux/auxvec.h
2013-10-16 16:58:47 -07:00
Ben Cheng
76b795a8ba Refresh libc/kernel/common/linux/auxvec.h
Change-Id: If9bb50a2f233cdb60e91bd979876edb917e0f66d
2013-10-16 16:50:14 -07:00
Ben Cheng
a5e5fad478 am 29351c80: am 3fdd6b83: Merge "Add processed uapi kernel headers (common and aarch64-specific)"
* commit '29351c8091c4b7338bd47fb6b3e5aed94a2abf32':
  Add processed uapi kernel headers (common and aarch64-specific)
2013-10-16 16:33:50 -07:00
Elliott Hughes
b2386fed55 am 4346bd9f: am bffe261a: Merge "Sort the syscalls.mk files, give all generated files the same header."
* commit '4346bd9fbcfe4144df7ac0e920bdda274d523fc4':
  Sort the syscalls.mk files, give all generated files the same header.
2013-10-16 16:33:50 -07:00
Ben Cheng
3fdd6b8337 Merge "Add processed uapi kernel headers (common and aarch64-specific)" 2013-10-16 23:17:52 +00:00
Ben Cheng
2e0b93b01f am 3b1b9f9f: am f0447ddb: Merge "Tweaked the cleanup scripts to handle uapi and aarch64 headers."
* commit '3b1b9f9ff6a2dc88ac0d78fd17f3b58448440357':
  Tweaked the cleanup scripts to handle uapi and aarch64 headers.
2013-10-16 16:09:44 -07:00
Elliott Hughes
6b9321b858 am d6e117b6: am 1f29c2f5: Merge "Switch sigpending over to rt_sigpending."
* commit 'd6e117b64bdfbf8d793eb59ea9604b806608ec75':
  Switch sigpending over to rt_sigpending.
2013-10-16 16:09:42 -07:00
Ben Cheng
655a7c081f Add processed uapi kernel headers (common and aarch64-specific)
Change-Id: If0be7b83bd8fe7cb02472d173f7c452aabf61124
2013-10-16 16:09:24 -07:00
Elliott Hughes
bffe261a1f Merge "Sort the syscalls.mk files, give all generated files the same header." 2013-10-16 23:06:48 +00:00
Ben Cheng
8bea2b6fac Tweaked the cleanup scripts to handle uapi and aarch64 headers.
The processed uapi directory is now placed at libc/kernel/uapi as
opposed to libc/kernel/common/uapi as it contains
architectural-dependent headers now.

Change-Id: I53f814704a4d231b452fde398cd94257a0fb2eea
2013-10-16 15:28:56 -07:00
Elliott Hughes
103ccde8fe Sort the syscalls.mk files, give all generated files the same header.
No non-comment changes to the .S files.

Change-Id: Iafcfd004c3ea92b64268f80ab16df615b97cefac
2013-10-16 14:27:59 -07:00
Elliott Hughes
40d105ccb3 Switch sigpending over to rt_sigpending.
Change-Id: I7b28984796b5fb343cfbcc47e0afc3a84293d417
2013-10-16 14:07:01 -07:00
Elliott Hughes
d5e5a6a353 am 2426cdb6: am 26242bf2: Merge "Remove support for the useless \'custom\' option in SYSCALLS.TXT."
* commit '2426cdb63b95435bb09bacfc3af63304d991c4a2':
  Remove support for the useless 'custom' option in SYSCALLS.TXT.
2013-10-15 19:57:53 -07:00
Elliott Hughes
afaebc3fef am 87fc78de: am 608c65f6: Merge "Fix sigsuspend to use rt_sigsuspend on all platforms."
* commit '87fc78de6c869d0403ccdd2e756ec1f5d456f3d3':
  Fix sigsuspend to use rt_sigsuspend on all platforms.
2013-10-15 18:20:32 -07:00
Elliott Hughes
c9da332cce Remove support for the useless 'custom' option in SYSCALLS.TXT.
This cruft dates from a time when bionic would only output syscall
contants for the syscalls mentioned in SYSCALLS.TXT. I fixed that
a long time ago, but never followed through with the removal of what
was then confusingly called "stub" and was recently renamed "custom".

Change-Id: I8f3872a200b2dc8325e357cc5ee505ea4212ef95
2013-10-15 18:18:58 -07:00
Elliott Hughes
1f5af926fa Fix sigsuspend to use rt_sigsuspend on all platforms.
Change-Id: I981c1a66d35480d4457a0a08a1b042dac94daa5b
2013-10-15 18:15:19 -07:00
Elliott Hughes
f2a760dca7 am a85606e1: am c100a100: Merge "\'Avoid confusing "read prevented write" log messages\' 2."
* commit 'a85606e1563c2153bea3c73dfe4ca1588e778f22':
  'Avoid confusing "read prevented write" log messages' 2.
2013-10-15 17:38:17 -07:00
Elliott Hughes
68b67113a4 'Avoid confusing "read prevented write" log messages' 2.
This time it's assembler.

Change-Id: Iae6369833b8046b8eda70238bb4ed0cae64269ea
2013-10-15 17:17:05 -07:00
Elliott Hughes
cbfa1afda3 am 0287db52: am d9913b0b: Merge "Make pthread_create report sched_setscheduler failures on LP64."
* commit '0287db52ed93df39ab45c7f60a241ae621866b90':
  Make pthread_create report sched_setscheduler failures on LP64.
2013-10-15 17:14:59 -07:00
Elliott Hughes
d9913b0b0d Merge "Make pthread_create report sched_setscheduler failures on LP64." 2013-10-16 00:09:54 +00:00
Elliott Hughes
df17ce7858 am 26491483: am 76725214: Merge "Avoid confusing "read prevented write" log messages."
* commit '264914838d1c22c15ed0069d1217a780835c6d1c':
  Avoid confusing "read prevented write" log messages.
2013-10-15 16:58:19 -07:00
Elliott Hughes
b01ebe6d4e am 14e7482c: am d16391bb: Merge "Fix indentation in sched_getaffinity."
* commit '14e7482c556820d8ad3b77f025dfc465d55c7262':
  Fix indentation in sched_getaffinity.
2013-10-15 16:58:19 -07:00
Elliott Hughes
7672521440 Merge "Avoid confusing "read prevented write" log messages." 2013-10-15 23:53:45 +00:00
Elliott Hughes
98624c3746 Make pthread_create report sched_setscheduler failures on LP64.
We couldn't fix this for 32-bit because there's too much broken
code out there. (Pretty much everyone asks for real-time
scheduling for all their threads, and the kernel says "don't be
stupid".)

Change-Id: I43c5271e6b6bb91278b9a19eec08cbf05391e3c4
2013-10-15 16:51:17 -07:00
Elliott Hughes
0cfc95e010 Fix indentation in sched_getaffinity.
Change-Id: I966852149a0255ca132cd7a15f135a875ce400d0
2013-10-15 16:49:49 -07:00
Elliott Hughes
d1eda33f01 Avoid confusing "read prevented write" log messages.
Moving to a "function: message" style avoids ambiguity.

Change-Id: If9d590e50265c61725d3673bd03796e65edd2d5e
2013-10-15 16:49:28 -07:00
Christopher Ferris
289c460c55 am ac6bc319: Remove new aligned memcpy path for cortex-a15.
* commit 'ac6bc31942e58c8893c0695d9766d0f3e39335fe':
  Remove new aligned memcpy path for cortex-a15.
2013-10-15 16:17:14 -07:00
Christopher Ferris
ac6bc31942 Remove new aligned memcpy path for cortex-a15.
For some reason the new cortex-a15 memcpy code from ARM is really bad
for really large copies. This change forces us to go down the old path
for all copies.

All of my benchmarks show the new version is faster for large copies, but
something is going on that I don't understand.

Bug: 10838353
Change-Id: I01c16d4a2575e76f4c69862c6f78fd9024eb3fb8
2013-10-15 14:54:02 -07:00
Christopher Ferris
d77ff4f423 am 76d78dc0: am dc9d8d05: Merge "Modify prefetch for krait memcpy."
* commit '76d78dc0441ba982438ef613a8d6f2f65c6834e0':
  Modify prefetch for krait memcpy.
2013-10-15 14:19:27 -07:00
Elliott Hughes
4681f8244e am 5b3f1d8b: am 22b83da4: Merge "Clean up the sigprocmask/pthread_sigmask implementation."
* commit '5b3f1d8b3a6a1caf059dc376e4967a27ddd57dac':
  Clean up the sigprocmask/pthread_sigmask implementation.
2013-10-15 14:16:02 -07:00
Christopher Ferris
dc9d8d050a Merge "Modify prefetch for krait memcpy." 2013-10-15 21:12:31 +00:00
Christopher Ferris
c3c58fb560 Modify prefetch for krait memcpy.
I originally modified the krait mainloop prefetch from cacheline * 8 to * 2.
This causes a perf degradation for copies bigger than will fit in the cache.
Fixing this back to the original * 8. I tried other multiples, but * 8 is th
sweet spot on krait.

Bug: 11221806

Change-Id: I1f75fad6440f7417e664795a6e7b5616f6a29c45
2013-10-15 12:10:06 -07:00
Elliott Hughes
19e62325c2 Clean up the sigprocmask/pthread_sigmask implementation.
Let's have both use rt_sigprocmask, like in glibc. The 64-bit ABIs
can share the same code as the 32-bit ABIs.

Also, let's test the return side of these calls, not just the
setting.

Bug: 11069919
Change-Id: I11da99f85b5b481870943c520d05ec929b15eddb
2013-10-15 11:23:57 -07:00
Stephen Hines
8161b23689 am 4691325d: am abeafbd6: Merge "Wrap sprintf()/snprintf() macros to prevent expansion errors."
* commit '4691325d48406033632fe84a944ac9c3bd2e5097':
  Wrap sprintf()/snprintf() macros to prevent expansion errors.
2013-10-11 16:33:07 -07:00
Stephen Hines
6e38072add Wrap sprintf()/snprintf() macros to prevent expansion errors.
Previously, FORTIFY_SOURCE used single macros to define these standard
functions for use with clang. This can cause conflicts with other macros used
to call these functions, particularly when those macros expand the number of
arguments to the function. This change wraps our macro definitions, so that
expansion properly takes place for programmer arguments first.

Change-Id: I55929b1fd2a643b9d14a17631c4bcab3b0b712cf
2013-10-11 12:14:49 -07:00