Date: Sat, 1 Nov 2025 11:59:10 -0700 From: Mark Millard <marklmi@yahoo.com> To: Adrian Chadd <adrian@freebsd.org> Cc: bob prohaska <fbsd@www.zefox.net>, freebsd-arm@freebsd.org, freebsd-current@freebsd.org Subject: Re: Buildkernel fails in /usr/obj/usr/src/arm.armv7/sys/GENERIC/vchiq_shim.o Message-ID: <0D2F1D4A-3ED7-4BFF-88C8-24ED17556DF4@yahoo.com> In-Reply-To: <10F4DDD5-93CE-4DAC-B11D-44BF2F53C618@yahoo.com> References: <aQYkxXD74zoukc0F@www.zefox.net> <CAJ-VmokLWxBfHM7TNE8jXx8kXTvYpdUnfE28VxFggFJkaD635A@mail.gmail.com> <B97BAB7E-911B-4ECF-9956-93C2C9BD0AFE@yahoo.com> <CAJ-VmoktvOCA0s2Eww1p9Pziku%2BpFG6EkTx_H72Vq_Du%2BRPmLQ@mail.gmail.com> <29BBF0CD-763D-4818-80F5-E8CEDF3136B9@yahoo.com> <10F4DDD5-93CE-4DAC-B11D-44BF2F53C618@yahoo.com>
index | next in thread | previous in thread | raw e-mail
On Nov 1, 2025, at 11:26, Mark Millard <marklmi@yahoo.com> wrote: > On Nov 1, 2025, at 10:45, Mark Millard <marklmi@yahoo.com> wrote: > >> On Nov 1, 2025, at 10:22, Adrian Chadd <adrian@freebsd.org> wrote: >> >>> Here's my suggested solution: >>> >>> === >>> diff --git a/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c b/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c >>> index 96c3a0db8aa5..7e105a6b3b77 100644 >>> --- a/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c >>> +++ b/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c >>> @@ -628,7 +628,9 @@ free_pagelist(BULKINFO_T *bi, int actual) >>> pagelist = bi->pagelist; >>> >>> vchiq_log_trace(vchiq_arm_log_level, >>> - "free_pagelist - %zx, %d (%u bytes @%p)", (size_t)pagelist, actual, pagelist->length, bi->buf); >>> + "free_pagelist - %zx, %d (%lu bytes @%p)", >>> + (size_t)pagelist, (int)actual, (unsigned long)pagelist->length, >>> + bi->buf); >>> >>> num_pages = >>> (pagelist->length + pagelist->offset + PAGE_SIZE - 1) / >>> === >>> >>> The code /is/ being compiled on my arm64 and armv7 builds, I verified this by using #error in this source file. But the format strings aren't eliciting a type violation when I cross compile. >> >> The CI builds are on the likes of butler4.nyi.freebsd.org which >> are amd64 as far as I know: also cross builds. >> >> The CI build infrastructure may be public enough to check for if >> anything special is specified for those builds. For example, I do >> not know if they use /dev/null or empty files relative to the >> likes of environment variables: >> >> __MAKE_CONF >> SRCCONF >> SRC_ENV_CONF >> >> or what the related file content might be like otherwise. > > In: > > https://ci.freebsd.org/job/FreeBSD-main-armv7-build/26181/consoleFull > > I see: > > . . . > export 'MAKEOBJDIRPREFIX=/workspace/obj' > rm -fr /workspace/obj > . . . > sudo make -j 12 -DWITHOUT_CLEAN buildworld 'TARGET=arm' 'TARGET_ARCH=armv7' '__MAKE_CONF=/workspace/freebsd-ci/jobs/FreeBSD-main-armv7-build/make.conf' 'SRCCONF=/dev/null' > . . . > sudo make -j 12 -DWITHOUT_CLEAN buildkernel 'TARGET=arm' 'TARGET_ARCH=armv7' '__MAKE_CONF=/workspace/freebsd-ci/jobs/FreeBSD-main-armv7-build/make.conf' 'SRCCONF=/dev/null' > . . . > > In: > > https://github.com/freebsd/freebsd-ci/blob/main/jobs/FreeBSD-main-armv7-build/make.conf > > I see just: > > QUOTE > KERNCONF=GENERIC GENERIC-MMCCAM > END QUOTE > > I do not see anything explicit related to what SRC_ENV_CONF is for > binding to, so a default context for that binding. Looking at the official CI build log, I see: cc -target armv7-gnueabihf-freebsd16.0 --sysroot=/usr/obj/usr/src/arm.armv7/tmp -B/usr/obj/usr/src/arm.armv7/tmp/usr/bin -c -O2 -pipe -fno-strict-aliasing -g -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -I/usr/src/sys/contrib/libfdt -I/usr/src/sys/contrib/device-tree/include -I/usr/src/sys/dts/include -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -march=armv7a -DLINUX_DTS_VERSION=\""6.12"\" -funwind-tables -MD -MF.depend.vchiq_kmod.o -MTvchiq_kmod.o -fdebug-prefix-map=./machine=/usr/src/sys/arm/include -ffreestanding -fwrapv -fstack-protector -gdwarf-4 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wswitch -Wno-error=tautological-compare -Wno-error=empty-body -Wno-error=parentheses-equality -Wno-error=unused-function -Wno-error=pointer-sign -Wno-error=shift-negative-value -Wno-address-of-packed-member -Wno-format-zero-length -mfpu=none -std=gnu17 -Werror /usr/src/sys/contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I/usr/src/sys/contrib/vchiq It appears that the -Werror is from: /usr/src/sys/conf/kern.pre.mk:WERROR?= -Werror . . . /usr/src/sys/conf/kern.pre.mk:NORMAL_C= ${CC} -c ${CFLAGS} ${WERROR} ${.IMPSRC} via a: /usr/src/sys/arm/broadcom/bcm2835/files.bcm283x: compile-with "${NORMAL_C} -DUSE_VCHIQ_ARM -D__VCCOREVER__=0x04000000 -I$S/contrib/vchiq" In other words, the official build's WERROR contains -Werror . What do your build logs show for the compile of: /usr/src/sys/contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c ? It would appear that there is some prior definition of WERROR in your environment, such that "WERROR?= -Werror" would no-op and use your environment's definition instead. === Mark Millard marklmi at yahoo.comhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0D2F1D4A-3ED7-4BFF-88C8-24ED17556DF4>
