Build the bootloader and application as two separate images relocated to their respective load address, and then combine the images. In a format like extended tekhex this is trivial since each record has a load address, you just need to make sure the only launch address remaining is that of the boot loader.
If you need them to be able to refer to each other using symbols, then you need to compile either or the other with a different psect prefix and handle section relocation in the link script.