* [PATCHv2 00/24] ILP32 Support in ARM64
@ 2014-05-24 7:01 Andrew Pinski
2014-05-24 7:01 ` [PATCH 01/24] ARM64: Force LP64 to compile the kernel Andrew Pinski
2014-05-24 7:01 ` [PATCH 02/24] ARM64: Rename COMPAT to AARCH32_EL0 in Kconfig Andrew Pinski
0 siblings, 2 replies; 5+ messages in thread
From: Andrew Pinski @ 2014-05-24 7:01 UTC (permalink / raw)
To: linux-arm-kernel
New version of the patches with documentation, signal changes are simplified, using less compat syscalls and splitting up the patches so it is easier to review. I have tested LTP on both LP64 and ILP32. There is a few LTP failures but they are due to LTP being incorrect (sigaction structure in glibc is not the one which is used by the kernel) I have not yet tested LTP for AARCH32 but I have done simple testing of AARCH32 so an executable still runs. Each patch has been tested seperately though ILP32 won't fully work until the last patch has been added.
Thanks,
Andrew Pinski
Andrew Pinski (24):
ARM64: Force LP64 to compile the kernel.
ARM64: Rename COMPAT to AARCH32_EL0 in Kconfig.
ARM64: Change some CONFIG_COMPAT over to use CONFIG_AARCH32_EL0
instead.
ARM64:ILP32: Set kernel_long to long long so we can reuse most of the
same syscalls as LP64.
ARM64:UAPI: Set the correct __BITS_PER_LONG for ILP32.
Allow for some signal structures to be the same between a 32bit ABI
and the 64bit ABI.
ARM64:ILP32: Use the same size and layout of the signal structures
for ILP32 as for LP64.
Allow a 32bit ABI to use the naming of the 64bit ABI syscalls to
avoid confusion of not splitting the registers.
ARM64:ILP32: Use the same syscall names as LP64.
ARM64: Introduce is_a32_task and is_a32_thread. Use them in the
correct locations.
ARM64: Add ARM64_ILP32 to Kconfig.
ARM64: Add is_ilp32_compat_task and is_ilp32_compat_thread and
TIF_32BIT_AARCH64.
Drivers:input: Use is_compat_task for ARM64 also.
ARM64:ILP32: COMPAT_USE_64BIT_TIME is true for ILP32 tasks.
ARM64:ILP32: Use the non compat HWCAP for ILP32.
ARM64:ILP32 use the standard start_thread for ILP32 so the processor
state is not AARCH32.
ARM64:ILP32: Support core dump for ILP32.
ARM64: Add loading of ILP32 binaries.
ARM64: Add vdso for ILP32 and use it for the signal return.
ptrace: Allow compat to use the native siginfo.
ARM64:ILP32: The native siginfo is used instead of the compat
siginfo.
ARM64:ILP32: Use a seperate syscall table as a few syscalls need to
be using the compat syscalls.
ARM64:ILP32: Fix signal return for ILP32 when the user modified the
signal stack.
Add documentation about ARM64 ILP32 ABI.
Documentation/arm64/ilp32.txt | 57 ++++++++
arch/arm64/Kconfig | 15 ++-
arch/arm64/Makefile | 4 +
arch/arm64/include/asm/Kbuild | 1 -
arch/arm64/include/asm/arch_timer.h | 2 +-
arch/arm64/include/asm/compat.h | 65 +++++++++-
arch/arm64/include/asm/elf.h | 101 +++++++++++++--
arch/arm64/include/asm/fpsimd.h | 2 +-
arch/arm64/include/asm/hwcap.h | 12 ++-
arch/arm64/include/asm/memory.h | 2 +-
arch/arm64/include/asm/processor.h | 11 ++-
arch/arm64/include/asm/ptrace.h | 2 +-
arch/arm64/include/asm/signal32.h | 2 +
arch/arm64/include/asm/stat.h | 2 +
arch/arm64/include/asm/syscalls.h | 4 +
arch/arm64/include/asm/thread_info.h | 3 +-
arch/arm64/include/asm/unistd.h | 6 +-
arch/arm64/include/asm/vdso.h | 4 +
arch/arm64/include/uapi/asm/bitsperlong.h | 7 +-
arch/arm64/include/uapi/asm/posix_types.h | 12 ++
arch/arm64/include/uapi/asm/siginfo.h | 21 +++
arch/arm64/include/uapi/asm/signal.h | 32 +++++
arch/arm64/include/uapi/asm/unistd.h | 7 +
arch/arm64/kernel/Makefile | 8 +-
arch/arm64/kernel/asm-offsets.c | 2 +-
arch/arm64/kernel/entry.S | 19 ++-
arch/arm64/kernel/head.S | 2 +-
arch/arm64/kernel/hw_breakpoint.c | 6 +-
arch/arm64/kernel/process.c | 6 +-
arch/arm64/kernel/ptrace.c | 51 +++++---
arch/arm64/kernel/signal.c | 33 +++++-
arch/arm64/kernel/sys_ilp32.c | 175 +++++++++++++++++++++++++
arch/arm64/kernel/traps.c | 4 +-
arch/arm64/kernel/vdso-ilp32/.gitignore | 2 +
arch/arm64/kernel/vdso-ilp32/Makefile | 72 ++++++++++
arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S | 33 +++++
arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S | 100 ++++++++++++++
arch/arm64/kernel/vdso.c | 59 +++++++--
drivers/input/input-compat.h | 2 +-
include/linux/compat.h | 4 +
include/uapi/asm-generic/siginfo.h | 17 ++-
include/uapi/asm-generic/signal.h | 27 ++++-
include/uapi/asm-generic/unistd.h | 5 +-
kernel/ptrace.c | 24 +++-
44 files changed, 935 insertions(+), 90 deletions(-)
create mode 100644 Documentation/arm64/ilp32.txt
create mode 100644 arch/arm64/include/uapi/asm/posix_types.h
create mode 100644 arch/arm64/kernel/sys_ilp32.c
create mode 100644 arch/arm64/kernel/vdso-ilp32/.gitignore
create mode 100644 arch/arm64/kernel/vdso-ilp32/Makefile
create mode 100644 arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S
create mode 100644 arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S
--
1.7.2.5
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 01/24] ARM64: Force LP64 to compile the kernel.
2014-05-24 7:01 [PATCHv2 00/24] ILP32 Support in ARM64 Andrew Pinski
@ 2014-05-24 7:01 ` Andrew Pinski
2014-05-24 7:01 ` [PATCH 02/24] ARM64: Rename COMPAT to AARCH32_EL0 in Kconfig Andrew Pinski
1 sibling, 0 replies; 5+ messages in thread
From: Andrew Pinski @ 2014-05-24 7:01 UTC (permalink / raw)
To: linux-arm-kernel
Sometimes the compiler is set to default to ILP32 ABI so we want to make sure the kernel can compile in that case.
Thanks,
Andrew Pinski
Signed-off-by: Andrew Pinski <apinski@cavium.com>
---
arch/arm64/Makefile | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 2fceb71..e9dbd20 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -20,14 +20,18 @@ LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
KBUILD_DEFCONFIG := defconfig
KBUILD_CFLAGS += -mgeneral-regs-only
+KBUILD_CFLAGS += $(call cc-option,-mabi=lp64)
+KBUILD_AFLAGS += $(call cc-option,-mabi=lp64)
ifeq ($(CONFIG_CPU_BIG_ENDIAN), y)
KBUILD_CPPFLAGS += -mbig-endian
AS += -EB
LD += -EB
+LDFLAGS += -maarch64linuxb
else
KBUILD_CPPFLAGS += -mlittle-endian
AS += -EL
LD += -EL
+LDFLAGS += -maarch64linux
endif
comma = ,
--
1.7.2.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 02/24] ARM64: Rename COMPAT to AARCH32_EL0 in Kconfig.
2014-05-24 7:01 [PATCHv2 00/24] ILP32 Support in ARM64 Andrew Pinski
2014-05-24 7:01 ` [PATCH 01/24] ARM64: Force LP64 to compile the kernel Andrew Pinski
@ 2014-05-24 7:01 ` Andrew Pinski
1 sibling, 0 replies; 5+ messages in thread
From: Andrew Pinski @ 2014-05-24 7:01 UTC (permalink / raw)
To: linux-arm-kernel
We want to split CONFIG_COMPAT so we can use the COMPAT interface in some cases including
for compat binfmt.
Thanks,
Andrew Pinski
Signed-off-by: Andrew Pinski <apinski@cavium.com>
---
arch/arm64/Kconfig | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index e759af5..032c712 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -287,9 +287,13 @@ menu "Userspace binary formats"
source "fs/Kconfig.binfmt"
config COMPAT
+ def_bool y
+ depends on AARCH32_EL0
+ select COMPAT_BINFMT_ELF
+
+config AARCH32_EL0
bool "Kernel support for 32-bit EL0"
depends on !ARM64_64K_PAGES
- select COMPAT_BINFMT_ELF
select HAVE_UID16
select OLD_SIGSUSPEND3
select COMPAT_OLD_SIGACTION
@@ -303,7 +307,7 @@ config COMPAT
config SYSVIPC_COMPAT
def_bool y
- depends on COMPAT && SYSVIPC
+ depends on AARCH32_EL0 && SYSVIPC
endmenu
--
1.7.2.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCHv2 00/24] ILP32 Support in ARM64
@ 2014-05-24 7:01 Andrew Pinski
2014-05-24 7:01 ` [PATCH 01/24] ARM64: Force LP64 to compile the kernel Andrew Pinski
0 siblings, 1 reply; 5+ messages in thread
From: Andrew Pinski @ 2014-05-24 7:01 UTC (permalink / raw)
To: linux-arm-kernel
New version of the patches with documentation, signal changes are simplified, using less compat syscalls and splitting up the patches so it is easier to review. I have tested LTP on both LP64 and ILP32. There is a few LTP failures but they are due to LTP being incorrect (sigaction structure in glibc is not the one which is used by the kernel) I have not yet tested LTP for AARCH32 but I have done simple testing of AARCH32 so an executable still runs. Each patch has been tested seperately though ILP32 won't fully work until the last patch has been added.
Thanks,
Andrew Pinski
Andrew Pinski (24):
ARM64: Force LP64 to compile the kernel.
ARM64: Rename COMPAT to AARCH32_EL0 in Kconfig.
ARM64: Change some CONFIG_COMPAT over to use CONFIG_AARCH32_EL0
instead.
ARM64:ILP32: Set kernel_long to long long so we can reuse most of the
same syscalls as LP64.
ARM64:UAPI: Set the correct __BITS_PER_LONG for ILP32.
Allow for some signal structures to be the same between a 32bit ABI
and the 64bit ABI.
ARM64:ILP32: Use the same size and layout of the signal structures
for ILP32 as for LP64.
Allow a 32bit ABI to use the naming of the 64bit ABI syscalls to
avoid confusion of not splitting the registers.
ARM64:ILP32: Use the same syscall names as LP64.
ARM64: Introduce is_a32_task and is_a32_thread. Use them in the
correct locations.
ARM64: Add ARM64_ILP32 to Kconfig.
ARM64: Add is_ilp32_compat_task and is_ilp32_compat_thread and
TIF_32BIT_AARCH64.
Drivers:input: Use is_compat_task for ARM64 also.
ARM64:ILP32: COMPAT_USE_64BIT_TIME is true for ILP32 tasks.
ARM64:ILP32: Use the non compat HWCAP for ILP32.
ARM64:ILP32 use the standard start_thread for ILP32 so the processor
state is not AARCH32.
ARM64:ILP32: Support core dump for ILP32.
ARM64: Add loading of ILP32 binaries.
ARM64: Add vdso for ILP32 and use it for the signal return.
ptrace: Allow compat to use the native siginfo.
ARM64:ILP32: The native siginfo is used instead of the compat
siginfo.
ARM64:ILP32: Use a seperate syscall table as a few syscalls need to
be using the compat syscalls.
ARM64:ILP32: Fix signal return for ILP32 when the user modified the
signal stack.
Add documentation about ARM64 ILP32 ABI.
Documentation/arm64/ilp32.txt | 57 ++++++++
arch/arm64/Kconfig | 15 ++-
arch/arm64/Makefile | 4 +
arch/arm64/include/asm/Kbuild | 1 -
arch/arm64/include/asm/arch_timer.h | 2 +-
arch/arm64/include/asm/compat.h | 65 +++++++++-
arch/arm64/include/asm/elf.h | 101 +++++++++++++--
arch/arm64/include/asm/fpsimd.h | 2 +-
arch/arm64/include/asm/hwcap.h | 12 ++-
arch/arm64/include/asm/memory.h | 2 +-
arch/arm64/include/asm/processor.h | 11 ++-
arch/arm64/include/asm/ptrace.h | 2 +-
arch/arm64/include/asm/signal32.h | 2 +
arch/arm64/include/asm/stat.h | 2 +
arch/arm64/include/asm/syscalls.h | 4 +
arch/arm64/include/asm/thread_info.h | 3 +-
arch/arm64/include/asm/unistd.h | 6 +-
arch/arm64/include/asm/vdso.h | 4 +
arch/arm64/include/uapi/asm/bitsperlong.h | 7 +-
arch/arm64/include/uapi/asm/posix_types.h | 12 ++
arch/arm64/include/uapi/asm/siginfo.h | 21 +++
arch/arm64/include/uapi/asm/signal.h | 32 +++++
arch/arm64/include/uapi/asm/unistd.h | 7 +
arch/arm64/kernel/Makefile | 8 +-
arch/arm64/kernel/asm-offsets.c | 2 +-
arch/arm64/kernel/entry.S | 19 ++-
arch/arm64/kernel/head.S | 2 +-
arch/arm64/kernel/hw_breakpoint.c | 6 +-
arch/arm64/kernel/process.c | 6 +-
arch/arm64/kernel/ptrace.c | 51 +++++---
arch/arm64/kernel/signal.c | 33 +++++-
arch/arm64/kernel/sys_ilp32.c | 175 +++++++++++++++++++++++++
arch/arm64/kernel/traps.c | 4 +-
arch/arm64/kernel/vdso-ilp32/.gitignore | 2 +
arch/arm64/kernel/vdso-ilp32/Makefile | 72 ++++++++++
arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S | 33 +++++
arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S | 100 ++++++++++++++
arch/arm64/kernel/vdso.c | 59 +++++++--
drivers/input/input-compat.h | 2 +-
include/linux/compat.h | 4 +
include/uapi/asm-generic/siginfo.h | 17 ++-
include/uapi/asm-generic/signal.h | 27 ++++-
include/uapi/asm-generic/unistd.h | 5 +-
kernel/ptrace.c | 24 +++-
44 files changed, 935 insertions(+), 90 deletions(-)
create mode 100644 Documentation/arm64/ilp32.txt
create mode 100644 arch/arm64/include/uapi/asm/posix_types.h
create mode 100644 arch/arm64/kernel/sys_ilp32.c
create mode 100644 arch/arm64/kernel/vdso-ilp32/.gitignore
create mode 100644 arch/arm64/kernel/vdso-ilp32/Makefile
create mode 100644 arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S
create mode 100644 arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S
--
1.7.2.5
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 01/24] ARM64: Force LP64 to compile the kernel.
2014-05-24 7:01 [PATCHv2 00/24] ILP32 Support in ARM64 Andrew Pinski
@ 2014-05-24 7:01 ` Andrew Pinski
0 siblings, 0 replies; 5+ messages in thread
From: Andrew Pinski @ 2014-05-24 7:01 UTC (permalink / raw)
To: linux-arm-kernel
Sometimes the compiler is set to default to ILP32 ABI so we want to make sure the kernel can compile in that case.
Thanks,
Andrew Pinski
Signed-off-by: Andrew Pinski <apinski@cavium.com>
---
arch/arm64/Makefile | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 2fceb71..e9dbd20 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -20,14 +20,18 @@ LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
KBUILD_DEFCONFIG := defconfig
KBUILD_CFLAGS += -mgeneral-regs-only
+KBUILD_CFLAGS += $(call cc-option,-mabi=lp64)
+KBUILD_AFLAGS += $(call cc-option,-mabi=lp64)
ifeq ($(CONFIG_CPU_BIG_ENDIAN), y)
KBUILD_CPPFLAGS += -mbig-endian
AS += -EB
LD += -EB
+LDFLAGS += -maarch64linuxb
else
KBUILD_CPPFLAGS += -mlittle-endian
AS += -EL
LD += -EL
+LDFLAGS += -maarch64linux
endif
comma = ,
--
1.7.2.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCHv3 00/24] ILP32 support in ARM64
@ 2014-09-03 21:18 Andrew Pinski
2014-09-03 21:18 ` [PATCH 01/24] ARM64: Force LP64 to compile the kernel Andrew Pinski
0 siblings, 1 reply; 5+ messages in thread
From: Andrew Pinski @ 2014-09-03 21:18 UTC (permalink / raw)
To: linux-arm-kernel
New version with all of the requested changes. Updated to the latest sources.
Notable changes from the previous versions:
VDSO code has been factored out to be easier to understand and easier to maintain.
Move the config option to the last thing that gets added.
Added some extra COMPAT_* macros for core dumping for easier usage.
Andrew Pinski (24):
ARM64: Force LP64 to compile the kernel
ARM64: Rename COMPAT to AARCH32_EL0 in Kconfig
ARM64: Change some CONFIG_COMPAT over to use CONFIG_AARCH32_EL0
instead
ARM64:ILP32: Set kernel_long to long long so we can reuse most of the
same syscalls as LP64
ARM64:UAPI: Set the correct __BITS_PER_LONG for ILP32
Allow for some signal structures to be the same between a 32bit ABI
and the 64bit ABI
ARM64:ILP32: Use the same size and layout of the signal structures
for ILP32 as for LP64
Allow a 32bit ABI to use the naming of the 64bit ABI syscalls to
avoid confusion of not splitting the registers
ARM64:ILP32: Use the same syscall names as LP64
ARM64: Introduce is_a32_task/is_a32_thread and TIF_AARCH32 and use
them in the correct locations
ARM64: Add is_ilp32_compat_task and is_ilp32_compat_thread
ARM64:ILP32: COMPAT_USE_64BIT_TIME is true for ILP32 tasks
ARM64:ILP32: Use the non compat HWCAP for ILP32
ARM64:ILP32 use the standard start_thread for ILP32 so the processor
state is not AARCH32
compat_binfmt_elf: coredump: Allow some core dump macros be
overridden for compat.
ARM64:ILP32: Support core dump for ILP32
ARM64: Add loading of ILP32 binaries
ARM64: Add vdso for ILP32 and use it for the signal return
ptrace: Allow compat to use the native siginfo
ARM64:ILP32: The native siginfo is used instead of the compat siginfo
ARM64:ILP32: Use a seperate syscall table as a few syscalls need to
be using the compat syscalls
ARM64:ILP32: Fix signal return for ILP32 when the user modified the
signal stack
ARM64: Add ARM64_ILP32 to Kconfig
Add documentation about ARM64 ILP32 ABI
Documentation/arm64/ilp32.txt | 57 +++++++
arch/arm64/Kconfig | 15 ++-
arch/arm64/Makefile | 4 +
arch/arm64/include/asm/arch_timer.h | 2 +-
arch/arm64/include/asm/compat.h | 59 ++++++++
arch/arm64/include/asm/elf.h | 100 ++++++++++++-
arch/arm64/include/asm/fpsimd.h | 2 +-
arch/arm64/include/asm/hwcap.h | 2 -
arch/arm64/include/asm/processor.h | 11 ++
arch/arm64/include/asm/ptrace.h | 2 +-
arch/arm64/include/asm/signal32.h | 4 +-
arch/arm64/include/asm/stat.h | 4 +-
arch/arm64/include/asm/syscalls.h | 4 +
arch/arm64/include/asm/thread_info.h | 1 +
arch/arm64/include/asm/unistd.h | 6 +-
arch/arm64/include/asm/vdso.h | 4 +
arch/arm64/include/uapi/asm/bitsperlong.h | 9 +-
arch/arm64/include/uapi/asm/posix_types.h | 8 +-
arch/arm64/include/uapi/asm/siginfo.h | 33 ++++
arch/arm64/include/uapi/asm/signal.h | 34 +++++
arch/arm64/include/uapi/asm/unistd.h | 6 +
arch/arm64/kernel/Makefile | 8 +-
arch/arm64/kernel/asm-offsets.c | 2 +-
arch/arm64/kernel/entry.S | 19 ++-
arch/arm64/kernel/head.S | 2 +-
arch/arm64/kernel/hw_breakpoint.c | 7 +-
arch/arm64/kernel/process.c | 6 +-
arch/arm64/kernel/ptrace.c | 52 +++++--
arch/arm64/kernel/signal.c | 38 +++++-
arch/arm64/kernel/sys_ilp32.c | 195 +++++++++++++++++++++++++
arch/arm64/kernel/traps.c | 4 +-
arch/arm64/kernel/vdso-ilp32/.gitignore | 2 +
arch/arm64/kernel/vdso-ilp32/Makefile | 72 +++++++++
arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S | 33 ++++
arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S | 98 +++++++++++++
arch/arm64/kernel/vdso.c | 74 ++++++++--
fs/compat_binfmt_elf.c | 17 ++
include/linux/compat.h | 4 +
include/uapi/asm-generic/siginfo.h | 17 ++-
include/uapi/asm-generic/signal.h | 27 +++-
include/uapi/asm-generic/unistd.h | 6 +-
kernel/ptrace.c | 25 +++-
42 files changed, 989 insertions(+), 86 deletions(-)
create mode 100644 Documentation/arm64/ilp32.txt
create mode 100644 arch/arm64/kernel/sys_ilp32.c
create mode 100644 arch/arm64/kernel/vdso-ilp32/.gitignore
create mode 100644 arch/arm64/kernel/vdso-ilp32/Makefile
create mode 100644 arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S
create mode 100644 arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S
--
1.7.2.5
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 01/24] ARM64: Force LP64 to compile the kernel
2014-09-03 21:18 [PATCHv3 00/24] ILP32 support in ARM64 Andrew Pinski
@ 2014-09-03 21:18 ` Andrew Pinski
0 siblings, 0 replies; 5+ messages in thread
From: Andrew Pinski @ 2014-09-03 21:18 UTC (permalink / raw)
To: linux-arm-kernel
Sometimes the compiler is set to default to ILP32 ABI so we want to make sure the kernel can compile in that case.
Signed-off-by: Andrew Pinski <apinski@cavium.com>
---
arch/arm64/Makefile | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 2df5e5d..b05340b 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -20,14 +20,18 @@ LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
KBUILD_DEFCONFIG := defconfig
KBUILD_CFLAGS += -mgeneral-regs-only
+KBUILD_CFLAGS += $(call cc-option,-mabi=lp64)
+KBUILD_AFLAGS += $(call cc-option,-mabi=lp64)
ifeq ($(CONFIG_CPU_BIG_ENDIAN), y)
KBUILD_CPPFLAGS += -mbig-endian
AS += -EB
LD += -EB
+LDFLAGS += -maarch64linuxb
else
KBUILD_CPPFLAGS += -mlittle-endian
AS += -EL
LD += -EL
+LDFLAGS += -maarch64linux
endif
comma = ,
--
1.7.2.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-09-03 21:18 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-24 7:01 [PATCHv2 00/24] ILP32 Support in ARM64 Andrew Pinski
2014-05-24 7:01 ` [PATCH 01/24] ARM64: Force LP64 to compile the kernel Andrew Pinski
2014-05-24 7:01 ` [PATCH 02/24] ARM64: Rename COMPAT to AARCH32_EL0 in Kconfig Andrew Pinski
-- strict thread matches above, loose matches on Subject: below --
2014-05-24 7:01 [PATCHv2 00/24] ILP32 Support in ARM64 Andrew Pinski
2014-05-24 7:01 ` [PATCH 01/24] ARM64: Force LP64 to compile the kernel Andrew Pinski
2014-09-03 21:18 [PATCHv3 00/24] ILP32 support in ARM64 Andrew Pinski
2014-09-03 21:18 ` [PATCH 01/24] ARM64: Force LP64 to compile the kernel Andrew Pinski
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 NNTP newsgroup(s).