Commit graph

3859 commits

Author SHA1 Message Date
Domagoj Stolfa 93f27766a7 dtrace: Add the 'oformat' libdtrace option
This option can be used to specify a format to use in DTrace output.
The following formats are supported:
 - json
 - xml
 - html
 - none (default DTrace output)

This is implemented using libxo and integrated into libdtrace. Client
code only works with the following API:

 - dtrace_oformat_setup(dtrace_hdl_t *) -- to be called when output is starting.
 - dtrace_oformat_teardown(dtrace_hdl_t *) -- to be called when output is finished
 - dtrace_oformat(dtrace_hdl_t *) -- check if oformat is enabled.
 - dtrace_set_outfp(FILE *) -- sets the output file for oformat.
 - Ensure that oformat is correctly checked in the drop handler and record
   processing callbacks.

This commit also adds tests which check if the generated output is
valid (JSON, XML) and extends the dtrace(1) describing the structured output.

Reviewed by:	markj
Discussed with:	phil
MFC after:	2 months
Sponsored by:	Innovate UK
Differential Revision:	https://reviews.freebsd.org/D41745
2024-01-10 18:14:26 -05:00
Warner Losh 55197eade4 sys.mk: Remove support for building with fmake on modern systems.
We used to exclude a lot of extra hooks to allow for local
customizations of the build which couldn't be done outside of sys.mk,
but excluded that support for fmake. Remove those hacks.

Sponsored by:		Netflix
Reviewed by: brooks
Pull Request: https://github.com/freebsd/freebsd-src/pull/980
2024-01-03 12:14:13 -07:00
Warner Losh 5a4b548ab2 bsd.port.mk: No need to support fmake anymore
There's no need to support fmake anymore. Always assume we can use
bmake's :tA modifier. The ports tree hasn't supported fmake in about a
decade anyway. Simplify here.

Sponsored by:		Netflix
Reviewed by: brooks, emaste
Pull Request: https://github.com/freebsd/freebsd-src/pull/980
2024-01-03 12:14:07 -07:00
Warner Losh 01918855cf bsd.own.mk: Assume a modern make
Commit 83cb5bae96 added a check for MAKE_VERSION being new enough to
handle CTFCONVERT_CMD being an empty string since fmake of the time
didn't support it until just a few commits before 83cb5bae96. Later,
it was augmented with a check for .PARSEDIR to see if bmake was
running. fmake and boostrapping from fmake haven't worked in maybe 6 or
8 years, so we can remove the check here. If you want to update from
your FreeBSD 7 or FreeBSD 8 systems, you're even more out of luck than
you were before and must jump to an older version before jumping to
current for the source upgrade path.

Sponsored by:		Netflix
Reviewed by: brooks, emaste
Pull Request: https://github.com/freebsd/freebsd-src/pull/980
2024-01-03 12:13:57 -07:00
Simon J. Gerraty 4d08b569a0 bsd.man.mk allow staging compressed pages
In the DIRDEPS_BUILD we use staging.
The staging logic in bsd.man.mk was in the wrong place, shift it
and add compressed man pages to the stage set if appropriate.

Reviewed by:	stevek
Differential Revision:	https://reviews.freebsd.org/D43238
2023-12-30 09:10:03 -08:00
VexedUXR 4ea5e107b1 <bsd.progs.mk>: Allow using SRCS for common sources
Instead of having to do:

PROGS=	program1 program2
SRCS.program1=	program1.c common.c
SRCS.program2=	program2.c common.c

This can now be done instead:

PROGS=	program1 program2
SRCS=	common.c
SRCS.program1=	program1.c
SRCS.program2=	program2.c

This shouldn't effect any existing projects using <bsd.progs.mk>.

Reviewed by: imp, sjg
Pull Request: https://github.com/freebsd/freebsd-src/pull/766
2023-12-27 17:01:39 -07:00
Kristof Provost ec6682ed6c atf.test: fix installation of python test scripts
Python test scripts get processed (to add the `#! /usr/libexec/
atf_pytest_wrapper` shebang line), into a .xtmp file, and installed from
there. However, as there was no dependency of this .xtmp file on the
original file we kept reinstalling the .xtmp file, even if the original
had been edited already.

This could cause great confusion when debugging python test scripts.

Reviewed by:	markj
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D43118
2023-12-19 17:23:54 +01:00
Warner Losh 97759ccc71 share: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two
minor fixup to keep things compiling. All the common forms in the tree
were removed with a perl script.

Sponsored by:		Netflix
2023-11-26 22:23:29 -07:00
Konstantin Belousov a9758e4647 Do not install kernel and modules with executable access bit set
They are not executables and cannot be activated by kernel.

Reviewed by:	emaste, imp
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D42768
2023-11-25 20:47:42 +02:00
John Baldwin 28fc837b70 bsd.sys.mk: Disable -Wdangling-reference for GCC 13+
GCC raises this warning for libc++'s istream.  It raises false
positives in other cases as well (GCC bugs 109640, 109642, 109671).

Warning from <istream>:

/usr/include/c++/v1/istream:1464:34: error: possibly dangling reference to a temporary [-Werror=dangling-reference]
 1464 |             const ctype<_CharT>& __ct = std::use_facet<ctype<_CharT> >(__is.getloc());
      |                                  ^~~~
/usr/include/c++/v1/istream:1464:71: note: the temporary was destroyed at the end of the full expression 'std::__1::use_facet<ctype<char> >(std::__1::ios_base::getloc() const())'
 1464 |             const ctype<_CharT>& __ct = std::use_facet<ctype<_CharT> >(__is.getloc());
      |                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~

Reviewed by:	imp, emaste
Differential Revision:	https://reviews.freebsd.org/D42579
2023-11-14 18:35:04 -08:00
Baptiste Daroussin 030af1b62d pkgbase: set the prefix of debug files and macros to /usr/src
When the macro PACKAGE_BUILDING is set, then consider we are building package
for pkgbase, this has already been used in Makefile.inc1 and reuse the
PACKAGE_BUILDING macros already used for that purpose in the ports tree

In the future this should be tied to REPRODUCIBLE_BUILD

MFC After:	3 days
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D42569
2023-11-14 08:43:15 +01:00
Brooks Davis ec4c2adb50 Retire LLD_IS_LD option
The option was added to parallel the CLANG_IS_CC which was removed in
commit 20a66ab4bf.

Reviewed by:	imp, dim, emaste
Differential Revision:	https://reviews.freebsd.org/D42575
2023-11-13 21:34:14 +00:00
Andrew Turner 960b4327f4 bsd.compat.mk: Set MACHINE before including bsd.opts.mk
In bsd.opts.mk we check MACHINE_ARCH and may want to check MACHINE to
decide which options to enable. Unfortunately this is included too
early via bsd.compiler.mk.

Move including bsd.compiler.mk until after we can set MACHINE and
MACHINE_ARCH.

Reviewed by:	imp
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D42448
2023-11-10 09:57:45 +00:00
Kyle Evans 8f2848eafa crunchgen: fix "keep" for an ELF world, break it out
"keep" currently adds a leading underscore, which hasn't been useful or
accurate since a.out days.  Preserve the symbol name as it's given
rather than mangle it to match ELF-style symbol names.

This was partially fixed back in
6cd35234a0 ("Assume ELF-style symbol names now.") for crunchgen, but
the keeplist wasn't changed to match it.

While we're here, break it out to bsd.crunchgen.mk for later use in
bsdbox.

Reviewed by:	adrian, imp
Differential Revision:	https://reviews.freebsd.org/D42499
2023-11-09 22:33:58 -06:00
Ka Ho Ng 475fa89800 share/mk: Fix .TARGET override documentation
Fixes: 		48da57b47f
Sponsored by:	Juniper Networks, Inc.
MFC after:	3 days
Reviewed by:	imp, delphij, emaste
Differential Revision:	https://reviews.freebsd.org/D42469
2023-11-05 16:28:34 -05:00
Simon J. Gerraty 6647af9b56 bsd.progs.mk must pass META_XTRAS to gendirdeps.mk
The indirection used by bsd.progs.mk is setting META_XTRAS
means the value needs to be passed in the environment to
gendirdeps.mk, as any expansion before then will be empty.

Remove a now misleading comment from bsd.progs.mk
before it includes bsd.prog.mk

Update gendirdeps.mk to accommodate this.

Reviewed by:	stevek
2023-11-04 10:17:40 -07:00
Stephen J. Kiernan 2008043f38 loader: add target for dirdeps build
Update dependencies for the loader variations used for each
architecture.

Reviewed by:	sjg
Differential Revision:	https://reviews.freebsd.org/D39741
2023-11-02 19:35:08 -04:00
Simon J. Gerraty 5f98380c3e Stop adding $FreeBSD$ to Makefile.depend
Reviewed by:	stevek
2023-10-29 11:40:03 -07:00
Mark Johnston e8f0357630 Revert "tests: fix ATF_TESTS_PYTEST no clean build"
This reverts commit 6120673f75, which
appears to break a clean buildworld.
2023-10-22 13:14:13 -04:00
Simon J. Gerraty ea9a7058f9 bsd.man.mk guard against empty vars in MLINKS
share/man/man4/Makefile adds a number of
variables to MAN and MLINKS, which are only set for
certain architectures.

The empty variables wreak havoc when := is used.

Add :M*.[1-9] to MLINKS reference for STAGE_LINKS.mlinks
to avoid invalid results.

Reviewed by: stevek
2023-10-22 10:13:20 -07:00
Gleb Smirnoff 6120673f75 tests: fix ATF_TESTS_PYTEST no clean build
The hack with .xtmp file was effectively making the make to
ignore changes to the sources, breaking NO_CLEAN builds.  The
hack can be actually omitted as setting SCRIPTSNAME_${_T} for
every test is sufficient to prevent renaming by bsd.prog.mk.

Reviewed by:		melifaro
Differential Revision:	https://reviews.freebsd.org/D42283
2023-10-20 10:47:08 -07:00
Alfonso S. Siciliano d287d3282f
libbsddialog: delete formw dependency
libbsddialog >= 0.3 has a built-in form implementation so delete
formw dependency.

Approved by:		bapt (share/mk maintainer)
Differential Revision:	https://reviews.freebsd.org/D42167
2023-10-12 22:44:15 +02:00
Baptiste Daroussin 38981026e7 dialog(1): switch off dialog(1) by default
Every direct consumers in base have switch to use bsddialog(1) by
default
2023-10-10 09:19:48 +02:00
Baptiste Daroussin 166a655fcf bsdinstall: decouple from the MK_DIALOG option
bsdinstall does not depend on libdialog(3) or anything using
libdialog(3) for a while now, it does not need to depend on MK_DIALOG
anymore
2023-10-05 09:54:20 +02:00
Simon J. Gerraty 0f87915f43 Remove unnecessary -isystem for host
Turns out we do not need -isystem/usr/include and
it can interfere with newer toolchains.

Reviewed by:	stevek
2023-09-28 14:19:25 -07:00
Simon J. Gerraty b45ab4b000 Move the adding of CFLAGS_LAST to bsd.sys.mk
The point of CFLAGS_LAST is to be the last thing in CFLAGS
so add it last.

For DIRDEPS_BUILD this can best be done via local.dirdeps-build.mk
which is guaranteed to be the last makefile read, but that does nothing
for non-DIRDEPS_BUILD

bsd.sys.mk is close enough to the end.

Reviewed by:	obrien
Differential Revision:	https://reviews.freebsd.org/D42001
2023-09-28 14:01:56 -07:00
Simon J. Gerraty f174619c38 Guard CROSS_TARGET_FLAGS from buildworld
Until a better arrangment is worked out, guard the setting of
CROSS_TARGET_FLAGS in local.sys.mk with check for DIRDEPS_BUILD.

Using a separate flag for CROSS_TARGET that can be reset by
bsd.compat.mk is probably the right thing.
2023-09-23 15:58:13 -07:00
Simon J. Gerraty f9df609750 Add support for host32 for DIRDEPS_BUILD
Allow building 32bit libs for host.

Move CFLAGS additions from local.sys.dirdeps.mk (which is too early
and impacts CFLAGS defaults) to local.sys.mk

Reviewed by:	stevek
Sponsored by:	Juniper Networks, Inc.
Differential Revision:	https://reviews.freebsd.org/D41946
2023-09-22 23:27:37 -07:00
Simon J. Gerraty 40b9b2995f Update jobs.mk to leverage -jC
With bmake-20230909 we can use -j1.5C to use 1.5*ncpu
bmake will set .MAKE.JOBS.C=yes if this is supported,
and in that case jobs.mk will use JOB_MAX_C as default for JOB_MAX.

Remove logic from local.sys.mk which is now handled by jobs.mk

Also use latest dirdeps-targets.mk and meta.{autodep,subdir}.mk
2023-09-18 11:40:07 -07:00
Doug Rabson 74da9c39c3 pkgbase: Split out manpages by default
This helps with building small container images using pkgbase.

Reviewed by:	manu bapt
MFC after:	1 week
Differential Revision: https://reviews.freebsd.org/D41861
2023-09-14 16:50:40 +01:00
Doug Rabson 4e899378bf pkgbase: put library links and symlinks in the -dev package
Some libraries (e.g. ncurses) install links to the main library for
backwards compatibilty. This change ensures that those links are in the
dev package since the files being linked to are in that package.

PR:		249143
MFC after:	1 week
Reviewed by:	emaste, manu
Differential Revision: https://reviews.freebsd.org/D41841
2023-09-14 10:19:42 +01:00
Brooks Davis 2befa269b8 Add INIT_ALL build option
This option replaces WITH_INIT_ALL_PATTERN and WITH_INIT_ALL_ZERO with
INIT_ALL=pattern and INIT_ALL=zero respectively.  As these are
relatively rarely used options no backwards compatibility is
implemented.

Reviewed by:	emaste
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D41675
2023-09-01 17:54:24 +01:00
Brooks Davis 09e32b2fdd libc: add LIBC_MALLOC option
This will enable alternative mallocs to be included in the tree and
selected by setting LIBC_MALLOC.  As there is only one today (jemalloc)
this option does nothing, but we expect to add other implementations
in the future.  This will also reduce diffs to CheriBSD.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D41660
2023-09-01 17:54:23 +01:00
Brooks Davis ce5fa47cf0 share/mk: support for "single" group options
Support group options where 1 of n values will be selected (or a default
value will be used).  After processing, an OPT_FOO will be set to one
value from __FOO_OPTIONS for each FOO in __SINGLE_OPTIONS.  If the user
sets FOO that value will be used, otherwise __FOO_DEFAULT will be used.

Options that don't work an a particular system can be remapped to an
alternative using BROKEN_SINGLE_OPTIONS which can be set to a list of
3-tuples of the form:
	OPTION broken_value replacement_value

This is somewhat inspired by OPTIONS_SINGLE from ports, but the
structure is quite different with a per-option variable in the style of
MK_FOO={yes,no}.

Reviewed by:	imp, emaste
Differential Revision:	https://reviews.freebsd.org/D41659
2023-09-01 17:52:28 +01:00
Simon J. Gerraty 61fe0b8e94 Add sys.dirdeps.mk to share/mk FILES
A few recent makefiles should have been added to FILES.
Rename sys.machine.mk to local.sys.machine.mk as it is very
tree specific so does not belong in /usr/share/mk/

Reviewed by:	stevek
Differential Revision:	https://reviews.freebsd.org/D41642
2023-08-30 07:46:08 -07:00
Martin Matuska 315ee00fa9 zfs: merge openzfs/zfs@804414aad
Notable upstream pull request merges:
  #15024 Add missed DMU_PROJECTUSED_OBJECT prefetch
  #15029 Do not request data L1 buffers on scan prefetch
  #15036 FreeBSD: catch up to __FreeBSD_version 1400093
  #15039 Fix raw receive with different indirect block size
  #15047 FreeBSD: Fix build on stable/13 after 1302506
  #15049 Fix the ZFS checksum error histograms with larger record sizes
  #15052 Reduce bloat in ereport.fs.zfs.checksum events
  #15056 Avoid extra snprintf() in dsl_deadlist_merge()
  #15061 Ignore pool ashift property during vdev attachment
  #15063 Don't panic if setting vdev properties is unsupported for this vdev type
  #15067 spa_min_alloc should be GCD, not min
  #15071 Add explicit prefetches to bpobj_iterate()
  #15072 Adjust prefetch parameters
  #15076 Refactor dmu_prefetch()
  #15079 set autotrim default to 'off' everywhere
  #15080 ZIL: Fix config lock deadlock
  #15088 metaslab: tuneable to better control force ganging
  #15096 Avoid waiting in dmu_sync_late_arrival()
  #15097 BRT should return EOPNOTSUPP
  #15103 Remove zl_issuer_lock from zil_suspend()
  #15107 Remove fastwrite mechanism
  #15113 libzfs: sendrecv: send_progress_thread: handle SIGINFO/SIGUSR1
  #15122 ZIL: Second attempt to reduce scope of zl_issuer_lock
  #15129 zpool_vdev_remove() should handle EALREADY error return
  #15132 ZIL: Replay blocks without next block pointer
  #15148 zfs_clone_range should return descriptive error codes
  #15153 ZIL: Avoid dbuf_read() before dmu_sync()
  #15172 copy_file_range: fix fallback when source create on same txg
  #15180 Update outdated assertion from zio_write_compress

Obtained from:	OpenZFS
OpenZFS commit:	804414aad2
2023-08-26 23:51:42 +02:00
Daniel Engberg ed3fb74e44 share/mk/bsd.cpu.mk: Add AMD Zen 4 for x86
Main difference between older Zen variants is that this supports AVX-512

Reviewed by:	imp (previous version), emaste
Approved by:	emaste
Differential Revision:	https://reviews.freebsd.org/D41331
2023-08-20 23:54:29 +02:00
Enji Cooper 0c785f0602 Fix GoogleTest 1.14.0 import
- Prune headers and tests no longer installed after the upgrade.
- Remove GoogleTest-related files when MK_GOOGLETEST == no.
- Disable `-Werror` with gcc to unbreak the gcc12 CI run with
  `lib/googletest`. Any issues found by g++ will be filed
  upstream and hopefully resolved in a future version.
- Remove clang -Werror issues which are resolved in version 1.14.0 to
  avoid masking valid issues.

MFC after:	1 week
MFC with:	28f6c2f292
2023-08-18 19:33:58 -07:00
Warner Losh d0b2dbfa0e Remove $FreeBSD$: one-line sh pattern
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
2023-08-16 11:55:03 -06:00
Simon J. Gerraty 93ac817fae local.dirdeps.mk ensure tools/build is built if needed
If MK_host_egacy is yes, we need it built, make sure that happens.

Reviewed by:	stevek
2023-08-16 08:31:11 -07:00
Enji Cooper 28f6c2f292 Import GoogleTest 1.14.0
GoogleTest 1.14.0 now requires C++14 to build. Change
`googletest.test.inc.mk` to reflect this requirement.

Adjust the build integration logic to handle the new version of
GoogleTest (add/remove headers/sources as needed).

Tighten down warnings via `CXXFLAGS.clang` instead of ignoring all
warnings. Some new warnings snuck in after I did my last round of fix
submissions upstream.

Also address some overlinking added in the previous version import by
removing superfluous libraries.

===============================

Expect WhenDynamicCastToTest.AmbiguousCast to fail

This change reapplies the expected failure from 1.10.0.

Ref: https://github.com/google/googletest/issues/2172

MFC after:	2 weeks
Reviewed by:	asomers, emaste
Differential Revision:	https://reviews.freebsd.org/D41399

Merge commit '8ef491440fcaec96f899d73e08873426c78583a4' into googletest-v1.14.0-import
2023-08-10 02:32:33 -07:00
Stephen J. Kiernan 458e0c1b66 local.sys.dirdeps.mk: Allow CROSS_TARGET_FLAGS to be overridden
Use ?= when setting CROSS_TARGET_FLAGS so we do not override it
if another file already has set it.

Reviewed by:	sjg
Obtained from:	Juniper Networks, Inc.
2023-08-08 16:11:27 -04:00
Domagoj Stolfa 6de0222840 dtrace: Add WITH_DTRACE_ASAN
See commit 4ae6991228.  This version of
the commit avoids inadvertently changing SHLIBDIR for libdtrace.so.
2023-08-02 09:15:08 -04:00
Ed Maste 77f6be4484 retire SHARED_TOOLCHAIN knob
Toolchain components were historically statically linked.  They became
normal dynamically linked executables in commit 6ab18ea64d.  There is
no need to keep a special case build option for the toolchain; users who
want statically linked toolchain (or any other) components can use the
existing NO_SHARED knob.

Reviewed by:	dim, sjg
Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D41266
2023-08-01 20:13:22 -04:00
Mark Johnston 5cdaac92e1 dtrace: Revert the addition of WITH_DTRACE_ASAN
The follow-up fix triggers a lib32 build failure, revert everything
until the problem is addressed.
2023-08-01 13:03:10 -04:00
Jessica Clarke 2d01ce7f85 mk: Install bsd.compat.pre.mk
Reported by:	dchagin
Fixes:		5d6cb793d0 ("bsd.compat.mk Extract _ALL_LIBCOMPATS and add related variables")
2023-07-28 17:52:38 +01:00
Warner Losh 98d03dca9a universe: Demote armv6 to an extra architecture.
Per discussions over how to lighten the load of armv6, move it to an
extra arch. You can still build TARGET_ARCH=armv6 if you desire, but
it won't be built as part of 'make universe' without -DEXTRA_TARGETS.

Sponsored by:		Netflix
2023-07-27 22:30:41 -06:00
Val Packett da6620e495 mk: fix unnecessary library relinking with incremental builds
Initial libs such as csu are always built (.PHONY), and their
installation to WORLDTMP was causing all the subsequent libraries to
be considered out-of-date even when in reality they were not. Use
install -C more consistently everywhere to avoid unnecessarily
updating the mtimes in WORLDTMP, fixing this problem.

This cut down my no-change buildworld time from 30 to 15 seconds.

Fixes: https://lists.freebsd.org/pipermail/freebsd-current/2016-May/061481.html
TODO.1

Reviewed by: sjg
Sponsored by: https://www.patreon.com/valpackett
Differential Revision:  https://reviews.freebsd.org/D39980
2023-07-27 14:55:16 -07:00
Domagoj Stolfa 4ae6991228 dtrace: Add WITH_DTRACE_ASAN
This option is a blanket for all the DTrace-related software. The option
when enabled passes in -fsanitize=address -fsanitize=undeifned, enabling
ASAN and UBSAN in the following components:

 - libdtrace
 - dtrace(1)
 - lockstat(1)
 - plockstat(1)

The option defaults to "no" and is intended as a developer aid.

Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D41157
2023-07-27 16:07:34 -04:00
Jessica Clarke 87177389b7 bsd.lib.mk: Automatically generate libcompat TAGS
Note that the pattern for matching is made slightly more specific, so as
to permit libcompats where one is a prefix of another (e.g. CheriBSD has
lib64 and lib64c).

Reviewed by:	brooks, jhb, emaste
Differential Revision:	https://reviews.freebsd.org/D41185
2023-07-27 05:10:46 +01:00