Index: share/mk/local.meta.sys.mk =================================================================== --- share/mk/local.meta.sys.mk +++ share/mk/local.meta.sys.mk @@ -20,6 +20,31 @@ TARGET_ARCHES_powerpc?= powerpc powerpc64 powerpcspe TARGET_ARCHES_riscv?= riscv64 riscv64sf +# Set target-specific linker emulation name. (from sys/conf/kern.mk) +LD_EMULATION_aarch64=aarch64elf +LD_EMULATION_amd64=elf_x86_64_fbsd +LD_EMULATION_arm=armelf_fbsd +LD_EMULATION_armv6=armelf_fbsd +LD_EMULATION_armv7=armelf_fbsd +LD_EMULATION_i386=elf_i386_fbsd +LD_EMULATION_mips= elf32btsmip_fbsd +LD_EMULATION_mipshf= elf32btsmip_fbsd +LD_EMULATION_mips64= elf64btsmip_fbsd +LD_EMULATION_mips64hf= elf64btsmip_fbsd +LD_EMULATION_mipsel= elf32ltsmip_fbsd +LD_EMULATION_mipselhf= elf32ltsmip_fbsd +LD_EMULATION_mips64el= elf64ltsmip_fbsd +LD_EMULATION_mips64elhf= elf64ltsmip_fbsd +LD_EMULATION_mipsn32= elf32btsmipn32_fbsd +LD_EMULATION_mipsn32el= elf32btsmipn32_fbsd # I don't think this is a thing that works +LD_EMULATION_powerpc= elf32ppc_fbsd +LD_EMULATION_powerpcspe= elf32ppc_fbsd +LD_EMULATION_powerpc64= elf64ppc_fbsd +LD_EMULATION_riscv64= elf64lriscv +LD_EMULATION_sparc64= elf64_sparc_fbsd +LD_EMULATION=${LD_EMULATION_${MACHINE_ARCH}} + + # some corner cases BOOT_MACHINE_DIR.amd64 = boot/i386 MACHINE_ARCH.host = ${_HOST_ARCH} @@ -249,7 +274,7 @@ CROSS_TARGET_FLAGS= -target ${MACHINE_ARCH}-unknown-freebsd${FREEBSD_REVISION} CFLAGS+= ${CROSS_TARGET_FLAGS} ACFLAGS+= ${CROSS_TARGET_FLAGS} -LDFLAGS+= -Wl,-m -Wl,elf_${MACHINE_ARCH}_fbsd +LDFLAGS+= -Wl,-m -Wl,${LD_EMULATION} .endif META_MODE+= missing-meta=yes