arch/x86/boot/setup.elf
is created when the kernel is made with the following command (Linux version 6.5): ld -m elf_x86_64 -z noexecstack -m elf_i386 -z noexecstack -T arch/x86/boot/setup.ld \ arch/x86/boot/a20.o \ arch/x86/boot/bioscall.o \ arch/x86/boot/cmdline.o \ arch/x86/boot/copy.o \ arch/x86/boot/cpu.o \ arch/x86/boot/cpuflags.o \ arch/x86/boot/cpucheck.o \ arch/x86/boot/early_serial_console.o \ arch/x86/boot/edd.o \ arch/x86/boot/header.o \ arch/x86/boot/main.o \ arch/x86/boot/memory.o \ arch/x86/boot/pm.o \ arch/x86/boot/pmjump.o \ arch/x86/boot/printf.o \ arch/x86/boot/regs.o \ arch/x86/boot/string.o \ arch/x86/boot/tty.o \ arch/x86/boot/video.o \ arch/x86/boot/video-mode.o \ arch/x86/boot/version.o \ arch/x86/boot/video-vga.o \ arch/x86/boot/video-vesa.o \ arch/x86/boot/video-bios.o \ -o arch/x86/boot/setup.elf
setup.elf
is used (among others?) to produce arch/x86/boot/setup.bin