Commit Graph

3823 Commits

Author SHA1 Message Date
Simon J. Gerraty
e5e345a4b0 local.dirdeps.mk skip N_host_libs for non-FreeBSD host
The N_host_libs dance only makes sense if host is FreeBSD.
Even then, if MK_host_egacy is yes we need libmd

libnetbsd does not need libutil when using libegacy

Sponsored by:	Juniper Networks, Inc.
2023-05-04 11:58:39 -07:00
Simon J. Gerraty
ba4d333364 dirdeps.mk for host* DEP_TARGET_SPEC is just DEP_MACHINE
This helps avoid ugly noise in dirdeps.cache on Linux.
2023-05-04 11:29:33 -07:00
Simon J. Gerraty
42d088299c Update meta.sys.mk ensure DEP_* set at level 1+ 2023-05-04 09:46:47 -07:00
Simon J. Gerraty
9f27341c33 local.meta.sys.mk set BOOTSTRAPPING
When building for host on non-FreeBSD
some makefiles want to see BOOTSTRAPPING defined.

With this libmd and hence nmtree build ok
2023-05-03 12:20:02 -07:00
Ed Maste
0b4568e36f src.opts.mk: Decouple MK_INCLUDES from MK_TOOLCHAIN
Prior to 590461a4b8 installation of include files was controlled
directly by ${MK_TOOLCHAIN}.  590461a4b8 added an INCLUDES knob
defaulting to YES.  Setting WITHOUT_TOOLCHAIN forced it off to retain
existing behaviour.

Decouple them now, as there are reasonable use cases for installing
libraries and include files without a compiler or other tool chain
components.

Reviewed by:	imp, jrtc27
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D39918
2023-05-01 20:33:08 -04:00
Ed Maste
5f2e84015d bsd.lib.mk: decouple lib*_pic.a from TOOLCHAIN build knob
A user may use a tool chain from a package or just use an existing
tool chain from a previous installation.  There is no reason for this
to disable the installation of lib${LIB}_pic.a.

This also means we don't need to force MK_TOOLCHAIN=yes in lib/libc.

This reverts part of commit c0f5aeb032.

Reviewed by:	jrtc27
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D39917
2023-05-01 16:46:39 -04:00
Alexander V. Chernikov
4f6a5e1d6c netlink: enable NETLINK_SUPPORT by default on all architectures.
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D39849
2023-04-28 12:37:09 +00:00
Simon J. Gerraty
e020aa37b8 jobs.mk report JOB_ARGS log and JOB_LOG_START
At the start of a job include info such as JOB_ARGS the log location
and anything in JOB_LOG_START (eg TARGET_SPEC=${TARGET_SPEC})
2023-04-27 13:40:44 -07:00
John Baldwin
7aab8fc5c5 clang: Enable -Wdeprecated-non-prototype by default.
PR:		270919 (exp-run)
Reviewed by:	dim, emaste
Differential Revision:	https://reviews.freebsd.org/D39535
2023-04-25 14:09:21 -07:00
Simon J. Gerraty
4b932c2c9e Set MK_host_egacy=yes earlier
If we need to set MK_host_egacy=yes we might need to check it
in local.toolchain.mk so set it earlier in local.meta.sys.env.mk

Leave the default MK_host_egacy?=no in local.sys.mk so it can
be tested in Makefiles without concern for build mode.
2023-04-25 00:26:35 -07:00
Simon J. Gerraty
976ba7f02a Enable building tar for non-FreeBSD host
For DIRDEPS_BUILD we need Makefile.depend.options to
force libegacy to be built on older FreeBSD and non-FreeBSD hosts.

Add readpassphrase to libegacy to avoid the need for libbsd on Linux

src.opts.mk disable TESTS for host if MK_host_egacy is yes

Reviewed by:	imp
Sponsored by:	Juniper Networks, Inc.
Differential Revision:	https://reviews.freebsd.org/D39766
2023-04-24 10:20:17 -07:00
Simon J. Gerraty
baf2dc6476 Set UPDATE_DEPDFILE=NO for showconfig
Exporting UPDATE_DEPDFILE=NO from makeman didn't work,
back to setting it in local.meta.sys.env.mk
2023-04-23 13:43:45 -07:00
Ed Maste
390c31c428 meta.sys.mk: downgrade missing Filemon error to warning
Cirrus-CI was red because `make makeman` failed with a spurious "filemon
is not loaded" error.  For now just make it a warning.
2023-04-23 10:48:22 -04:00
Simon J. Gerraty
d7e3299f60 Ensure good exit status from type
When looking to see if nproc is available we do
not want warnings about 'type nproc' having bad exit.
2023-04-22 23:15:05 -07:00
Simon J. Gerraty
04989ef426 bmake 20230123 gives us .SYSPATH
No need to faff about trying to work out where bmake
is looking - it tells you.
2023-04-22 18:15:31 -07:00
Colin Percival
df53ae0fdd Remove portsnap(8)
Rather than having a tool in the FreeBSD base system for obtaining
the FreeBSD ports tree, users are encouraged to `pkg install git`
and then `git clone https://git.FreeBSD.org/ports.git /usr/ports`.

The portsnap servers will continue operating until FreeBSD 13 reaches
its End-of-Life, and portsnap is available from the ports tree as
ports-mgmt/portsnap.

Requested by:	portmgr
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D39563
X-MFC:		no
2023-04-22 18:12:37 -07:00
Simon J. Gerraty
fb30bb0d4d dirdeps.mk ensure M_dep_qual_fixes is applied 2023-04-22 18:00:45 -07:00
Simon J. Gerraty
3483454556 local.meta.sys.mk skip OBJTOP for host
It was already done by local.meta.sys.env.mk
2023-04-22 17:59:12 -07:00
Simon J. Gerraty
cf20b1f81c Extract some of local.meta.sys.mk to local.meta.sys.env.mk
Latest meta.sys.mk follows sys.mk in including local.meta.sys.env.mk
and local.meta.sys.mk late, but we have things we need done early
so move them to local.meta.sys.env.mk
2023-04-22 15:07:53 -07:00
Simon J. Gerraty
8561d0b2ec Simplify building host tools during DIRDEPS_BUILD
The whole point of the DIRDEPS_BUILD is to avoid tree walks
and basically build everything in a single pass.
We use the pseudo MACHINE "host" to represent the build host.

When the build host is not FreeBSD or is an older version of FreeBSD
it may need some help to build host-tools.

The directory tools/build does this - building libegacy.

local.sys.mk: create a pseudo option MK_host_egacy to indicate
if tools/build needs to be built for "host".

local.dirdeps.mk: set MK_host_egacy.host to ${MK_host_egacy}
all other DEP_MACHINES will get "no"

This allows a Makefile.depend.options in makefs etc to cause tools/build
to be built for host but only if necessary.

local.init.mk: use ISYSTEM as arg to -isystem so that it can be overridden.
The default remains ${STAGE_INCLUDEDIR}

src.init.mk: if MACHINE is host and we are not FreeBSD
set some MK_ flags the same as tools/build/mk/Makefile.boot.pre and
include src.init.${.MAKE.OS:tl}.mk if it exists.

For older versions of FreeBSD add libegacy when building PROGs for "host"

Also instead of -isystem${STAGE_INCLUDEDIR} we want
-I${STAGE_INCLUDEDIR} and -isystem/usr/include so we override ISYSTEM.
This means any headers we stage for "host" will take precedence over
system headers but #include_next will DTRT.

src.init.linux.mk: add
-I${SRCTOP}/tools/build/cross-build/include/linux
and generally deal with building host tools on Linux.
Eg. static linking does not work so set NO_SHARED= no
Override some HAVE_ flags.

src.sys.env.mk: on linux awk throws an warning about # in newvers.sh
just send stderr to /dev/null

Reviewed by:	jrtc27, arichardson
Sponsored by:	Juniper Networks, Inc.
Differential Revision:	https://reviews.freebsd.org/D39744
2023-04-22 12:01:49 -07:00
Simon J. Gerraty
f957a32dac Update meta.sys.mk and related local*mk
Move the setting of TARGET_SPEC_VARS to local.sys.env.mk
so meta.sys.mk can do the processing, and include local.meta.sys.mk
later.

Move the setting of GENDIRDEPS_FILTER*_VARS from local.gendirdeps.mk
to local.meta.sys.mk so we can automatically set DEP_* at level 1+
to avoid syntax errors when DEP_* variables are used in conditionals
in Makefile.depend files.

Update gendirdeps.mk just to get the documentation about the above.
No functional change.

local.dirdeps.mk be more careful about adding to DIRDEPS to avoid
unnecessary overhead, and introducing cycles in the graph.
Also set DEP_MACHINE_CPUARCH.

Reviewed by:	stevek
Sponsored by:	Juniper Networks, Inc.
Differential Revision:	https://reviews.freebsd.org/D39737
2023-04-20 20:38:53 -07:00
Brooks Davis
8612e44589 Remove unused NETLINK build option
NETLINK was added along side NETLINK_SUPPORT to control building netlink
specific programs, but it has no consumers so remove it for now.

Reviewed by:	melifaro
Differential Revision:	https://reviews.freebsd.org/D39678
2023-04-20 22:38:36 +01:00
John Baldwin
47e888f836 Remove a few more references to riscv64sf.
Fixes:		1ca12bd927 Remove the riscv64sf architecture.
2023-04-20 11:00:46 -07:00
Simon J. Gerraty
8fe4f8f7a7 Fix building host tools for host
Several makefile depend on tools built for host.
At least when using DIRDEPS_BUILD we can build these for the
pseudo machine "host" to facilitate building on older host versions.

Ideally we would build these tools in their own directories to avoid
building more than needed.

For now, setting an appropriate default for BTOOLSPATH will suffice

Reviewed by:	stevek
Sponsored by:	Juniper Networks, Inc.
Differential Revision:	https://reviews.freebsd.org/D39708
2023-04-20 10:05:43 -07:00
Simon J. Gerraty
0df4d8ad7a Add jobs.mk to allow for target-jobs
jobs.mk automates -j$JOB_MAX and capturing build log based on target.

Compute a default for JOB_MAX in local.sys.mk

Reviewed by:	stevek, imp
Differential Revision:	https://reviews.freebsd.org/D39683
2023-04-20 09:40:39 -07:00
Stephen J. Kiernan
64a67b7266 meta: remove LDFLAGS setting when cross building
The setting was left over from older clang version and is not
necessary any more (and also causes link issues.)

Reviewed by:	sjg
2023-04-19 21:40:29 -04:00
Simon J. Gerraty
a6bd50f712 Avoid breaking crunchgen with meta stats
When using DIRDEPS_BUILD we normally get stats as each dir finishes.
This upsets crunchen, so keep quiet when _RECURSING_CRUNCH is defined
2023-04-18 20:25:33 -07:00
Simon J. Gerraty
5ef0969e62 Handle libs that create linker scripts as libs
Eg ncurses creates libncursesw.ald
This is the only example so far, but if we are staging
handle it.

Reviewed by:	stevek
2023-04-18 20:22:13 -07:00
Simon J. Gerraty
cb05ce69c2 Ensure the stage_* targets we use exist 2023-04-18 20:19:11 -07:00
Simon J. Gerraty
9eaf82f27c dirdeps.mk guard against inclusion from Makefile.depend.options
A typo in Makefile.depend.options including dirdeps.mk rather than
dirdeps-options.mk can result in infinite recursion - don't let that happen.

Reviewed by:	stevek
2023-04-18 20:15:25 -07:00
Steve Kiernan
4e8b87afe0 Handle errors if WARNS is not defined.
One conditional outside of ifdef WARNS did not protect against an
unset WARNS. Default WARNS to 0 in conditional if not defined.

Obtained from:	Juniper Networks, Inc.
2023-04-18 13:18:01 -04:00
Stephen J. Kiernan
49b6bc83cc meta: print some additional variables on build errors.
Add CPUTYPE and MACHINE_CPUARCH to the list of variables printed
when there are build errors.

Protect local.sys.mk from multiple inclusion.

Reviewed by:	sjg
Obtained from:	Juniper Networks, Inc.
2023-04-18 01:30:34 -04:00
Stephen J. Kiernan
d664658015 meta: Allow TARGET_SPEC_VARS to be overridden
Reviewed by:	sjg
Obtained from:	Juniper Networks, Inc.
2023-04-18 00:25:59 -04:00
Simon J. Gerraty
c4c981c1e6 Move include of site.src.opts.mk to allow more control
Sometimes a site may have different policy needs,
include site.src.opts.mk just before bsd.mkopt.mk to allow
more control.

Reviewed by: imp
2023-04-17 10:44:37 -07:00
Dimitry Andric
2ba84b4bcd Suppress lld 16 errors about undefined symbols in version maps
lld >= 16 turned on --no-undefined-version by default, which results in
errors whenever symbols are mentioned in version maps, but are not
actually defined in the binary.

Since we have quite a few instances of symbols that are defined or not,
depending on various compile-time settings, suppress this lld check for
the time being.

MFC after:	1 week
2023-04-17 18:25:52 +02:00
Simon J. Gerraty
bf7aa99a55 Update meta mode makefiles
meta2deps - add checks to detect truncated/corrupted filemon data
(only known to happen on Linux hosts), to ensure we do not auto
update dependencies based on incomplete data.

meta.stage.mk adds STAGE_SHLIB_LINKS_FILTER and STAGE_LINK_AS_*

We also allow for hosts where egrep is deprecated for grep -E

Reviewed by: stevek
2023-04-16 18:40:53 -07:00
Simon J. Gerraty
a3d015bbf1 Update dirdeps.mk
Fix handling of local.dirdeps-missing.mk
we need to reset DEP_RELDIR and DIRDEPS just as if including
a Makefile.depend*

Also fix a typo in DIRDEP_LOADAVG_REPORT
and improve debug output.

Reviewed by: stevek
2023-04-16 18:17:26 -07:00
John Baldwin
1ca12bd927 Remove the riscv64sf architecture.
Reviewed by:	jrtc27, arichardson, br, kp, imp, emaste
Differential Revision:	https://reviews.freebsd.org/D39496
2023-04-12 11:09:27 -07:00
John Baldwin
cd800d3c96 Enable -Warray-parameter for clang.
I fixed many of these previously for GCC 12 and make tinderbox passes
with this enabled.

Differential Revision:	https://reviews.freebsd.org/D39378
2023-04-11 13:47:59 -07:00
John Baldwin
eeedaefab5 Remove LLVM build glue for MIPS as a native architecture.
This does not remove LLVM_TARGET_MIPS.  Note that the only
MACHINE_ARCH values ending in 'hf' were all MIPS architectures, hence
removing the pattern matches for 'hf'.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39331
2023-03-29 15:06:15 -07:00
Alexander V. Chernikov
a85dcd4ac4 netlink: restrict default userland switch to netlink to i386/amd64. 2023-03-26 11:06:53 +00:00
Alexander V. Chernikov
64dfea8651 netlink: add NETLINK/NETLINK_SUPPORT userland options.
Make userland tools such as netstat, route, arp and ndp use
 either netlink or rtsock interfaces based on the NETLINK_SUPPORT
 options.
Both NETLINK and NETLINK_SUPPORT options are turned on by default.

Reviewed By: eugen
Differential Revision: https://reviews.freebsd.org/D39148
2023-03-26 08:59:58 +00:00
Jessica Clarke
9e914c7af1 Add new DISK_IMAGE_TOOLS_BOOTSTRAP option
This will build etdump, makefs and mkimg as bootstrap tools to allow
easily creating disk images. Note that etdump is bootstrapped due to its
use in the release scripts for building ISO images.

Reviewed by:	emaste, arichardson
Differential Revision:	https://reviews.freebsd.org/D39072
2023-03-15 00:06:53 +00:00
Alfredo Dal'Ava Junior
63715498ac powerpc: enable ZFS on 32 bit powerpc/powerpcspe
Enable ZFS on powerpc 32 bit since it appears to build and work
correctly.

MFC after:	3 weeks
Relnotes:	yes
2023-03-12 03:20:11 -03:00
Warner Losh
3916fdd2f2 opts: fix silly typo
It's powerpcspe not powerpcspc

Pointy Hat To:		imp
Noticed by:		jhibbits
Fixes:			41cf798e82
Sponsored by:		Netflix
2023-03-10 09:00:38 -07:00
Warner Losh
41cf798e82 opts: popwerpcspc is also 32-bit
Mark ZFS broken here too, add comment about why.  Add comments about
OFED being disabled on 32-bit arm, add comment about why too.

Sponsored by:		Netflix
2023-03-10 08:49:04 -07:00
Warner Losh
9503d2704c opts: Minor cleanup of ZFS options
Remove redundant CPUARCH test: we really just want a plain MACHINE_ARCH
here.

Second, always turn off LOADER_ZFS when we turn off ZFS. Not 100%
required, but we did it some places and not others. There's no current
mechanism to say that if X is disabled then X_Y must be too.

Sponsored by:		Netflix
2023-03-10 07:14:04 -07:00
Brooks Davis
aad600e52e Remove WITH(OUT)_ATM option
With the removal of NgATM it no longer controls anything.

Reviewed by:	manu, emaste
Sponsored by:	DARPA
Differential Revision:	https://reviews.freebsd.org/D38882
2023-03-09 18:09:18 +00:00
John Baldwin
fe0f695039 Enable OFED on all platforms except for 32-bit arm.
32-bit arm triggers multiple -Wunaligned-access errors due to
structure packing.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D38972
2023-03-08 15:12:00 -08:00
Ed Maste
1a718f7a3b src.opts.mk: Remove long-unused NDIS option
NDIS was removed a couple of years ago, but the src.conf knob was left
behind.

Fixes: bfc99943b0 ("ndis(4): remove as previous announced")
Sponsored by: The FreeBSD Foundation
2023-03-07 15:39:44 -05:00
Ed Maste
7661a2abe4 src.opts.mk: sync FDT and OFED options with kern.opts.mk
Where options exist in both src.opts.mk and kern.opts.mk they should be
kept in sync.

It may be that the option should be flipped the other way (e.g.,
enabling OFED in the kernel on arm64); if so that will be done as a
subsequent commit after further testing.

PR:		269994
Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D38952
2023-03-07 13:40:18 -05:00
Vitaliy Gusev
cff4823804 bhyve: Move libcasper dependecy to lib9p
libcasper(3) is not used in bhyve. So move dependency to the appropriate
place.

Reviewed by:	markj
MFC after:	1 week
Sponsored by:	vStack
Differential Revision:	https://reviews.freebsd.org/D38905
2023-03-07 11:09:22 -05:00
Ed Maste
6e0a1438d8 src.opts.mk: mark ZFS broken on powerpc, matching kern.opts.mk
Where options exist in both src.opts.mk and kern.opts.mk they should be
kept in sync.

PR:		269994
Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D38935
2023-03-06 20:34:02 -05:00
Emmanuel Vadot
d43812b173 Disable ATM programs by default
ATM is an old technology, remove build of related programs by default

Sponsored by:	Beckhoff Automation GmbH & Co. KG
Differential Revision:	https://reviews.freebsd.org/D38844
Reviewed by:	brooks, imp, emaste
2023-03-03 08:52:35 +01:00
Warner Losh
55f35c5398 Use 'mixed' links for 'hard' links by default.
emaste suggested this in https://github.com/freebsd/freebsd-src/pull/133
and it works. It will do the right thing by default, and handle the weird
cases 133 was trying to fix.
2023-02-27 10:19:00 -07:00
Piotr Kubaj
e552cac3d7 powerpc64*: port mlx5, OFED, KTLS and krping
Summary:
This review ports mlx5 driver, kernel's OFED stack (userland is already enabled), KTLS and krping to powerpc64 and powerpc64le.

krping requires a small change since it uses assembly for amd64 / i386.

NOTE: On powerpc64le RDMA works fine in the userspace with libmlx5, but on powerpc64 it does not. The problem is that contrib/ofed/libmlx5/doorbell.h checks for SIZEOF_LONG but this macro exists on neither powerpc64* nor amd64. Thus, the file silently goes to the fallback function written for 32-bit architectures. It works fine on little-endian architectures, but causes a hard fail on big-endian. It's possible it may also cause some runtime issues on little-endian.
Thus, on powerpc64 I verified that RDMA works with krping.

Reviewers: #powerpc, hselasky

Subscribers: bdrewery, imp, emaste, jhibbits

Differential Revision: https://reviews.freebsd.org/D38786
2023-02-26 23:38:33 +01:00
Piotr Kubaj
f5a1c871e6 Revert "powerpc64*: port mlx5, OFED, KTLS and krping"
Wrong push, another commit was supposed to be pushed.

This reverts commit 83d6d8877e.
2023-02-26 00:57:41 +01:00
Piotr Kubaj
83d6d8877e powerpc64*: port mlx5, OFED, KTLS and krping
Summary:
This review ports mlx5 driver, kernel's OFED stack (userland is already enabled), KTLS and krping to powerpc64 and powerpc64le.

krping requires a small change since it uses assembly for amd64 / i386.

NOTE: On powerpc64le RDMA works fine in the userspace with libmlx5, but on powerpc64 it does not. The problem is that contrib/ofed/libmlx5/doorbell.h checks for SIZEOF_LONG but this macro exists on neither powerpc64* nor amd64. Thus, the file silently goes to the fallback function written for 32-bit architectures. It works fine on little-endian architectures, but causes a hard fail on big-endian. It's possible it may also cause some runtime issues on little-endian.
Thus, on powerpc64 I verified that RDMA works with krping.

Reviewers: #powerpc, hselasky

Subscribers: bdrewery, imp, emaste, jhibbits

Differential Revision: https://reviews.freebsd.org/D38786
2023-02-26 00:56:37 +01:00
Warner Losh
d04c86717c bsd.sys.mk: Add NO_WSTRICT_PROTOTYPES like in kernel
Also add NO_WSTRICT_PROTOTYPES like we do for the kernel.

Sponsored by:		Netflix
2023-02-19 00:02:12 -07:00
Warner Losh
3ae78d66d9 bsd.cpu.mk: Simplify armv[67] support
Drop a clause that's no longer relevant to v4/v5. Drop support for
softfloat for v[45]. Simplify soft float expression by assuming we're
always either armv6 or armv7.

Sponsored by:		Netflix
Reviewed by:		emaste
Differential Revision:	https://reviews.freebsd.org/D38584
2023-02-14 09:53:15 -07:00
Warner Losh
5c33688475 arm: Remove armv5 supprt
This can only be true on armv5, so we can GC it.

Sponsored by:		Netflix
Reviewed by:		fuz@fuz.su, brooks, emaste
Differential Revision:	https://reviews.freebsd.org/D38563
2023-02-14 09:48:37 -07:00
Emmanuel Vadot
0b8a2c744c pkgbase: Do not override packages for FILES
Not all FILES entries should end up in FreeBSD-utilities

Reviewed by:	bapt
Sponsored by:	Beckhoff Automation GmbH & Co. KG
Differential Revision:	https://reviews.freebsd.org/D38296
2023-02-08 08:50:16 +01:00
Warner Losh
4601064126 kboot: Enable for aarch64
Enable building loader.kboot for aarch64/arm64.

Sponsored by:		Netflix
Reviewed by:		tsoome, kevans, andrew
Differential Revision:	https://reviews.freebsd.org/D38262
2023-02-03 08:41:40 -07:00
Ed Maste
ac4c695ad6 Retire WITHOUT_CXX option
Several important base system components are written in C++, and the
WITHOUT_CXX option produced a system that was not fully functional.
Just accept this, and remove the option to build without C++ support.

This reverts commit adc3c128c6.

Reviewed by:	brooks, kevans, jhb (earlier)
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D33108
2023-01-26 21:13:16 -05:00
Simon J. Gerraty
e300f328fe Add site.{autodep,gendirdeps}.mk
Allow for site customization to minimize churn in share/mk

Reviewed by:	stevek
Sponsored by:	Juniper Networks, Inc.
Differential Revision:	https://reviews.freebsd.org/D37895
2022-12-28 12:39:08 -08:00
Dimitry Andric
526f57bf85 Update CWARNFLAGS in bsd.sys.mk and CWARNEXTRA in kern.mk for clang 15.
MFC after:	3 days
2022-12-25 12:58:22 +01:00
Simon J. Gerraty
073ccb9d55 Allow site.*.mk to augment local.*.mk and src.*.mk
Add some extra customization points so that FreeBSD build
can be adapted to local requirements.
We use these to minimize changes to share/mk

Reviewed by:	stevek
Sponsored by:	Juniper Networks, Inc.
Differential Revision:	https://reviews.freebsd.org/D37617
2022-12-07 11:30:35 -08:00
Simon J. Gerraty
48e733eef9 Add some more local.*.mk includes
These facilitate customizing the build with minimal churn.

Reviewed by:	stevek
Sponsored by:	Juniper Networks, Inc.
Differential Revision:	https://reviews.freebsd.org/D37592
2022-12-06 10:49:54 -08:00
John Baldwin
9134d9265c bsd.sys.mk: Add NO_WZERO_LENGTH_BOUNDS helper variable.
This variable expands to -Wno-zero-length-bounds on GCC 10+.

Reviewed by:	imp, emaste
Differential Revision:	https://reviews.freebsd.org/D37537
2022-12-04 16:29:55 -08:00
John Baldwin
ad96424e31 bsd.sys.mk: Add NO_WDANGLING_POINTER helper variable.
This variable expands to -Wno-dangling-pointer on GCC 12+.

Reviewed by:	imp, emaste
Differential Revision:	https://reviews.freebsd.org/D37532
2022-12-04 16:26:48 -08:00
John Baldwin
442295c1fe Silence GCC warnings when using libc++ headers.
GCC 12 raises warnings about literal operator suffixes not preceded by
'_' in libc++ headers such as <string_view> as it doesn't recognize
libc++ headers being an implementation of the standard.

GCC 12 also warns about clang-specific pragmas in <locale>.

Disabling these warnings globally for all C++ code is not ideal, but
is a better option than patching libc++ headers to ignore these
warnings.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D37530
2022-11-30 14:53:29 -08:00
Ed Maste
a8f92d247e Enable -Wdate-time warning
This produces an "expansion of date or time macro is not reproducible"
warning or error upon use of __DATE__ or __TIME__.

Provide NO_WDATE_TIME for ports or 3rd party software to opt out.

This is a recommit of 489d7a8528, which was reverted (by baf8cbcd97)
due to ports build failures.

PR:		267902 [exp-run]
Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D29580
2022-11-30 13:59:57 -05:00
Warner Losh
0ecb616196 clang: Define NO_WDEPRECATED_NON_PROTOTYPE for clang 15
Clang 15 enforces function definitions using the C89 form rather than
the K&R form. While not strictly a prototype (which is only for a
declaration), use the name that mirror's clang's warning name. Much code
in contrib still uses K&R function definitions, so invent this for
compiling there.

Sponsored by:		Netflix
Reviewed by:		jhb
Differential Revision:	https://reviews.freebsd.org/D37515
2022-11-30 11:08:44 -07:00
John Baldwin
5115511ed4 Use __freebsd_kprintf__ with GCC 12+ similar to clang. 2022-11-22 08:36:12 -08:00
Ed Maste
20a66ab4bf Retire CLANG_IS_CC option
A small reduction in build infrastructure complexity; when we had both
Clang and GCC in the tree it was useful to have both built, and choose
one or the other to install as /usr/bin/cc.  Now only Clang is in the
tree, and there is no point in building and installing base Clang but
not providing it as cc (and c++, cpp).

Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D37075
2022-11-21 14:56:13 -05:00
John Baldwin
adc3c128c6 src.opts.mk: Require C++20 for C++ support.
libc++ requires C++20, so mark C++ (MK_CXX) as broken if the compiler
does not support C++20.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D36893
2022-11-18 20:12:28 -08:00
John Baldwin
063b380f54 bsd.compiler.mk: Add a c++20 compiler feature.
This is enabled for clang versions 10+ and GCC versions 10+.

Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D36892
2022-11-18 20:11:59 -08:00
Warner Losh
8a744de27e stand: Remove i386-only support fire firewire
Remove support for booting off of firewire, and for having dcons via
firewire in the loader. Kernel support for these things is unchanged.
Discussed on arch@ and the current state is not working (and the build
was wrong to boot).

Sponsored by:		Netflix
Discussed:		https://lists.freebsd.org/archives/freebsd-arch/2022-November/000267.html
Reviewed by:		kevans, melifaro, emaste
Differential Revision:	https://reviews.freebsd.org/D37334
2022-11-18 10:43:59 -07:00
John Baldwin
f53dc31bb3 src.opts.mk: Disable all of LLVM if C++ support is disabled.
Reviewed by:	imp, emaste
Differential Revision:	https://reviews.freebsd.org/D36891
2022-11-15 19:21:20 -08:00
Gordon Bergling
d835a2f8be bsd.sanitizer.mk: Fix a typo in a comment
- s/santizers/sanitizers/

MFC after:	3 days
2022-11-01 09:18:34 +01:00
Warner Losh
c07be2c53e make: Don't print as many ==> and -- xxx -- lines in meta mode
Since metamode just announces what it's doing, the extra -- xxx -- lines
aren't needed for recursive descent, nor are the ==> lines needed. This
speeds up rebuilding kernels a lot...

Sponsored by:		Netflix
Reviewed by:		sjg, bdrewery
Differential Revision:	https://reviews.freebsd.org/D37071
2022-10-29 10:13:54 -06:00
Souradeep Chakrabarti
9729f076e4 arm64: Hyper-V: enablement for ARM64 in Hyper-V (Part 3, final)
This is the last part for ARM64 Hyper-V enablement. This includes
commone files and make file changes to enable the ARM64 FreeBSD
guest on Hyper-V. With this patch, it should be able to build
the ARM64 image and install it on Hyper-V.

Reviewed by:	emaste, andrew, whu
Tested by:	Souradeep Chakrabarti <schakrabarti@microsoft.com>
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D36744
2022-10-27 13:53:22 +00:00
Brooks Davis
426fc376af bsd.cpu.mk: Introduce MACHINE_ABI
MACHINE_ABI is a list of properties of the ABI used for MACHINE_ARCH.
It should be used in place of long conditionals on MACHINE_ARCH where
practical.

The following properties are indicated with one of the follow values:

Byte order:                  big-endian, little-endian
Floating point ABI:          soft-float, hard-float
Size of long (size_t, etc):  long32, long64
Pointer type:                ptr32, ptr64
Size of time_t:              time32, time64

For example, i386 targets will be:
MACHINE_ABI=	big-endian hard-float long32 ptr32 time32

Reviewed by:	imp
Obtained from:	CheriBSD
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D36421
2022-10-05 17:27:44 +01:00
John Baldwin
67b0751249 bsd.sys.mk: Add NO_WUSE_AFTER_FREE helper variable.
This variable expands to -Wno-use-after-free on GCC 12+.

Reviewed by:	imp, emaste
Differential Revision:	https://reviews.freebsd.org/D36817
2022-10-03 16:10:42 -07:00
Dag-Erling Smørgrav
0aa2700123 Put OPIE to rest.
Differential Revision: https://reviews.freebsd.org/D36592
2022-10-02 03:37:29 +02:00
John Baldwin
409dae262f bsd.sys.mk: Add NO_WARRAY_PARAMETER helper variable.
This variable expands to -Wno-array-parameter on GCC 11+.

Reviewed by:	imp, emaste
Differential Revision:	https://reviews.freebsd.org/D36756
2022-09-28 14:01:04 -07:00
Gordon Bergling
8dcfb0282d mk: Remove a double word in a comment
- s/to to/to/

MFC after:	3 days
2022-09-10 12:57:55 +02:00
Gleb Popov
20adba8bc1 src.conf: Introduce WITHOUT_MACHDEP knob.
Summary:
This knob can be used to make buildsystem prefer generic C implentations of
various functions, instead of machine-specific assembler ones.

Test Plan: `make buildworld` on amd64

Reviewed by: imp, emaste

Differential Revision: https://reviews.freebsd.org/D36076

MFC after:	3 days
2022-09-09 09:54:28 +03:00
Xin LI
4385a9f851 Fix build.
Pointy hat to:	delphij
MFC after:	2 weeks
X-MFC-with:	c65e42dbde
2022-09-06 23:41:10 -07:00
Xin LI
c65e42dbde libc: add test case for qsort_b(3)
Reviewed by: 	markj
MFC after:	2 weeks
Differential Revision: https://reviews.freebsd.org/D36463
2022-09-06 23:11:46 -07:00
Alex Richardson
ac175bd33a Install working pkgconfig .pc files for compat libraries
The default ones are install them to /usr/libdata/pkgconfig, and we can't
use this path for compat libraries, so we use /usr/lib<suffix>/pkgconfigi here.

Test Plan:	grep -rn libdir= ./usr/lib32/pkgconfig/*.pc
MFC after:	1 week
Differential Revision: https://reviews.freebsd.org/D34939
2022-08-11 23:18:34 +01:00
Brooks Davis
0c8ff61ee1 src.libnames.mk: NEED/WANT_COMPAT+static support
Look in _LIB_OBJTOP for all static libraries not just INTERNALLIBs. In
normal operation this is a no-op, but improves the consistency of this
file.

Reviewed by:	imp, jhb
Obtained from:	CheriBSD
Differential Revision:	https://reviews.freebsd.org/D35822
2022-07-28 18:55:01 +01:00
Jessica Clarke
fcf1208158 Makefile.inc1 release bsd.own.mk: Introduce and use TAR_CMD
Our uses of tar rely on BSDisms, and so do not work in environments
where GNU tar is the default tar. Providing a TAR_CMD variable like
some other commands allows it to be overridden to use bsdtar in such
cases.

Reviewed by:	brooks, delphij, gjb
Obtained from:	CheriBSD
Differential Revision:	https://reviews.freebsd.org/D35813
2022-07-15 23:04:34 +01:00
Xin LI
0bbf270296 libproc: replace home grown crc32 with zlib implementation.
MFC after:	2 weeks
Reviewed by:	markj
Differential Revision: https://reviews.freebsd.org/D35766
2022-07-10 16:31:35 -07:00
Brooks Davis
3bf6636512 cddl/*: add a WITH(OUT)_DTRACE option
Add an option to enable/disable DTrace without disabling ZFS.  New
architectures such as CHERI may support ZFS before they support DTrace
and the old model of WITHOUT_CDDL disabling both wasn't helpful.

For compatiblity, the CDDL option remains and WITHOUT_CDDL implies
WITHOUT_DTRACE.  WITHOUT_DTRACE also implies WITHOUT_CTF.

As part of this change, largely convert cddl/*/Makefile to using the
more compact SUBDIR.${MK_<FOO>}+= form rather than using intermediate
variables.

Reviewed by:	markj
Obtained from:	CheriBSD
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D35718
2022-07-06 14:03:48 +01:00
Brooks Davis
724123b9f4 libcompat: Use WORLDTMP sysroot
Now that -m32 is fixed, just install libs in ${WORLDTMP}/lib/lib32
and use the installed headers.

Reviewed by:	imp, jhb
Obtained from:	CheriBSD
Differential Revision:	https://reviews.freebsd.org/D34697
2022-07-01 08:33:16 +01:00
Jessica Clarke
4ca6ecf100 Really fix cross-builds from macOS
LINKER_TYPE is set to mac not macos on macOS.

Fixes:	7927452ac4 ("Add RELRO build knob, default to enabled")
2022-06-30 22:08:31 +01:00
Ed Maste
7927452ac4 Fix cross-builds from macOS
The macOS linker does not support -zrelro/-znorelro.  Since it is only
used to for build tools that run on the host, and WITH_RELRO or
WITHOUT_RELRO does not matter there, just skip the option.

Reviewed by:	markj
Fixes:		2f3a961487 ("Add RELRO build knob, default to enabled")
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D35589
2022-06-27 10:22:12 -04:00
Alexander V. Chernikov
924226fba1 testing: move atf-pytest-wrapper to /usr/libexec
Move pytest wrapper to the collection of the other atf wrappers
 in libexec. It solves the problem of combining bits & pieces from
 bsd.test.mk and bgs.prog.mk to address "test binary, but not the
 suite binary".

Reviewed by:	kp
Differential Revision: https://reviews.freebsd.org/D35604
MFC after:	2 weeks
2022-06-26 13:25:47 +00:00
Alexander V. Chernikov
8eb2bee6c0 testing: Add basic atf support to pytest.
Implementation consists of the pytest plugin implementing ATF format and
a simple C++ wrapper, which reorders the provided arguments from ATF format
to the format understandable by pytest. Each test has this wrapper specified
after the shebang. When kyua executes the test, wrapper calls pytest, which
loads atf plugin, does the work and returns the result. Additionally, a
separate python "package", `/usr/tests/atf_python` has been added to collect
code that may be useful across different tests.

Current limitations:
* Opaque metadata passing via X-Name properties. Require some fixtures to write
* `-s srcdir` parameter passed by the runner is ignored.
* No `atf-c-api(3)` or similar - relying on pytest framework & existing python libraries
* No support for `atf_tc_<get|has>_config_var()` & `atf_tc_set_md_var()`.
 Can be probably implemented with env variables & autoload fixtures

Differential Revision: https://reviews.freebsd.org/D31084
Reviewed by:	kp, ngie
2022-06-25 19:25:15 +00:00