#
973bbdab |
| 22-Aug-2024 |
Jose Luis Duran <jlduran@gmail.com> |
mk: Add a BTI-report linker feature
Add support for specifying how to report the missing Branch Target Identification (BTI) linker feature on AArch64.
For:
Kernel: bti-report on when the linker
mk: Add a BTI-report linker feature
Add support for specifying how to report the missing Branch Target Identification (BTI) linker feature on AArch64.
For:
Kernel: bti-report on when the linker supports it Userspace: bti-report on when the linker supports it and BTI_REPORT_ERROR is defined
Fixes: 43e8849bc294 ("conf: Enable BTI checking in the arm64 kernel") Pull Request: https://github.com/freebsd/freebsd-src/pull/1393
show more ...
|
Revision tags: release/14.1.0, release/13.3.0, release/14.0.0 |
|
#
d0b2dbfa |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line sh pattern
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
|
#
7f9318a0 |
| 24-Jul-2023 |
Jessica Clarke <jrtc27@FreeBSD.org> |
bsd.linker.mk: Use :C not :S for regex
Whilst ^ and $ are supported with C, those are special cases, and general regex syntax like groups and alternations are not. Use the correct modifier so we get
bsd.linker.mk: Use :C not :S for regex
Whilst ^ and $ are supported with C, those are special cases, and general regex syntax like groups and alternations are not. Use the correct modifier so we get a version number out that's not 0 (which is what happens when it can't be parsed by the later code).
Fixes: c4177f5b41d4 ("bsd.linker.mk: Handle Xcode 15 linker identification") MFC after: 1 week
show more ...
|
#
c4177f5b |
| 24-Jul-2023 |
Jessica Clarke <jrtc27@FreeBSD.org> |
bsd.linker.mk: Handle Xcode 15 linker identification
The upcoming Xcode 15 introduces a new linker (called ld-prime or ld-new in some documentation) to replace the classic ld64, which we need to han
bsd.linker.mk: Handle Xcode 15 linker identification
The upcoming Xcode 15 introduces a new linker (called ld-prime or ld-new in some documentation) to replace the classic ld64, which we need to handle.
Previously, the linker would identify itself as:
@(#)PROGRAM:ld PROJECT:ld64-<version>
Now, there are two cases. When the classic ld64 is in use, it identifies itself as:
@(#)PROGRAM:ld-classic PROJECT:ld64-<version>
When the new linker is in use, it identifies itself as:
@(#)PROGRAM:ld PROJECT:dyld-<version>
Thus, tweak the detection to allow a -classic suffix in the PROGRAM string and to allow a dyld- prefix instead of an ld64- prefix on the version number in the PROJECT string.
MFC after: 1 week
show more ...
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0 |
|
#
bca92be6 |
| 05-Feb-2022 |
John Baldwin <jhb@FreeBSD.org> |
Remove more quotes around Makefile .error/.warn/.info strings.
Reviewed by: imp, emaste Differential Revision: https://reviews.freebsd.org/D34175
|
Revision tags: release/12.3.0 |
|
#
f8147dad |
| 20-Jul-2021 |
Alex Richardson <arichardson@FreeBSD.org> |
bsd.linker.mk: Detect LLD when built with PACKAGE_VENDOR
Recent versions of homebrew's LLD are built with PACKAGE_VENDOR (since https://github.com/Homebrew/homebrew-core/commit/e7c972b6062af753e5641
bsd.linker.mk: Detect LLD when built with PACKAGE_VENDOR
Recent versions of homebrew's LLD are built with PACKAGE_VENDOR (since https://github.com/Homebrew/homebrew-core/commit/e7c972b6062af753e564104e58d1fa20c0d1ad7a). This means that the -v output is now `Homebrew LLD 12.0.1 (compatible with GNU linkers)` and bsd.linker.mk no longer detects it as LLD since it only checks whether the first word is LLD. This change allow me to build on macOS again and should unbreak the GitHub actions CI.
Reviewed By: imp, uqs MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D31224
show more ...
|
Revision tags: release/13.0.0, release/12.2.0 |
|
#
e2515283 |
| 27-Aug-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
489377c0 |
| 26-Aug-2020 |
Alex Richardson <arichardson@FreeBSD.org> |
Avoid recomputing COMPILER_/LINKER_ variables when set explicitly
I noticed that when we build libraries for a different ABI (in CheriBSD) we were calling ${XCC}/${LD} --version for every directory.
Avoid recomputing COMPILER_/LINKER_ variables when set explicitly
I noticed that when we build libraries for a different ABI (in CheriBSD) we were calling ${XCC}/${LD} --version for every directory. It turns out that this was caused by bsd.compat.mk explicitly setting (X_)COMPILER variables for that build stage and this stops the _can_export logic from working. To fix this, we change the check to only set _can_export=no if the variable is set and it is set to a different value than the cached value. This noticeably speeds up the tree walk while building compat libraries. During an upstream amd64 buildworld this also removes 8 --version calls.
Obtained from: CheriBSD Reviewed By: brooks, emaste Differential Revision: https://reviews.freebsd.org/D25986
show more ...
|
#
de6fc2e3 |
| 15-Aug-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r364082 through r364250.
|
#
01c4f3a7 |
| 13-Aug-2020 |
Alex Richardson <arichardson@FreeBSD.org> |
Make bsd.linker.mk work with the MacOS linker
This is not strictly required for crossbuilding but having lots of warnings from bsd.linker.mk in the output was making it hard to see the actual warnin
Make bsd.linker.mk work with the MacOS linker
This is not strictly required for crossbuilding but having lots of warnings from bsd.linker.mk in the output was making it hard to see the actual warning messages.
Reviewed By: imp Differential Revision: https://reviews.freebsd.org/D14318
show more ...
|
#
440cec3f |
| 12-Aug-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
91b31c10 |
| 11-Aug-2020 |
Alex Richardson <arichardson@FreeBSD.org> |
Allow linking the kernel with a linker that doesn't support -z ifunc-noplt
This can happen when linking with upstream LLD < 9.0.
Reviewed By: markj Differential Revision: https://reviews.freebsd.or
Allow linking the kernel with a linker that doesn't support -z ifunc-noplt
This can happen when linking with upstream LLD < 9.0.
Reviewed By: markj Differential Revision: https://reviews.freebsd.org/D25985
show more ...
|
Revision tags: release/11.4.0 |
|
#
5b279284 |
| 10-Mar-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 10.0.0-rc3 c290cb61fdc.
Release notes for llvm, clang, lld and libc++ 10.0.0 will become available here:
https://releases.llv
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 10.0.0-rc3 c290cb61fdc.
Release notes for llvm, clang, lld and libc++ 10.0.0 will become available here:
https://releases.llvm.org/10.0.0/docs/ReleaseNotes.html https://releases.llvm.org/10.0.0/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/10.0.0/tools/lld/docs/ReleaseNotes.html https://releases.llvm.org/10.0.0/projects/libcxx/docs/ReleaseNotes.html
PR: 244251 MFC after: 6 weeks
show more ...
|
#
9caf7b36 |
| 24-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Adjust the regex used for LINKER_FREEBSD_VERSION so it captures the last dash-separated segment from the upstream commit description. This is required to parse "git describe --long" output.
|
#
eb834d9f |
| 19-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Take LINKER_FREEBSD_VERSION from numerical field after dash
Summary: With COMPILER_FREEBSD_VERSION, we use a numeric value that we bump each time we make a change that requires re-bootstrapping, but
Take LINKER_FREEBSD_VERSION from numerical field after dash
Summary: With COMPILER_FREEBSD_VERSION, we use a numeric value that we bump each time we make a change that requires re-bootstrapping, but with the linker variant, we instead take the entire part after "FreeBSD", as in this example version output:
LLD 9.0.1 (FreeBSD c1a0a213378a458fbea1a5c77b315c7dce08fd05-1300006) (compatible with GNU linkers)
E.g., LINKER_FREEBSD_VERSION is currently being set to "c1a0a213378a458fbea1a5c77b315c7dce08fd05-1300006". This means that *any* new upstream lld version will cause re-bootstrapping.
We should only look at the numerical field we append after a dash instead. This review attempts to make it so.
The only thing I am not happy about is the post-processing of awk output in Makefile.inc1. I notice that our awk does not have gensub(), so it can't substitute a numbered sub-regex with \1, \2, etc. Suggestions welcome. :)
MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23691
show more ...
|
#
c246b393 |
| 15-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Tentatively apply D23691, which takes LINKER_FREEBSD_VERSION from the numerical field after the dash. This avoids re-bootstrapping of the linker, when only the git commit hash changes.
|
#
bc02c18c |
| 07-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357408 through r357661.
|
#
d54b0ffe |
| 07-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Correctly recognize linker versions greater than 10.0.
MFC after: 3 days
|
#
0869dceb |
| 05-Dec-2019 |
John Baldwin <jhb@FreeBSD.org> |
Add a new "riscv-relaxations" linker feature.
When the linker doesn't have this feature, add -mno-relax to CFLAGS on RISC-V.
Define the feature for ld.bfd, but not lld. If lld gains relaxation sup
Add a new "riscv-relaxations" linker feature.
When the linker doesn't have this feature, add -mno-relax to CFLAGS on RISC-V.
Define the feature for ld.bfd, but not lld. If lld gains relaxation support in a newer version, we can enable it for those versions of lld in bsd.linker.mk.
Reviewed by: mhorne Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D22659
show more ...
|
#
dc3c6ad6 |
| 15-Nov-2019 |
Alex Richardson <arichardson@FreeBSD.org> |
Use __ as the separator for the exported vars in bsd.compiler/linker.mk
By using '__' instead of '.' as the separator we can also support systems that use dash as /bin/sh (it's the default shell on
Use __ as the separator for the exported vars in bsd.compiler/linker.mk
By using '__' instead of '.' as the separator we can also support systems that use dash as /bin/sh (it's the default shell on Ubuntu/Debian). Dash will unset any environment variables that use a non alphanumeric+undedscore character and therefore submakes will fail to import the COMPILER_* variables if we use '.' as the separator.
Reviewed By: emaste Differential Revision: https://reviews.freebsd.org/D22381
show more ...
|
Revision tags: release/12.1.0, release/11.3.0, release/12.0.0 |
|
#
6149ed01 |
| 14-Nov-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r340368 through r340426.
|
#
7c807d77 |
| 12-Nov-2018 |
Ed Maste <emaste@FreeBSD.org> |
retire LINKER_FEATURES filter flag
And build libdl unconditionally. All supported FreeBSD linkers accept -F / --filter so there is no need to test for support.
Discussed with: kib Sponsored by: Th
retire LINKER_FEATURES filter flag
And build libdl unconditionally. All supported FreeBSD linkers accept -F / --filter so there is no need to test for support.
Discussed with: kib Sponsored by: The FreeBSD Foundation
show more ...
|
#
c6879c6c |
| 23-Oct-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r339015 through r339669.
|
#
74f65486 |
| 23-Oct-2018 |
Alex Richardson <arichardson@FreeBSD.org> |
Only compute the X_COMPILER_*/X_LINKER_* variables when needed
When building CheriBSD we have to set XLD/XCC/XCFLAGS on the command line. This triggers the $XCC != $CC case in bsd.compiler.mk (and t
Only compute the X_COMPILER_*/X_LINKER_* variables when needed
When building CheriBSD we have to set XLD/XCC/XCFLAGS on the command line. This triggers the $XCC != $CC case in bsd.compiler.mk (and the same for LD in bsd.linker.mk) which causes it to call ${XCC} --version and ${XLD} --version (plus various awk+sed+echo calls) in every subdirectory. For incremental builds and stages that only walk the source tree this is often the majority of the time spent in that directory.
By only computing the value of the X_COMPILER_*/X_LINKER_* variables if _WANT_TOOLCHAIN_CROSS_VARS is set we can reduce the number of cc/ld calls to once per build stage instead of once per recursive make.
With this change (and no changes to the sources) the `make includes` stage now takes 28 seconds at -j1 instead of 86 seconds.
Approved By: brooks (mentor) Differential Revision: https://reviews.freebsd.org/D17046
show more ...
|
Revision tags: release/11.2.0 |
|
#
a7d84af8 |
| 20-Jun-2018 |
Bryan Drewery <bdrewery@FreeBSD.org> |
Add WITH_SYSTEM_LINKER, on by default, that avoids building lld when possible.
This works similar to WITH_SYSTEM_COMPILER added in r300354. It only supports lld via WITH_LLD_BOOTSTRAP.
When both S
Add WITH_SYSTEM_LINKER, on by default, that avoids building lld when possible.
This works similar to WITH_SYSTEM_COMPILER added in r300354. It only supports lld via WITH_LLD_BOOTSTRAP.
When both SYSTEM_COMPILER and SYSTEM_LINKER logic passes then libclang will not build in cross-tools. If either check fails though then libclang is built.
The .info is reworked to notify when libclang will be built since if either clang or lld needs to be rebuilt, but not the other, the notification can lead to confusion on why "clang is building".
-fuse-ld= is not used with this method so some combinations of compiler and linker are expected to fail.
A new 'make test-system-linker' target is added to see the logic results.
Makefile.inc1: CROSS_BINUTILS_PREFIX support had to be moved higher up so that XLD could be set and MK_LLD_BOOTSTRAP disabled before checking SYSTEM_LINKER logic as done with SYSTEM_COMPILER. This also required moving where bsd.linker.mk was read since XLD needs to be set before parsing it. This creates a situation where src.opts.mk can not test LINKER_FEATURES or add LLD_BOOTSTAP to BROKEN_OPTIONS.
Reviewed by: emaste (earlier version) Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D15894
show more ...
|