#
bed65d85 |
| 04-Jun-2024 |
Andrew Turner <andrew@FreeBSD.org> |
linux64: Fix the build on arm64 with bti checking
When we enable checking for BTI on arm64 we need to include an ELF note in all object files linked into a module.
As using objcopy from a binary to
linux64: Fix the build on arm64 with bti checking
When we enable checking for BTI on arm64 we need to include an ELF note in all object files linked into a module.
As using objcopy from a binary to an ELF object file doesn't add the note switch to using .incbin from an assembly file. This allows us to add the needed note without affecting the included object.
Reviewed by: imp, kib, emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45468
show more ...
|
#
8e1a7e29 |
| 10-Oct-2023 |
Mark Johnston <markj@FreeBSD.org> |
sanitizers: Avoid building genassym.c and genoffset.c with sanitizers
Some, particularly KASAN, may insert redzones around global symbols, resulting in incorrect offset definitions because genassym.
sanitizers: Avoid building genassym.c and genoffset.c with sanitizers
Some, particularly KASAN, may insert redzones around global symbols, resulting in incorrect offset definitions because genassym.sh (ab)uses symbol sizes to assign semantic meaning.
(Ideally I would be able to define this pattern in one place, but I haven't found a way to define a GENSYM_CFLAGS that actually works for all of the consumers (kern.post.mk, kmod.mk, sys/conf/files*).)
MFC after: 1 week Sponsored by: Klara, Inc. Sponsored by: Juniper Networks, Inc.
show more ...
|
#
c6ae97c4 |
| 26-Dec-2023 |
Alex Xu (Hello71) <alex_y_xu@yahoo.ca> |
sys: ${CFLAGS:N-flto} -> ${CFLAGS:N-flto*}
For the same reason as the original https://reviews.freebsd.org/D9659: -flto=<N>, -flto=full, and -flto=thin also produce the GIMPLE/bitcode which is not s
sys: ${CFLAGS:N-flto} -> ${CFLAGS:N-flto*}
For the same reason as the original https://reviews.freebsd.org/D9659: -flto=<N>, -flto=full, and -flto=thin also produce the GIMPLE/bitcode which is not supported by genassym, so filter those out as well.
Signed-off-by: Alex Xu (Hello71) <alex_y_xu@yahoo.ca> Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/898
show more ...
|
#
031beb4e |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line sh pattern
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
|
#
22dca7ac |
| 22-Jul-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Implement xattr syscalls
Reviewed by: Differential revision: https://reviews.freebsd.org/D35544 MFC after: 1 month
|
#
825fbd08 |
| 14-Feb-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Trim unused opt_usb.h from modules Makefiles
MFC after: 2 weeks
|
#
10d16789 |
| 12-Feb-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Get rid of the opt_compat.h include.
Since e013e369 COMPAT_LINUX, COMPAT_LINUX32 build options are removed, so include of opt_compat.h is no more needed.
MFC after: 2 weeks
|
#
35548e48 |
| 19-Jul-2022 |
Ed Maste <emaste@FreeBSD.org> |
linux64: improve linux_support.s make rules
Previously we relied on the .s.o rule in share/mk/bsd.suffixes.mk to tell make that linux_support.o is built from linux_support.s, even though we do not u
linux64: improve linux_support.s make rules
Previously we relied on the .s.o rule in share/mk/bsd.suffixes.mk to tell make that linux_support.o is built from linux_support.s, even though we do not use the .s.o rule to assemble it.
Reviewed by: sjg MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D35864
show more ...
|
#
ccd9b49f |
| 24-Jul-2022 |
Elliott Mitchell <ehem+freebsd@m5p.com> |
sys: use .S for assembly language files that use the preprocessor
Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/609 Differential Revision: https://reviews.freebsd.org/D3
sys: use .S for assembly language files that use the preprocessor
Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/609 Differential Revision: https://reviews.freebsd.org/D35908
show more ...
|
#
010175a7 |
| 29-Oct-2022 |
Warner Losh <imp@FreeBSD.org> |
modules: Add missing opt_*.h files for stand-alone compile
Standalone compile that we at least create these opt_*.h files.
Sponsored by: Netflix
|
#
f396f9b6 |
| 29-Oct-2022 |
Mitchell Horne <mhorne@FreeBSD.org> |
linux, linux64: fix module load
The previous commit added references to to the syscallnames arrays, but failed to add the relevant source files to the module build. Thus, the modules failed to load
linux, linux64: fix module load
The previous commit added references to to the syscallnames arrays, but failed to add the relevant source files to the module build. Thus, the modules failed to load due to missing symbols.
Reported by: cy Fixes: 1da65dcb1c57 ("linux: populate sv_syscallnames in each sysentvec") Sponsored by: The FreeBSD Foundation
show more ...
|
#
33178488 |
| 29-Oct-2022 |
Mitchell Horne <mhorne@FreeBSD.org> |
linux, linux64: improve SRCS formatting
Sort the entries alphabetically, and list them with one entry per line. This makes the diffs much cleaner when adding or removing a new entry, as I will do in
linux, linux64: improve SRCS formatting
Sort the entries alphabetically, and list them with one entry per line. This makes the diffs much cleaner when adding or removing a new entry, as I will do in the next commit.
MFC after: 1 week Sponsored by: The FreeBSD Foundation
show more ...
|
#
2b378d59 |
| 23-May-2022 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4); Move vdso_selector_x86.c to the linux_common module
MFC after: 2 weeks
|
#
5a6a4fb2 |
| 08-May-2022 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Implement vdso getcpu for x86.
This is modeled after f2395455 (by kib@).
MFC after: 2 weeks
|
#
ee55d560 |
| 26-Apr-2022 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Add a simple rseq syscall implementation.
To avoid annoyng messages from glibc-2.35 test suite add the simple implementation of rseq syscall which is do nothing for now.
I plan to impleme
linux(4): Add a simple rseq syscall implementation.
To avoid annoyng messages from glibc-2.35 test suite add the simple implementation of rseq syscall which is do nothing for now.
I plan to implement it if and when the API stabilizes.
MFC after: 2 weeks
show more ...
|
#
5bb3134a |
| 07-Nov-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
Fix some modules to export more used symbols
and remove non-present symbols that are now reported by kmod_syms.awk.
Reviewed by: emaste Sponsored by: The FreeBSD Foundation MFC after: 1 week Differ
Fix some modules to export more used symbols
and remove non-present symbols that are now reported by kmod_syms.awk.
Reviewed by: emaste Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D32878
show more ...
|
#
b0fa09a0 |
| 26-Jul-2021 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Fix amd64 gcc build.
Do not specify memory model and mregparm for amd64, it's only available on IA-32 architecture.
Reported by: jhb, jrtc27 MFC after: 2 weeks
|
#
9931033b |
| 20-Jul-2021 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4); Almost complete the vDSO.
The vDSO (virtual dynamic shared object) is a small shared library that the kernel maps R/O into the address space of all Linux processes on image activation. The
linux(4); Almost complete the vDSO.
The vDSO (virtual dynamic shared object) is a small shared library that the kernel maps R/O into the address space of all Linux processes on image activation. The vDSO is a fully formed ELF image, shared by all processes with the same ABI, has no process private data.
The primary purpose of the vDSO: - non-executable stack, signal trampolines not copied to the stack; - signal trampolines unwind, mandatory for the NPTL; - to avoid contex-switch overhead frequently used system calls can be implemented in the vDSO: for now gettimeofday, clock_gettime.
The first two have been implemented, so add the implementation of system calls.
System calls implemenation based on a native timekeeping code with some limitations: - ifunc can't be used, as vDSO r/o mapped to the process VA and rtld can't relocate symbols; - reading HPET memory is not implemented for now (TODO).
In case on any error vDSO system calls fallback to the kernel system calls. For unimplemented vDSO system calls added prototypes which call corresponding kernel system call.
Tested by: trasz (arm64) Differential revision: https://reviews.freebsd.org/D30900 MFC after: 2 weeks
show more ...
|
#
45d99014 |
| 03-Jul-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
linux(4): implement coredumps on arm64
Previously they only worked on amd64.
Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D30975
|
#
447636e4 |
| 30-Jun-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
linux(4): implement coredump support
Implement dumping core for Linux binaries on amd64, for both 32- and 64-bit executables. Some bits are still missing.
This is based on a prototype by chuck@.
linux(4): implement coredump support
Implement dumping core for Linux binaries on amd64, for both 32- and 64-bit executables. Some bits are still missing.
This is based on a prototype by chuck@.
Reviewed By: kib Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D30019
show more ...
|
#
88588c4b |
| 24-Mar-2021 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Get rid of i386 ref here as linux64 is a 64-bit module.
Reviewed By: emaste, imp MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29412
|
#
513c5cd8 |
| 21-Jan-2021 |
Jessica Clarke <jrtc27@FreeBSD.org> |
linux64: Don't pass unnecessary -S and -g to objcopy
Since we use --input-type binary these options are rather meaningless. Both binutils and elftoolchain ignore the option in this case, but LLVM do
linux64: Don't pass unnecessary -S and -g to objcopy
Since we use --input-type binary these options are rather meaningless. Both binutils and elftoolchain ignore the option in this case, but LLVM does not, and instead strips all symbols from the output file, causing missing symbols at run time if building with llvm-objcopy. Thus simply remove the options; the linux module has never included them for building its VDSO (added in r283407), but for some reason the original commit of linux64 (r283424) added them.
These should however eventually be changed to use template assembly files as is now done for firmware and MFS_IMAGE.
Reviewed by: emaste, trasz Differential Revision: https://reviews.freebsd.org/D27740
show more ...
|
#
e9b13c66 |
| 05-Nov-2020 |
Conrad Meyer <cem@FreeBSD.org> |
linux(4): Deduplicate unimpl/dummy syscall handlers
No functional change.
Reviewed by: emaste, trasz Differential Revision: https://reviews.freebsd.org/D27099
|
#
2b6ee34c |
| 25-Aug-2020 |
Alex Richardson <arichardson@FreeBSD.org> |
Pass -fuse-ld=/path/to/ld if ${LD} != "ld"
This is needed so that setting LD/XLD is not ignored when linking with $CC instead of directly using $LD. Currently only clang accepts an absolute path for
Pass -fuse-ld=/path/to/ld if ${LD} != "ld"
This is needed so that setting LD/XLD is not ignored when linking with $CC instead of directly using $LD. Currently only clang accepts an absolute path for -fuse-ld= (Clang 12+ will add a new --ld-path flag), so we now warn when building with GCC and $LD != "ld" since that might result in the wrong linker being used.
We have been setting XLD=/path/to/cheri/ld.lld in CheriBSD for a long time and used 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/ld since then we would have to ensure that this file does not exist while building the bootstrap tools. The cross-linker might not be compatible with the host linker (e.g. when building on macos: host-linker= Mach-O /usr/bin/ld, cross-linker=LLVM ld.lld).
Reviewed By: brooks, emaste Differential Revision: https://reviews.freebsd.org/D26055
show more ...
|
#
1a18ab42 |
| 11-Aug-2020 |
Alex Richardson <arichardson@FreeBSD.org> |
Allow overriding the tool used for stripping binaries
Since the make variable STRIP is already used for other purposes, this uses STRIPBIN (which is also used for the same purpose by install(1). Thi
Allow overriding the tool used for stripping binaries
Since the make variable STRIP is already used for other purposes, this uses STRIPBIN (which is also used for the same purpose by install(1). This allows using LLVM objcopy to strip binaries instead of the in-tree elftoolchain objcopy. We make use of this in CheriBSD since passing binaries generated by our toolchain to elftoolchain strip sometimes results in assertion failures.
This allows working around https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=248516 by specifying STRIPBIN=/path/to/llvm-strip
Obtained from: CheriBSD Reviewed By: emaste, brooks Differential Revision: https://reviews.freebsd.org/D25988
show more ...
|