• Alexander Shishkin's avatar
    lib: Fix ia64 bootloader linkage · 93048c09
    Alexander Shishkin authored
    kbuild robot reports that since commit ce76d938 ("lib: Add memcat_p():
    paste 2 pointer arrays together") the ia64/hp/sim/boot fails to link:
    
    > LD      arch/ia64/hp/sim/boot/bootloader
    > lib/string.o: In function `__memcat_p':
    > string.c:(.text+0x1f22): undefined reference to `__kmalloc'
    > string.c:(.text+0x1ff2): undefined reference to `__kmalloc'
    > make[1]: *** [arch/ia64/hp/sim/boot/Makefile:37: arch/ia64/hp/sim/boot/bootloader] Error 1
    
    The reason is, the above commit, via __memcat_p(), adds a call to
    __kmalloc to string.o, which happens to be used in the bootloader, but
    there's no kmalloc or slab or anything.
    
    Since the linker would only pull in objects that contain referenced
    symbols, moving __memcat_p() to a different compilation unit solves the
    problem.
    
    Fixes: ce76d938
    
     ("lib: Add memcat_p(): paste 2 pointer arrays together")
    Signed-off-by: default avatarAlexander Shishkin <alexander.shishkin@linux.intel.com>
    Reported-by: default avatarkbuild test robot <lkp@intel.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Joe Perches <joe@perches.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    93048c09