• Paul Burton's avatar
    MIPS: Use a custom elf-entry program to find kernel entry point · e245767a
    Paul Burton authored
    For a long time arch/mips/Makefile used nm to discover the kernel entry
    point by looking for the address of the kernel_entry symbol. This
    doesn't work for systems which make use of bit 0 of the PC to reflect
    the ISA mode - ie. microMIPS (and MIPS16, but we don't support building
    kernels that target MIPS16 anyway).
    
    So for a while with commit 5fc9484f ("MIPS: Set ISA bit in entry-y
    for microMIPS kernels") we manually modified the last nibble of the
    output from nm, which worked but wasn't particularly pretty.
    
    Commit 27c524d1 ("MIPS: Use the entry point from the ELF file
    header") then cleaned this up by using objdump to print the ELF entry
    point which includes the ISA bit, rather than using nm to print the
    address of the kernel_entry symbol which doesn't. That removed the ugly
    replacement of the last nibble, but added its own ugliness by needing to
    manually sign extend in the 32 bit case.
    
    Unfortunately it has been pointed out that objdump's output is
    localised, and therefore grepping for its "start address" output doesn't
    work when the user's language settings are such that objdump doesn't
    print in English.
    
    We could simply revert commit 27c524d1 ("MIPS: Use the entry point
    from the ELF file header") and return to the manual replacement of the
    last nibble of entry-y, but it seems that was found sufficiently
    unpalatable to avoid. We could attempt to force the language used by
    objdump by setting an environment variable such as LC_ALL, but that
    seems fragile. Instead we add a small tool named elf-entry which simply
    prints out the entry point of the kernel in the format we require.
    Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
    Reported-by: default avatarPhilippe Reynes <philippe.reynes@softathome.com>
    Tested-by: default avatarPhilippe Reynes <philippe.reynes@softathome.com>
    Fixes: 27c524d1 ("MIPS: Use the entry point from the ELF file header")
    Patchwork: https://patchwork.linux-mips.org/patch/20322/
    Cc: James Hogan <jhogan@kernel.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    e245767a
Makefile 19.5 KB