Commit cd975ae0 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming

Pull c6x updates from Mark Salter:
 "Clean up some c6x Kconfig items and add support for Elf FDPIC loader."

* tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming:
  C6X: remove unused config items
  C6X: add support to build with BINFMT_ELF_FDPIC
  C6X: change main arch kbuild symbol
parents 881bcabb 8ff98b9c
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# see Documentation/kbuild/kconfig-language.txt. # see Documentation/kbuild/kconfig-language.txt.
# #
config TMS320C6X config C6X
def_bool y def_bool y
select CLKDEV_LOOKUP select CLKDEV_LOOKUP
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
...@@ -19,24 +19,12 @@ config TMS320C6X ...@@ -19,24 +19,12 @@ config TMS320C6X
config MMU config MMU
def_bool n def_bool n
config ZONE_DMA
def_bool y
config FPU config FPU
def_bool n def_bool n
config HIGHMEM
def_bool n
config NUMA
def_bool n
config RWSEM_GENERIC_SPINLOCK config RWSEM_GENERIC_SPINLOCK
def_bool y def_bool y
config RWSEM_XCHGADD_ALGORITHM
def_bool n
config GENERIC_CALIBRATE_DELAY config GENERIC_CALIBRATE_DELAY
def_bool y def_bool y
......
...@@ -30,7 +30,19 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; ...@@ -30,7 +30,19 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
*/ */
#define elf_check_arch(x) ((x)->e_machine == EM_TI_C6000) #define elf_check_arch(x) ((x)->e_machine == EM_TI_C6000)
#define elf_check_const_displacement(x) (1) #define elf_check_fdpic(x) (1)
#define elf_check_const_displacement(x) (0)
#define ELF_FDPIC_PLAT_INIT(_regs, _exec_map, _interp_map, _dynamic_addr) \
do { \
_regs->b4 = (_exec_map); \
_regs->a6 = (_interp_map); \
_regs->b6 = (_dynamic_addr); \
} while (0)
#define ELF_FDPIC_CORE_EFLAGS 0
#define ELF_CORE_COPY_FPREGS(...) 0 /* No FPU regs to copy */
/* /*
* These are used to set parameters in the core dumps. * These are used to set parameters in the core dumps.
......
...@@ -13,6 +13,10 @@ ...@@ -13,6 +13,10 @@
typedef struct { typedef struct {
unsigned long end_brk; unsigned long end_brk;
#ifdef CONFIG_BINFMT_ELF_FDPIC
unsigned long exec_fdpic_loadmap;
unsigned long interp_fdpic_loadmap;
#endif
} mm_context_t; } mm_context_t;
#endif /* _ASM_C6X_MMU_H */ #endif /* _ASM_C6X_MMU_H */
...@@ -97,6 +97,11 @@ ...@@ -97,6 +97,11 @@
#define PT_DP PT_B14 /* Data Segment Pointer (B14) */ #define PT_DP PT_B14 /* Data Segment Pointer (B14) */
#define PT_SP PT_B15 /* Stack Pointer (B15) */ #define PT_SP PT_B15 /* Stack Pointer (B15) */
#define PTRACE_GETFDPIC 31 /* get the ELF fdpic loadmap address */
#define PTRACE_GETFDPIC_EXEC 0 /* [addr] request the executable loadmap */
#define PTRACE_GETFDPIC_INTERP 1 /* [addr] request the interpreter loadmap */
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
#ifdef _BIG_ENDIAN #ifdef _BIG_ENDIAN
......
...@@ -33,7 +33,7 @@ config ARCH_BINFMT_ELF_RANDOMIZE_PIE ...@@ -33,7 +33,7 @@ config ARCH_BINFMT_ELF_RANDOMIZE_PIE
config BINFMT_ELF_FDPIC config BINFMT_ELF_FDPIC
bool "Kernel support for FDPIC ELF binaries" bool "Kernel support for FDPIC ELF binaries"
default y default y
depends on (FRV || BLACKFIN || (SUPERH32 && !MMU)) depends on (FRV || BLACKFIN || (SUPERH32 && !MMU) || C6X)
help help
ELF FDPIC binaries are based on ELF, but allow the individual load ELF FDPIC binaries are based on ELF, but allow the individual load
segments of a binary to be located in memory independently of each segments of a binary to be located in memory independently of each
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment