This option implies that it will automatically prefix .gcda files, when
created, thus allowing for the desired prefixing I've added in via bsd.cov.mk .
This option is only available in clang and later versions of gcc, so I'll
likely have to mark MK_COVERAGE broken from a "fully-fledged feature"
perspective, as I don't want to go through the annoyance of implementing the
feature in gcc and testing it.
This is particularly fun when relative paths are embedded in SRCS, like
lib/libclang_rt does (which I argue is ripe for corruption via parallel
builds).
The cross-toolchain gcc toolchains aren't installing libgcov.a, but the host
toolchain variants are. Don't hack around broken packages in the base system.
PR: 223174
When cross-compiling, the wrong architecture was being embedded in the
libclang_rt binary filenames. It should be based on TARGET_ARCH (target), not
MACHINE_ARCH (host).
This is a draft commit against my project branch. Will fix on ^/head soon.
PR: 222925
Add GCNOS{GRP,MODE,OWN} for parity with FILES{GRP,MODE,OWN}. The defaults are
based on BIN{GRP,MODE,OWN}.
GCNOSDIRMODE is added, strictly for configurability, if need be.
Try to install them instead of the .gcda's, since the .gcda's likely won't exist.
TODO: verify that installworld does indeed do the right thing.
Ref: gcc(1) -ftest-coverage description; --coverage (option in use) is an alias
for -fprofile-arcs -ftest-coverage
Now that OBJS has grown an OBJS_SRCS_FILTER variable, use this variable
in the computation of BCOBJS and LLOBJS too. Also move BCOBJS and LLOBJS
computation to be next to the OBJS computation: this should both make
the parallel structure clearer and serve to remind people changing OBJS
that parallel changes are required in BCOBJS and LLOBJS.
A side effect of this change is that BCOBJS and LLOBJS will be available
even when LLVM_LINK has not been defined, but that seems like a positive
change: there's no reason we can't ask "what bitcode files would you
generate" just because we can't link those files together into a
complete bitcode representation of a binary or library.
Reviewed by: sjg
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D12701
The build rule describing how to create ${PROG_FULL}.{bc,ll} is only
dependent on LLVM_LINK being defined, not on MK_DEBUG_FILES being "yes".
Move the addition of ${PROG_FULL}.{bc,ll} out of the conditional block
under `.if ${MK_DEBUG_FILES} != "no"` and up next to where the build
rules for ${PROG_FULL}.{bc,ll} are defined.
Reviewed by: emaste
MFC after: 1 week
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D12703
We previously taught the build system how to create files like libfoo.bc,
but neglected to teach it about cleaning such files up. Rectify this now.
MFC after: 1 week
Sponsored by: DARPA, AFRL
This is being done for reasons parallel to MK_TESTS_SUPPORT's addition in
^/head@r273449
Unlike ^/head@r273449 though, we do want binaries to be built with coverage
support in the libraries phase, but not in the cross-tools phase.
If they are still needed, you can find them in the net/bsdrcmds port.
This was proposed June, 20th and approved by various committers [1].
They have been marked as deprecated on CURRENT in r320644 [2] on July, 4th.
Both stable/11 and release/11.1 contain the deprecation notice (thanks to
allanjude@).
Note that ruptime(1)/rwho(1)/rwhod(8) were initially thought to be part of
rcmds but this was a mistake and those are therefore NOT removed.
[1] https://lists.freebsd.org/pipermail/freebsd-arch/2017-June/018239.html
[2] https://svnweb.freebsd.org/base?view=revision&revision=320644
Reviewed by: bapt, brooks
Differential Revision: https://reviews.freebsd.org/D12573
Make armv7 as a new MACHINE_ARCH.
Copy all the places we do armv6 and add armv7 as basically an
alias. clang appears to generate code for armv7 by default. armv7 hard
float isn't supported by the the in-tree gcc, so it hasn't been
updated to have a new default.
Support armv7 as a new valid MACHINE_ARCH (and by extension
TARGET_ARCH).
Add armv7 to the universe build.
Differential Revision: https://reviews.freebsd.org/D12010
The logic wasn't using a filtered version of SRCS -- it was using the
unfiltered version. This was causing some hilarity with unnecessary
dependencies, like headers and the like in lib/libc/... .
Also use .pico with bsd.lib.mk, not .o -- .o doesn't use SHARED_C*FLAGS,
which doesn't contain _COV_FLAG, which means that the .gcda's would have
relied on objects that didn't build them as a side-effect.
Add flag to the makefile to allow loader compilation as
Little-Endian 32-bit executable.
Usage:
make WITH_LOADER_FORCE_LE=yes -C sys/boot all
Submitted by: Wojciech Macek <wma@freebsd.org>
Reviewed by: imp, nwhitehorn
Obtained from: Semihalf
Sponsored by: QCM Technologies
Differential revision: https://reviews.freebsd.org/D12421
Use a separate variable (PIC_OBJS) for the objects that should be in a
pic-enabled static library.
This unbreaks libexec/rtld-elf compilation when MK_COVERAGE == no.
.gcda files should be installed, not .gcno files. It's easier to
formulate which .gcda's to install based on the SRCS and their
extension in bsd.{lib,prog}.mk .
Some makefiles do reachover builds.
In some cases it is convenient to list subdirs of the distribution
in SRCS.
It is not very convenient, or always even desirable to have corresponding
subdirs in .OBJDIR, so OBJS_SRCS_FILTER allows the makefile to choose.
The default value 'R' matches existing practice.
But a makefile can set OBJS_SRCS_FILTER= T (the R gets added by
bsd.init.mk) to avoid the need for subdirs in .OBJDIR
Differential Revision: https://reviews.freebsd.org/D12218
Reviewed by: bdrewery
Start the phasing out of TRE by disabling it by default. r317254 introduced
a BSD_GREP_FASTMATCH knob (defaulting to on) for testing of bsdgrep with and
without TRE enabled. More bugs have cropped up since then, and
WITHOUT_BSD_GREP_FASTMATCH has shown in testing to be more stable than its
counterpart.
Approved by: emaste (mentor)
Differential Revision: https://reviews.freebsd.org/D12381
This effectively reverts r304877, after having relegated the warning
suppression to the zic(8) makefile in r323572.
Reviewed by: emaste
Sponsored by: Dell EMC Isilon
X-Differential Revision: https://reviews.freebsd.org/D12284
The -S flag is currently ignored for builds since we filter through
tools/install.sh that is intended for both non-root and cross-builds.
Sponsored by: Dell EMC Isilon
X-MFC-With: r322565