Pass -fuse-ld=/path/to/ld if ${LD} != "ld"This is needed so that setting LD/XLD is not ignored when linking with $CCinstead of directly using $LD. Currently only clang accepts an absolutepath for
Pass -fuse-ld=/path/to/ld if ${LD} != "ld"This is needed so that setting LD/XLD is not ignored when linking with $CCinstead of directly using $LD. Currently only clang accepts an absolutepath for -fuse-ld= (Clang 12+ will add a new --ld-path flag), so we nowwarn when building with GCC and $LD != "ld" since that might result in thewrong linker being used.We have been setting XLD=/path/to/cheri/ld.lld in CheriBSD for a long time andused a similar version of this patch to avoid linking with /usr/bin/ld.This change is also required when building FreeBSD on an Ubuntu with Clang:In that case we set XCC=/usr/lib/llvm-10/bin/clang and since/usr/lib/llvm-10/bin/ does not contain a "ld" binary the build fails with`clang: error: unable to execute command: Executable "ld" doesn't exist!`unless we pass -fuse-ld=/usr/lib/llvm-10/bin/ld.lld.This change passes -fuse-ld instead of copying ${XLD} to WOLRDTMP/bin/ldsince then we would have to ensure that this file does not exist whilebuilding the bootstrap tools. The cross-linker might not be compatible withthe host linker (e.g. when building on macos: host-linker= Mach-O /usr/bin/ld,cross-linker=LLVM ld.lld).Reviewed By: brooks, emasteDifferential Revision: https://reviews.freebsd.org/D26055
show more ...
Pick the right vDSO file/linker flags when building cloudabi32.ko on ARM64.The recently imported cloudabi_vdso_armv6_on_64bit.S should be the vDSOfor 32-bit processes when being run on FreeBSD/arm
Pick the right vDSO file/linker flags when building cloudabi32.ko on ARM64.The recently imported cloudabi_vdso_armv6_on_64bit.S should be the vDSOfor 32-bit processes when being run on FreeBSD/arm64. This vDSO ensuresthat all system call arguments are padded to 64 bits, so that they canbe used by the kernel to call into most of the native implementationsdirectly.
Support armv7 builds for userlandMake armv7 as a new MACHINE_ARCH.Copy all the places we do armv6 and add armv7 as basically analias. clang appears to generate code for armv7 by default. armv7 h
Support armv7 builds for userlandMake armv7 as a new MACHINE_ARCH.Copy all the places we do armv6 and add armv7 as basically analias. clang appears to generate code for armv7 by default. armv7 hardfloat isn't supported by the the in-tree gcc, so it hasn't beenupdated to have a new default.Support armv7 as a new valid MACHINE_ARCH (and by extensionTARGET_ARCH).Add armv7 to the universe build.Differential Revision: https://reviews.freebsd.org/D12010
sys/modules: normalize .CURDIR-relative paths to SRCTOPThis simplifies make output/logicTested with: `cd sys/modules; make ALL_MODULES=` on amd64MFC after: 1 monthSponsored by: Dell EMC Isilon
Make the cloudabi32 kernel module available on ARMv6.Now that all of the necessary bits for ARMv6 support for CloudABI havebeen checked in, let's hook the kernel module up to the build anddocumen
Make the cloudabi32 kernel module available on ARMv6.Now that all of the necessary bits for ARMv6 support for CloudABI havebeen checked in, let's hook the kernel module up to the build anddocument its existence.
Use both the MACHINE and MACHINE_CPUARCH directories for finding sources.When fixing this module to build on PC98, I actually broke the build onARM64. On PC98 we need to pull in the sources from t
Use both the MACHINE and MACHINE_CPUARCH directories for finding sources.When fixing this module to build on PC98, I actually broke the build onARM64. On PC98 we need to pull in the sources from the MACHINE_CPUARCH(i386), but on ARM64 we need to use the MACHINE, as MACHINE_CPUARCH isset to aarch64 instead of just arm64.
Properly use MACHINE_CPUARCH for finding cloudabi*_sysvec.c.The build of the cloudabi32 kernel module currently fails for PC98. Inthe case of PC98, we just want to use the code for i386.Reported
Properly use MACHINE_CPUARCH for finding cloudabi*_sysvec.c.The build of the cloudabi32 kernel module currently fails for PC98. Inthe case of PC98, we just want to use the code for i386.Reported by: np
Add a Makefile for building the cloudabi32 kernel module.Where the cloudabi64 kernel can be used to execute 64-bit CloudABIbinaries, this one should be used for 32-bit binaries. Right now itworks
Add a Makefile for building the cloudabi32 kernel module.Where the cloudabi64 kernel can be used to execute 64-bit CloudABIbinaries, this one should be used for 32-bit binaries. Right now itworks on i386 and amd64.