3020 Commits

Author SHA1 Message Date
Enji Cooper
e48a1f9cee Congrats riscv* : you unlike millions of americans will have coverage, even
if the ACA is repealed
2017-10-23 07:52:16 +00:00
Enji Cooper
45c85b6113 Die. Die. Die. Tinderbox failures on mips/powerpc 2017-10-23 07:30:52 +00:00
Enji Cooper
6f2b0ca7ac mips, you cause me too much grief with make tinderbox. Try this instead 2017-10-23 07:07:44 +00:00
Enji Cooper
171e4ce895 Use BROKEN_OPTIONS for MK_COVERAGE=no so it will be documented in src.conf(5) 2017-10-23 06:31:00 +00:00
Enji Cooper
2d19fcb30e Let's just nip gcc 4.2.1 in the bud and say MK_COVERAGE=no
Reasoning: gcc 4.2.1 lacks -fprofile-dir support
2017-10-23 05:36:39 +00:00
Enji Cooper
1375d29aad Fix typo in previous commit
My brain was remembering the spelling of the C++ variable, not the option.
2017-10-23 05:26:21 +00:00
Enji Cooper
6da44d7324 Use -fprofile_dir=${COVERAGEDIR} with --coverage
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.
2017-10-23 05:19:40 +00:00
Enji Cooper
88d87eb638 Handle host builds
If TARGET_ARCH isn't defined, fallback to MACHINE_ARCH.

This is a followup to r324873.

PR:		222925
2017-10-23 04:20:11 +00:00
Enji Cooper
b28b665cbe Need to make all of the variables immediate, or the last value for _gcno_dir wins
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).
2017-10-23 00:56:59 +00:00
Enji Cooper
2d457ca3c7 Restore gcc 4.8 version check
I accidentally broke it when making changes
2017-10-22 23:36:43 +00:00
Enji Cooper
875ad66bca Remove BROKEN_OPTIONS/MK_COVERAGE=no for gcc cross-toolchain reliant archs
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
2017-10-22 21:39:58 +00:00
Enji Cooper
69735ece08 Define TARGET_CPUARCH and use in libclang_rt as the basis for CRTARCH
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
2017-10-22 21:34:37 +00:00
Enji Cooper
48c54cbc90 Create GCNOS directories at install time if needed
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.
2017-10-22 21:00:59 +00:00
Enji Cooper
66d0c18afc Only try handling mutating GCNOS if SRCS is not empty
This should cure the logspam in certain directory about SRCS:M not evaluating
properly, e.g., etc/
2017-10-22 11:45:51 +00:00
Enji Cooper
174694331c Do direct comparisons with TARGET for armv6/armv7
This simplifies the conditionals
2017-10-22 11:21:31 +00:00
Enji Cooper
051c9c6839 It _was_ .gcno's, not .gcda's that get produced with cc --coverage
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
2017-10-22 07:12:55 +00:00
Enji Cooper
71ae7bc6a2 Have to evaluate GCDAS immediately b/c I .undef'ed the _GCDAS_SRCS var later.
Otherwise GCDAS will be empty. Womp womp.
2017-10-22 00:10:18 +00:00
Enji Cooper
0a8f81bc28 MFhead@r324837
While here, diff reduce some of the changes in sys/boot by moving
MK_COVERAGE=no to sys/boot/Makefile.inc .
2017-10-21 23:40:52 +00:00
Enji Cooper
cfe42233f8 Fix typo in prior commit with stray colon after :M 2017-10-21 23:37:41 +00:00
Enji Cooper
b0c7b002ca Mark MK_COVERAGE broken for arm64/arm* 2017-10-21 23:27:20 +00:00
Jonathan Anderson
4f2fac3759 Improve computation of {BC,LL}OBJS.
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
2017-10-18 00:33:20 +00:00
Jonathan Anderson
6f6b66a827 Improve logic of CLEANFILES+=${PROG_FULL}.{bc,ll}.
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
2017-10-18 00:30:15 +00:00
Jonathan Anderson
fd8103ed43 Add LLVM IR libraries to CLEANFILES.
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
2017-10-17 16:29:50 +00:00
Enji Cooper
98be998591 Add appropriate safety belts for riscv so it compiles out of the box when MK_COVERAGE ==yes 2017-10-10 08:07:05 +00:00
Enji Cooper
50896984cd MFhead@r324482 2017-10-10 06:26:12 +00:00
Enji Cooper
aefcb745d8 Per r324481, remove MK_COVERAGE_SUPPORT 2017-10-10 06:20:55 +00:00
Warner Losh
c8550231ef Disconnect libstand from the build.
Remove libstand from the src/lib build. Remove LIBSTAND from
bsd.libnames.mk. Add affected files to the obsolete files list.

Sponsored by: Netflix
2017-10-09 22:12:57 +00:00
Enji Cooper
01f06122f9 Add MK_COVERAGE_SUPPORT
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.
2017-10-09 01:17:12 +00:00
Jeremie Le Hen
e415aa2846 Remove rcmds.
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
2017-10-06 08:43:14 +00:00
Warner Losh
0b972ac92e Support armv7 builds for userland
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
2017-10-05 23:01:33 +00:00
Enji Cooper
e31df75228 Fix .gcda to .pico (bsd.lib.mk) and .o (bsd.prog.mk) dependency mapping
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.
2017-10-05 07:10:28 +00:00
Andriy Voskoboinyk
9e63610e82 Mark libifconfig as private library in src.libnames.mk (completes r305700) 2017-10-01 12:54:40 +00:00
Enji Cooper
13bd47158e Use a pattern for GCDAS that actually works 2017-10-01 05:25:55 +00:00
Enji Cooper
25311a8015 Use a simpler pattern than what I used in r324150 2017-10-01 05:16:19 +00:00
Enji Cooper
d1335b630e Make the dependency relationship between .gcda and .o files explicit 2017-10-01 02:39:07 +00:00
Enji Cooper
d5db4328ad MFhead@r324148 2017-10-01 02:28:16 +00:00
Wojciech Macek
76541eb0a7 Compile loader as Little-Endian on PPC64/POWER8
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
2017-09-29 06:36:19 +00:00
Enji Cooper
1bf78a6fe1 Unbreak pic library link/compilation when MK_COVERAGE == no
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.
2017-09-24 20:16:38 +00:00
Enji Cooper
1207267e5c MFhead@r323974 2017-09-24 19:48:46 +00:00
Enji Cooper
95a55bd8cd Fix logic errors and simplify installation process
.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 .
2017-09-17 03:08:00 +00:00
Enji Cooper
b78bcbac59 MFhead@r323646 2017-09-16 16:37:18 +00:00
Simon J. Gerraty
2506d70010 Use OBJS_SRCS_FILTER to control setting OBJS from SRCS
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
2017-09-16 05:42:27 +00:00
Enji Cooper
8fcbcc2d74 MFhead@r323635 2017-09-16 03:54:20 +00:00
Kyle Evans
bf51ff5670 bsdgrep: disable TRE implementation by default
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
2017-09-15 15:57:15 +00:00
Ryan Libby
edaa206d08 gcc builds: reenable -Wstrict-overflow for bsd.sys.mk
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
2017-09-14 03:41:49 +00:00
Enji Cooper
bed74aeeaf Chase recent changes to ^/head/share/mk/bsd.lib.mk
Doesn't compile with libexec/rtld-elf when WITH_LIB32 == yes for some
reason.. but it's a WiP.
2017-09-11 19:57:04 +00:00
Enji Cooper
5be4ad9e80 MFhead@r323343 2017-09-09 05:42:23 +00:00
Bryan Drewery
5179958a28 Tweak comment for install -S usage since it does not impact the build.
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
2017-09-08 19:20:42 +00:00
Enji Cooper
9a1f7ce50c Revert change (r322952) that was not yet destined for ^/head
This unbreaks the build.

This happened because of a botched "svn switch".

Reported by:	cem
2017-08-27 17:08:08 +00:00
Enji Cooper
b5197de15e Try and rebase the bsd.lib.mk changes after ^/head@r322824 was merged in
Unfortunately the snippet's now broken -- need to get the matching expressions to
work properly.
2017-08-27 16:46:51 +00:00