public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 00/29] Add Support for AARCH64:ILP32
@ 2014-10-27  8:00 Andrew Pinski
  2014-10-27  8:00 ` [PATCH 10/29] [AARCH64] Add PTR_REG, PTR_LOG_SIZE, and PTR_SIZE. Use it in LDST_PCREL and LDST_GLOBAL Andrew Pinski
                   ` (30 more replies)
  0 siblings, 31 replies; 73+ messages in thread
From: Andrew Pinski @ 2014-10-27  8:00 UTC (permalink / raw)
  To: libc-alpha; +Cc: Andrew Pinski


This patch series adds AARCH64:ILP32 support to glibc.
The first patch fixes a bug and it should go in even without the rest
of the patches being approved.

The next 6 patches are common/generic changes to allow AARCH64 to
use the generic headers rather than a copy of its own.

The next patch just adds header guards which is needed to make
sure sysdep.h is not included twice.

The next one adds the relocations to elf.h; these relocations are defined
in the beta version of the ABI.

Then the rest of the patches fully add support for ILP32, split up for easier
review.

I have ran LTO on with the kernel changes that were submitted (but not committed)
and there was no unexpected failures (there are a few testcase issues dealing with
sigaction strcuture not being the same between the kernel and the userland).

Andrew Pinski (29):
  [AARCH64] Fix utmp struct for compatibility reasons.
  Allow sigset be an array of a different type
  Add ability for the IPC structures (msqid_ds, semid_ds, shmid_ds,
    etc.) to have time_t being 64bit
  Allow rusage work on a big-endian 32bit-on-64bit target
  Allow fd_mask type not be an array of long.
  Allow some fields of siginfo to be different from the generic one
  Allow generic stat and statfs not have padding for 32bit targets
  [AARCH64] Add header guards to sysdep.h headers.
  Add dynamic ILP32 AARCH64 relocations to elf.h
  [AARCH64] Add PTR_REG, PTR_LOG_SIZE, and PTR_SIZE.  Use it in
    LDST_PCREL and LDST_GLOBAL.
  [AARCH64] Use PTR_REG in crti.S.
  [AARCH64] Use PTR_REG/PTR_SIZE/PTR_SIZE_LOG in dl-tlsesc.S
  [AARCH64] Use PTR_* macros in dl-trampoline.S
  [AARCH64] Use PTR_* in start.S
  [AARCH64] Use PTR_REG in getcontext.S.
  [AARCH64] Detect ILP32 in configure scripts.
  [AARCH64] Syscalls for ILP32 are passed always via 64bit values.
  [AARCH64] Reformat inline-asm in elf_machine_load_address.
  [AARCH64] Add ILP32 support to elf_machine_load_address.
  [AARCH64] Set up wordsize for ILP32.
  [AARCH64] Add ILP32 to makefiles
  [AARCH64] Add support to ldconfig for ILP32 and libilp32
  [AARCH64] Add ILP32 ld.so to the known interpreter names.
  [AARCH64] Add ldd-rewrite.sed so that ilp32 ld.so can be found
  [AARCH64] Add kernel_sigaction.h for AARCH64 ILP32
  [AARCH64] Add sigstack.h header for ILP32 reasons.
  [AARCH64] Fix up ucontext for ILP32
  [AARCH64] Add typesizes.h for ILP32
  [AARCH64] Make lp64 and ilp32 directories.

 elf/cache.c                                        |    2 +
 elf/elf.h                                          |   20 ++-
 misc/sys/select.h                                  |   10 +-
 sysdeps/aarch64/Implies                            |    6 -
 sysdeps/aarch64/__longjmp.S                        |    4 +-
 sysdeps/aarch64/bits/link.h                        |    6 +-
 sysdeps/aarch64/bits/wordsize.h                    |   30 +++
 sysdeps/aarch64/configure                          |   15 +-
 sysdeps/aarch64/configure.ac                       |   11 +-
 sysdeps/aarch64/crti.S                             |    3 +-
 sysdeps/aarch64/dl-irel.h                          |    3 +-
 sysdeps/aarch64/dl-machine.h                       |  220 +++++++++++---------
 sysdeps/aarch64/dl-tlsdesc.S                       |   36 ++--
 sysdeps/aarch64/dl-trampoline.S                    |   18 +-
 sysdeps/aarch64/ilp32/Implies                      |    6 +
 sysdeps/aarch64/lp64/Implies                       |    7 +
 sysdeps/aarch64/preconfigure                       |   11 +-
 sysdeps/aarch64/setjmp.S                           |    4 +-
 sysdeps/aarch64/start.S                            |   20 +-
 sysdeps/aarch64/sysdep.h                           |   37 +++-
 sysdeps/generic/ldconfig.h                         |    1 +
 sysdeps/unix/sysv/linux/aarch64/Makefile           |   16 +-
 sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h    |   71 +++++++
 sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h   |  135 ++++++++++++
 sysdeps/unix/sysv/linux/aarch64/configure          |   24 ++-
 sysdeps/unix/sysv/linux/aarch64/configure.ac       |   11 +-
 sysdeps/unix/sysv/linux/aarch64/dl-cache.h         |   13 +-
 sysdeps/unix/sysv/linux/aarch64/getcontext.S       |    2 +-
 sysdeps/unix/sysv/linux/aarch64/ilp32/Implies      |    3 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/Versions     |    5 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/creat.c      |    2 +
 .../unix/sysv/linux/aarch64/ilp32/dl-fxstatat64.c  |    6 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate.c  |    1 +
 .../unix/sysv/linux/aarch64/ilp32/fallocate64.c    |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c  |    1 +
 .../unix/sysv/linux/aarch64/ilp32/ftruncate64.c    |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c     |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c   |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c   |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c   |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/getdents64.c |    2 +
 .../unix/sysv/linux/aarch64/ilp32/getrlimit64.c    |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/glob.c       |    1 +
 .../unix/sysv/linux/aarch64/ilp32/kernel_stat.h    |   24 ++
 sysdeps/unix/sysv/linux/aarch64/ilp32/llseek.c     |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat64.c   |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/mmap64.c     |    1 +
 .../sysv/linux/aarch64/ilp32/posix_fadvise64.c     |    1 +
 .../sysv/linux/aarch64/ilp32/posix_fallocate.c     |    1 +
 .../sysv/linux/aarch64/ilp32/posix_fallocate64.c   |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/pread64.c    |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/preadv64.c   |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/pwrite64.c   |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/pwritev64.c  |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/semctl.c     |   66 ++++++
 sysdeps/unix/sysv/linux/aarch64/ilp32/sendfile64.c |    1 +
 .../unix/sysv/linux/aarch64/ilp32/setrlimit64.c    |    1 +
 .../unix/sysv/linux/aarch64/ilp32/shlib-versions   |    7 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c   |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs.c    |    5 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs64.c  |    1 +
 .../unix/sysv/linux/aarch64/ilp32/syscalls.list    |   21 ++
 sysdeps/unix/sysv/linux/aarch64/ilp32/truncate64.c |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c      |    1 +
 sysdeps/unix/sysv/linux/aarch64/ilp32/xstat64.c    |    1 +
 sysdeps/unix/sysv/linux/aarch64/ioctl.S            |   31 ---
 sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h |   12 +
 sysdeps/unix/sysv/linux/aarch64/ldconfig.h         |    2 +
 sysdeps/unix/sysv/linux/aarch64/ldd-rewrite.sed    |    1 +
 sysdeps/unix/sysv/linux/aarch64/lp64/Implies       |    4 +
 sysdeps/unix/sysv/linux/aarch64/lp64/ioctl.S       |   31 +++
 .../unix/sysv/linux/aarch64/lp64/shlib-versions    |    7 +
 sysdeps/unix/sysv/linux/aarch64/mmap.c             |   34 ---
 sysdeps/unix/sysv/linux/aarch64/shlib-versions     |    7 -
 sysdeps/unix/sysv/linux/aarch64/sigaction.c        |   10 +-
 sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h     |   10 +-
 sysdeps/unix/sysv/linux/aarch64/sysdep.h           |   60 ++++--
 sysdeps/unix/sysv/linux/arm/readelflib.c           |    4 +-
 sysdeps/unix/sysv/linux/bits/resource.h            |   99 +++-------
 sysdeps/unix/sysv/linux/bits/siginfo.h             |   26 ++-
 sysdeps/unix/sysv/linux/bits/sigset.h              |   20 ++-
 sysdeps/unix/sysv/linux/generic/bits/msq.h         |   21 ++-
 sysdeps/unix/sysv/linux/generic/bits/sem.h         |   14 +-
 sysdeps/unix/sysv/linux/generic/bits/shm.h         |   50 +++--
 sysdeps/unix/sysv/linux/generic/bits/stat.h        |    5 +-
 sysdeps/unix/sysv/linux/generic/bits/statfs.h      |    4 +-
 87 files changed, 962 insertions(+), 401 deletions(-)
 delete mode 100644 sysdeps/aarch64/Implies
 create mode 100644 sysdeps/aarch64/bits/wordsize.h
 mode change 100644 => 100755 sysdeps/aarch64/configure
 create mode 100644 sysdeps/aarch64/ilp32/Implies
 create mode 100644 sysdeps/aarch64/lp64/Implies
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/typesizes.h
 mode change 100644 => 100755 sysdeps/unix/sysv/linux/aarch64/configure
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/Implies
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/Versions
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/creat.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/dl-fxstatat64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fallocate64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/ftruncate64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/getdents.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/getdents64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/getrlimit64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/glob.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/kernel_stat.h
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/llseek.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/mmap64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fadvise64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fallocate.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/posix_fallocate64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/pread64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/preadv64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/pwrite64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/pwritev64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/semctl.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/sendfile64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/setrlimit64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/shlib-versions
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/statvfs64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/syscalls.list
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/truncate64.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/xstat64.c
 delete mode 100644 sysdeps/unix/sysv/linux/aarch64/ioctl.S
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/kernel_sigaction.h
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/ldd-rewrite.sed
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/lp64/Implies
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/lp64/ioctl.S
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/lp64/shlib-versions
 delete mode 100644 sysdeps/unix/sysv/linux/aarch64/mmap.c
 delete mode 100644 sysdeps/unix/sysv/linux/aarch64/shlib-versions

-- 
1.7.2.5

^ permalink raw reply	[flat|nested] 73+ messages in thread

end of thread, other threads:[~2015-05-26 13:22 UTC | newest]

Thread overview: 73+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-27  8:00 [PATCH 00/29] Add Support for AARCH64:ILP32 Andrew Pinski
2014-10-27  8:00 ` [PATCH 10/29] [AARCH64] Add PTR_REG, PTR_LOG_SIZE, and PTR_SIZE. Use it in LDST_PCREL and LDST_GLOBAL Andrew Pinski
2014-11-18 12:04   ` Will Newton
2014-10-27  8:00 ` [PATCH 13/29] [AARCH64] Use PTR_* macros in dl-trampoline.S Andrew Pinski
2014-11-18 12:33   ` Will Newton
2014-10-27  8:00 ` [PATCH 04/29] Allow rusage work on a big-endian 32bit-on-64bit target Andrew Pinski
2014-10-28 20:05   ` Mike Frysinger
2014-10-27  8:00 ` [PATCH 19/29] [AARCH64] Add ILP32 support to elf_machine_load_address Andrew Pinski
2014-11-18 13:56   ` Will Newton
2014-10-27  8:00 ` [PATCH 15/29] [AARCH64] Use PTR_REG in getcontext.S Andrew Pinski
2014-11-18 12:37   ` Will Newton
2014-10-27  8:00 ` [PATCH 25/29] [AARCH64] Add kernel_sigaction.h for AARCH64 ILP32 Andrew Pinski
2014-11-18 14:42   ` Will Newton
2014-10-27  8:00 ` [PATCH 09/29] Add dynamic ILP32 AARCH64 relocations to elf.h Andrew Pinski
2014-10-27 20:36   ` Roland McGrath
2014-10-27  8:00 ` [PATCH 01/29] [AARCH64] Fix utmp struct for compatibility reasons Andrew Pinski
2014-10-27 17:57   ` Joseph S. Myers
2014-10-27 21:18     ` Andreas Schwab
2014-10-27  8:00 ` [PATCH 06/29] Allow some fields of siginfo to be different from the generic one Andrew Pinski
2014-11-18 11:31   ` Will Newton
2014-10-27  8:00 ` [PATCH 07/29] Allow generic stat and statfs not have padding for 32bit targets Andrew Pinski
2014-10-27 16:32   ` Chris Metcalf
2014-10-27  8:00 ` [PATCH 18/29] [AARCH64] Reformat inline-asm in elf_machine_load_address Andrew Pinski
2014-11-18 13:51   ` Will Newton
2014-10-27  8:00 ` [PATCH 03/29] Add ability for the IPC structures (msqid_ds, semid_ds, shmid_ds, etc.) to have time_t being 64bit Andrew Pinski
2014-10-27 16:32   ` Chris Metcalf
2014-11-18 10:57   ` Will Newton
2014-10-27  8:00 ` [PATCH 05/29] Allow fd_mask type not be an array of long Andrew Pinski
2014-10-27 16:32   ` Chris Metcalf
2014-11-18 11:24     ` Will Newton
2014-10-27  8:00 ` [PATCH 08/29] [AARCH64] Add header guards to sysdep.h headers Andrew Pinski
2014-10-27 16:32   ` Chris Metcalf
2014-10-27  8:00 ` [PATCH 11/29] [AARCH64] Use PTR_REG in crti.S Andrew Pinski
2014-11-18 12:09   ` Will Newton
2014-10-27  8:00 ` [PATCH 27/29] [AARCH64] Fix up ucontext for ILP32 Andrew Pinski
2014-10-28 20:10   ` Mike Frysinger
2014-11-18 14:54   ` Will Newton
2014-10-27  8:00 ` [PATCH 12/29] [AARCH64] Use PTR_REG/PTR_SIZE/PTR_SIZE_LOG in dl-tlsesc.S Andrew Pinski
2014-11-18 12:23   ` Will Newton
2014-10-27  8:00 ` [PATCH 02/29] Allow sigset be an array of a different type Andrew Pinski
2014-10-27 20:32   ` Roland McGrath
2014-10-27  8:00 ` [PATCH 24/29] [AARCH64] Add ldd-rewrite.sed so that ilp32 ld.so can be found Andrew Pinski
2014-11-18 14:31   ` Will Newton
2014-10-27  8:03 ` [PATCH 21/29] [AARCH64] Add ILP32 to makefiles Andrew Pinski
2014-10-28 20:14   ` Mike Frysinger
2014-10-28 22:46     ` Joseph S. Myers
2014-10-27  8:03 ` [PATCH 28/29] [AARCH64] Add typesizes.h for ILP32 Andrew Pinski
2014-10-27 16:32   ` Chris Metcalf
2014-10-28 20:06   ` Mike Frysinger
2014-10-27  8:03 ` [PATCH 17/29] [AARCH64] Syscalls for ILP32 are passed always via 64bit values Andrew Pinski
2014-11-18 12:50   ` Will Newton
2014-10-27  8:03 ` [PATCH 14/29] [AARCH64] Use PTR_* in start.S Andrew Pinski
2014-11-18 12:35   ` Will Newton
2014-10-27  8:03 ` [PATCH 29/29] [AARCH64] Make lp64 and ilp32 directories Andrew Pinski
2014-10-27 18:07   ` Joseph S. Myers
2014-10-27  8:03 ` [PATCH 23/29] [AARCH64] Add ILP32 ld.so to the known interpreter names Andrew Pinski
2014-11-18 14:26   ` Will Newton
2014-10-27  8:03 ` [PATCH 26/29] [AARCH64] Add sigstack.h header for ILP32 reasons Andrew Pinski
2014-11-18 14:49   ` Will Newton
2014-10-27  8:03 ` [PATCH 22/29] [AARCH64] Add support to ldconfig for ILP32 and libilp32 Andrew Pinski
2014-11-18 14:20   ` Will Newton
2014-10-27  8:03 ` [PATCH 20/29] [AARCH64] Set up wordsize for ILP32 Andrew Pinski
2014-11-18 13:58   ` Will Newton
2014-10-27  8:03 ` [PATCH 16/29] [AARCH64] Detect ILP32 in configure scripts Andrew Pinski
2014-10-27 18:05   ` Joseph S. Myers
2014-10-28 20:16   ` Mike Frysinger
2014-10-28 20:18     ` Andrew Pinski
2014-10-28  9:15 ` [PATCH 00/29] Add Support for AARCH64:ILP32 Marcus Shawcroft
2015-05-26 13:37 ` Andreas Schwab
2015-05-26 14:13   ` Pinski, Andrew
2015-05-26 14:39     ` Andreas Schwab
2015-05-26 15:10       ` Pinski, Andrew
2015-05-26 15:16         ` Andreas Schwab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).