Discussion:
Issues building FreeBSD-current (head f9668e4)
jake h
2021-04-28 11:39:39 UTC
Permalink
Hey everyone,
I have been having some issues building FreeBSD-current from src, on
freebsd-13 (build 1300500). It appears to stem from several files compiling
with -Werror , despite my specification in make.conf of -Wno-error . As
these files then have warnings, the make kernel exits. A log of the error
is attached.
System info:
Current version: 13.0 - STABLE, build 1300500
make.conf: CFLAGS= -Wall -Wextra -Wno-error
Attempting to update to: 14-CURRENT (Git head f8668e4)

Thanks in advance for any help you can provide,
Jake
Mark Millard via freebsd-hackers
2021-04-28 20:57:18 UTC
Permalink
Post by jake h
Hey everyone,
I have been having some issues building FreeBSD-current from src, on
freebsd-13 (build 1300500). It appears to stem from several files compiling
with -Werror , despite my specification in make.conf of -Wno-error . As
these files then have warnings, the make kernel exits. A log of the error
is attached.
Current version: 13.0 - STABLE, build 1300500
make.conf: CFLAGS= -Wall -Wextra -Wno-error
Attempting to update to: 14-CURRENT (Git head f8668e4)
Your use of the number from sys/sys/param.h :

#define __FreeBSD_version 1300500 /* Master, propagated to newvers */

is a bit problematical and does not identify a specific
build or a specific commit. It would be incremented
for any addition to the kernel Application Binary
Interface, for example, but is left unchanged by most
development activity.

The 1300500 number was established in:

author Glen Barber <***@FreeBSD.org> 2021-02-05 16:38:27 +0000
committer Glen Barber <***@FreeBSD.org> 2021-02-05 16:38:27 +0000
commit 3c6a89748a01869c18955d5e3bfcdf35f6705d26 (patch)

The next change to the figure was 2 months later, in:

author Konstantin Belousov <***@FreeBSD.org> 2021-04-05 03:05:44 +0000
committer Konstantin Belousov <***@FreeBSD.org> 2021-04-23 11:14:06 +0000
commit c3f97dd75a1c294c4f60f42b604ee8bcda17be09 (patch)

It was changed to be:

#define __FreeBSD_version 1300501 /* Master, propagated to newvers */

All builds of any commit on the stable/13 branch between
those use the 1300500 number. (On 2021-04-26 it was updated
again, this time to 1300502 .)

As for disabling treating things as errors . . .

"man src.conf" reports, in part,

WITHOUT_WARNS
Set this to not add warning flags to the compiler invocations.
Useful as a temporary workaround when code enters the tree which
triggers warnings in environments that differ from the original
developer.

WITHOUT_WERROR
Set this to not treat compiler warnings as errors. Useful as a
temporary workaround when working on fixing compiler warnings.
When set, warnings are still printed in the build log but do not
fail the build.

Direct manipulation of CFLAGS for this is not recommended
and various Makefile contents may override the attempt to
control CFLAGS (or part of its content).

Other difficulties with having context to provide help
. . .

You did not include the text of the specific commands in the
build that generated the output that you provided.

My recent build of main (so: 14) was as of commit 1b00608b264f .
The buildworld buildkernel sequence worked but was based on
building from an environment running based on releng/13.0's
release/13.0.0commit instead of on a stable/13 commit:

# uname -apKU
FreeBSD CA72_4c8G_ZFS 13.0-RELEASE FreeBSD 13.0-RELEASE #1 releng/13.0-n244733-ea31abc261ff-dirty: Wed Apr 28 05:45:27 PDT 2021 ***@CA72_4c8G_ZFS:/usr/obj/BUILDs/13_0R-CA72-nodbg-clang/usr/src/arm64.aarch64/sys/GENERIC-NODBG-CA72 arm64 aarch64 1300139 1300139

But I can not even tell the relationship of 1b00608b264f to
what you tried to build:

https://cgit.freebsd.org/src/log/?qt=range&q=f8668e4

reports no match for your "Git head f8668e4". Nor does:

https://github.com/freebsd/freebsd-src/commit/f8668e4

find a match.

For reference, for the main (so: 14) that I built . . .

# ~/fbsd-based-on-what-freebsd.sh
branch: main
merge-base: 1b00608b264f1fac846e571e23d8ef7134834638
merge-base: CommitDate: 2021-04-27 19:18:13 +0000
1b00608b264f (HEAD -> main, freebsd/main, freebsd/HEAD) Merge llvm commits for kernel address and memory sanitizer support
n246360 (--first-parent --count for merge-base)

and for what produced that output:

# more ~/fbsd-based-on-what-freebsd.sh
#! /bin/sh
branch="`git branch --show-current`" \
&& echo "branch: $branch" \
&& base="`git merge-base freebsd/$branch HEAD`" \
&& git log --oneline --no-color $base..HEAD \
&& base_date="`TZ=UTC git log --format=fuller --date=iso-local --no-color $base^..$base | grep CommitDate:`" \
&& echo "merge-base: $base" \
&& echo "merge-base: $base_date" \
&& git log --oneline --no-color $base^..$base \
&& echo "n`git rev-list --first-parent --count $base` (--first-parent --count for merge-base)"

When booted uname -apKU reports for the installed main build:

# uname -apKU
FreeBSD CA72_4c8G_ZFS 14.0-CURRENT FreeBSD 14.0-CURRENT #0 main-n246360-1b00608b264f-dirty: Wed Apr 28 01:22:56 PDT 2021 ***@CA72_4c8G_ZFS:/usr/obj/BUILDs/main-CA72-nodbg-clang/usr/src/arm64.aarch64/sys/GENERIC-NODBG-CA72 arm64 aarch64 1400012 1400012

===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
Mark Millard via freebsd-hackers
2021-04-28 21:13:15 UTC
Permalink
Post by Mark Millard via freebsd-hackers
Post by jake h
Hey everyone,
I have been having some issues building FreeBSD-current from src, on
freebsd-13 (build 1300500). It appears to stem from several files compiling
with -Werror , despite my specification in make.conf of -Wno-error . As
these files then have warnings, the make kernel exits. A log of the error
is attached.
Current version: 13.0 - STABLE, build 1300500
make.conf: CFLAGS= -Wall -Wextra -Wno-error
Attempting to update to: 14-CURRENT (Git head f8668e4)
#define __FreeBSD_version 1300500 /* Master, propagated to newvers */
is a bit problematical and does not identify a specific
build or a specific commit. It would be incremented
for any addition to the kernel Application Binary
Interface, for example, but is left unchanged by most
development activity.
commit 3c6a89748a01869c18955d5e3bfcdf35f6705d26 (patch)
commit c3f97dd75a1c294c4f60f42b604ee8bcda17be09 (patch)
#define __FreeBSD_version 1300501 /* Master, propagated to newvers */
All builds of any commit on the stable/13 branch between
those use the 1300500 number. (On 2021-04-26 it was updated
again, this time to 1300502 .)
As for disabling treating things as errors . . .
"man src.conf" reports, in part,
WITHOUT_WARNS
Set this to not add warning flags to the compiler invocations.
Useful as a temporary workaround when code enters the tree which
triggers warnings in environments that differ from the original
developer.
WITHOUT_WERROR
Set this to not treat compiler warnings as errors. Useful as a
temporary workaround when working on fixing compiler warnings.
When set, warnings are still printed in the build log but do not
fail the build.
Direct manipulation of CFLAGS for this is not recommended
and various Makefile contents may override the attempt to
control CFLAGS (or part of its content).
Other difficulties with having context to provide help
. . .
You did not include the text of the specific commands in the
build that generated the output that you provided.
My recent build of main (so: 14) was as of commit 1b00608b264f .
The buildworld buildkernel sequence worked but was based on
building from an environment running based on releng/13.0's
# uname -apKU
But I can not even tell the relationship of 1b00608b264f to
https://cgit.freebsd.org/src/log/?qt=range&q=f8668e4
https://github.com/freebsd/freebsd-src/commit/f8668e4
find a match.
Ahh, I see the subject line lists f9668e4 instead.

That is 8 commits more recent than what I built (as
reported in my initial reply and shown again later
below):

https://cgit.freebsd.org/src/log/?qt=range&q=f9668e4 reports
(in part) . . .

Commit message (Expand) Author Age Files Lines
* Add rib_walk_from() wrapper for selective rib tree traversal. Alexander V. Chernikov 13 hours 2 -0/+38
* cxgbe(4): Add support for NIC suspend/resume and live reset. Navdeep Parhar 15 hours 6 -306/+1393
* geom_uzip(4): fix a typo Ceri Davies 16 hours 1 -3/+3
* nfscl: add check for NULL clp and forced dismounts to nfscl_delegreturnvp() Rick Macklem 21 hours 2 -3/+12
* nfsd: fix a NFSv4.1 Linux client mount stuck in CLOSE_WAIT Rick Macklem 23 hours 1 -0/+5
* e1000: Rework em_msi_link interrupt filter Kevin Bowling 23 hours 2 -18/+24
* [fib algo] Delay algo init at fib growth to to allow to reliably use rib KPI. Alexander V. Chernikov 23 hours 3 -33/+76
* riscv: Remove old qemu compatibility code Brandon Bergren 24 hours 2 -113/+0
* Merge llvm commits for kernel address and memory sanitizer support Dimitry Andric 26 hours 2 -4/+14

None of that looks like it should make a difference
vs. my buildworld buildkernel .
Post by Mark Millard via freebsd-hackers
For reference, for the main (so: 14) that I built . . .
# ~/fbsd-based-on-what-freebsd.sh
branch: main
merge-base: 1b00608b264f1fac846e571e23d8ef7134834638
merge-base: CommitDate: 2021-04-27 19:18:13 +0000
1b00608b264f (HEAD -> main, freebsd/main, freebsd/HEAD) Merge llvm commits for kernel address and memory sanitizer support
n246360 (--first-parent --count for merge-base)
# more ~/fbsd-based-on-what-freebsd.sh
#! /bin/sh
branch="`git branch --show-current`" \
&& echo "branch: $branch" \
&& base="`git merge-base freebsd/$branch HEAD`" \
&& git log --oneline --no-color $base..HEAD \
&& base_date="`TZ=UTC git log --format=fuller --date=iso-local --no-color $base^..$base | grep CommitDate:`" \
&& echo "merge-base: $base" \
&& echo "merge-base: $base_date" \
&& git log --oneline --no-color $base^..$base \
&& echo "n`git rev-list --first-parent --count $base` (--first-parent --count for merge-base)"
# uname -apKU
It still appears that the basic information required
to identify the issue in your context is likely missing.


===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)

Loading...