> > Stop building the kernel with -Wno-uninitialized on clang archs. > > This hides real problems like the recently fixed uninitialised memory > > use in pf and igc. > > > > [-Wsometimes-uninitialized] /sys/arch/arm/arm/cpu.c:352:6: warning: > > variable 'ci' is used uninitialized whenever 'if' condition is false > > [-Wsometimes-uninitialized] /sys/arch/arm64/arm64/cpu.c:613:6: warning: > > variable 'ci' is used uninitialized whenever 'if' condition is false > > [-Wsometimes-uninitialized] /sys/arch/riscv64/riscv64/cpu.c:169:6: warning: > > variable 'ci' is used uninitialized whenever 'if' condition is false > > [-Wsometimes-uninitialized] /tmp/src/sys/arch/powerpc/powerpc/trap.c:467:7: > > error: variable 'offset' is used uninitialized whenever 'if' condition is > > false > > [-Wuninitialized] /sys/arch/arm64/dev/acpiiort.c:174:28: warning: variable > > 'rid' is uninitialized when used here > > > > cpu.c warnings occur with MULTIPROCESSOR not defined > > powerpc trap.c occurs with DDB not defined > > > > patch to address these and remove the flag below > > acpiiort part from patrick@
On each of the following platforms, the kernel builds fine for me with this patch and the compilation shows none of the above warnings. i386 (ALIX.1E) amd64 (Thinkpad T400) arm64 (Raspberry Pi 3 and 4) armv7 (BeagleBone Black) macppc (Mac Mini 7447A) Jan > > Index: arch/amd64/conf/Makefile.amd64 > > =================================================================== > > RCS file: /cvs/src/sys/arch/amd64/conf/Makefile.amd64,v > > retrieving revision 1.121 > > diff -u -p -r1.121 Makefile.amd64 > > --- arch/amd64/conf/Makefile.amd64 12 Jul 2021 06:07:33 -0000 1.121 > > +++ arch/amd64/conf/Makefile.amd64 26 Nov 2021 04:54:10 -0000 > > @@ -48,7 +48,7 @@ INCLUDES= -nostdinc -I$S -I${.OBJDIR} -I > > CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -MD -MP \ > > -DCONFIG_DRM_AMD_DC_DCN3_0 > > CWARNFLAGS= -Werror -Wall -Wimplicit-function-declaration \ > > - -Wno-uninitialized -Wno-pointer-sign \ > > + -Wno-pointer-sign \ > > -Wframe-larger-than=2047 > > > > CMACHFLAGS= -mcmodel=kernel -mno-red-zone -mno-sse2 -mno-sse > > -mno-3dnow \ > > Index: arch/arm/arm/cpu.c > > =================================================================== > > RCS file: /cvs/src/sys/arch/arm/arm/cpu.c,v > > retrieving revision 1.55 > > diff -u -p -r1.55 cpu.c > > --- arch/arm/arm/cpu.c 25 Mar 2021 04:12:00 -0000 1.55 > > +++ arch/arm/arm/cpu.c 23 Nov 2021 00:19:43 -0000 > > @@ -349,14 +349,11 @@ cpu_attach(struct device *parent, struct > > __asm volatile("mrc p15, 0, %0, c0, c0, 5" : "=r"(mpidr)); > > KASSERT(faa->fa_nreg > 0); > > > > +#ifdef MULTIPROCESSOR > > if (faa->fa_reg[0].addr == (mpidr & MPIDR_AFF)) { > > ci = &cpu_info_primary; > > -#ifdef MULTIPROCESSOR > > ci->ci_flags |= CPUF_RUNNING | CPUF_PRESENT | CPUF_PRIMARY; > > -#endif > > - } > > -#ifdef MULTIPROCESSOR > > - else { > > + } else { > > ci = malloc(sizeof(*ci), M_DEVBUF, M_WAITOK | M_ZERO); > > cpu_info[dev->dv_unit] = ci; > > ci->ci_next = cpu_info_list->ci_next; > > @@ -364,6 +361,8 @@ cpu_attach(struct device *parent, struct > > ci->ci_flags |= CPUF_AP; > > ncpus++; > > } > > +#else > > + ci = &cpu_info_primary; > > #endif > > > > ci->ci_dev = dev; > > Index: arch/arm64/arm64/cpu.c > > =================================================================== > > RCS file: /cvs/src/sys/arch/arm64/arm64/cpu.c,v > > retrieving revision 1.58 > > diff -u -p -r1.58 cpu.c > > --- arch/arm64/arm64/cpu.c 23 Nov 2021 01:03:35 -0000 1.58 > > +++ arch/arm64/arm64/cpu.c 23 Nov 2021 01:28:26 -0000 > > @@ -604,20 +604,19 @@ cpu_attach(struct device *parent, struct > > { > > struct fdt_attach_args *faa = aux; > > struct cpu_info *ci; > > +#ifdef MULTIPROCESSOR > > uint64_t mpidr = READ_SPECIALREG(mpidr_el1); > > +#endif > > uint64_t id_aa64mmfr1, sctlr; > > uint32_t opp; > > > > KASSERT(faa->fa_nreg > 0); > > > > +#ifdef MULTIPROCESSOR > > if (faa->fa_reg[0].addr == (mpidr & MPIDR_AFF)) { > > ci = &cpu_info_primary; > > -#ifdef MULTIPROCESSOR > > ci->ci_flags |= CPUF_RUNNING | CPUF_PRESENT | CPUF_PRIMARY; > > -#endif > > - } > > -#ifdef MULTIPROCESSOR > > - else { > > + } else { > > ci = malloc(sizeof(*ci), M_DEVBUF, M_WAITOK | M_ZERO); > > cpu_info[dev->dv_unit] = ci; > > ci->ci_next = cpu_info_list->ci_next; > > @@ -625,6 +624,8 @@ cpu_attach(struct device *parent, struct > > ci->ci_flags |= CPUF_AP; > > ncpus++; > > } > > +#else > > + ci = &cpu_info_primary; > > #endif > > > > ci->ci_dev = dev; > > Index: arch/arm64/conf/Makefile.arm64 > > =================================================================== > > RCS file: /cvs/src/sys/arch/arm64/conf/Makefile.arm64,v > > retrieving revision 1.39 > > diff -u -p -r1.39 Makefile.arm64 > > --- arch/arm64/conf/Makefile.arm64 7 Jul 2021 02:38:21 -0000 1.39 > > +++ arch/arm64/conf/Makefile.arm64 26 Nov 2021 04:55:52 -0000 > > @@ -46,7 +46,7 @@ INCLUDES= -nostdinc -I$S -I${.OBJDIR} -I > > -I$S/dev/pci/drm/amd/display/dmub/inc > > CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -D__${_mach}__ -MD -MP > > CWARNFLAGS= -Werror -Wall -Wimplicit-function-declaration \ > > - -Wno-uninitialized -Wno-pointer-sign \ > > + -Wno-pointer-sign \ > > -Wno-constant-conversion -Wno-address-of-packed-member \ > > -Wframe-larger-than=2047 > > > > Index: arch/arm64/dev/acpiiort.c > > =================================================================== > > RCS file: /cvs/src/sys/arch/arm64/dev/acpiiort.c,v > > retrieving revision 1.4 > > diff -u -p -r1.4 acpiiort.c > > --- arch/arm64/dev/acpiiort.c 25 Jun 2021 17:41:22 -0000 1.4 > > +++ arch/arm64/dev/acpiiort.c 26 Nov 2021 05:02:21 -0000 > > @@ -169,13 +169,6 @@ acpiiort_device_map(struct aml_node *roo > > rid = map[i].output_base; > > break; > > } > > - > > - /* Mapping encodes number of IDs in the range minus one. */ > > - if (map[i].input_base <= rid && > > - rid <= map[i].input_base + map[i].number_of_ids) { > > - rid = map[i].output_base + (rid - map[i].input_base); > > - break; > > - } > > } > > > > /* No mapping found? Even weirder. */ > > Index: arch/armv7/conf/Makefile.armv7 > > =================================================================== > > RCS file: /cvs/src/sys/arch/armv7/conf/Makefile.armv7,v > > retrieving revision 1.50 > > diff -u -p -r1.50 Makefile.armv7 > > --- arch/armv7/conf/Makefile.armv7 16 May 2021 02:01:33 -0000 1.50 > > +++ arch/armv7/conf/Makefile.armv7 26 Nov 2021 04:55:07 -0000 > > @@ -24,7 +24,7 @@ _archdir?= $S/arch/${_arch} > > INCLUDES= -nostdinc -I$S -I. -I$S/arch > > CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -D__${_mach}__ -MD -MP > > CWARNFLAGS= -Werror -Wall -Wimplicit-function-declaration \ > > - -Wno-uninitialized -Wno-pointer-sign \ > > + -Wno-pointer-sign \ > > -Wno-constant-conversion -Wno-address-of-packed-member \ > > -Wframe-larger-than=2047 > > > > Index: arch/i386/conf/Makefile.i386 > > =================================================================== > > RCS file: /cvs/src/sys/arch/i386/conf/Makefile.i386,v > > retrieving revision 1.140 > > diff -u -p -r1.140 Makefile.i386 > > --- arch/i386/conf/Makefile.i386 28 Jan 2021 17:39:03 -0000 1.140 > > +++ arch/i386/conf/Makefile.i386 26 Nov 2021 04:56:08 -0000 > > @@ -26,8 +26,8 @@ INCLUDES= -nostdinc -I$S -I${.OBJDIR} -I > > -I$S/dev/pci/drm/include/uapi \ > > -I$S/dev/pci/drm/i915 > > CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -MD -MP > > -CWARNFLAGS= -Werror -Wall -Wimplicit-function-declaration \ > > - -Wno-uninitialized -Wno-pointer-sign \ > > +CWARNFLAGS= -Wall -Wimplicit-function-declaration \ > > + -Wno-pointer-sign \ > > -Wframe-larger-than=2047 > > > > CMACHFLAGS= > > Index: arch/loongson/conf/Makefile.loongson > > =================================================================== > > RCS file: /cvs/src/sys/arch/loongson/conf/Makefile.loongson,v > > retrieving revision 1.80 > > diff -u -p -r1.80 Makefile.loongson > > --- arch/loongson/conf/Makefile.loongson 28 Jan 2021 17:39:03 -0000 > > 1.80 > > +++ arch/loongson/conf/Makefile.loongson 26 Nov 2021 04:57:20 -0000 > > @@ -33,7 +33,7 @@ INCLUDES= -nostdinc -I$S -I${.OBJDIR} -I > > -I$S/dev/pci/drm/include/uapi > > CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -D__${_mach}__ -MD -MP > > CWARNFLAGS= -Werror -Wall -Wimplicit-function-declaration \ > > - -Wno-uninitialized -Wno-pointer-sign \ > > + -Wno-pointer-sign \ > > -Wframe-larger-than=2047 > > > > CMACHFLAGS= -mno-abicalls ${ABI} -msoft-float > > -Wa,-mfix-loongson2f-btb -G 0 > > Index: arch/macppc/conf/Makefile.macppc > > =================================================================== > > RCS file: /cvs/src/sys/arch/macppc/conf/Makefile.macppc,v > > retrieving revision 1.102 > > diff -u -p -r1.102 Makefile.macppc > > --- arch/macppc/conf/Makefile.macppc 10 May 2021 17:29:41 -0000 > > 1.102 > > +++ arch/macppc/conf/Makefile.macppc 26 Nov 2021 04:58:37 -0000 > > @@ -26,7 +26,7 @@ INCLUDES= -nostdinc -I$S -I${.OBJDIR} -I > > -I$S/dev/pci/drm/include/uapi > > CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -D__${_mach}__ -MD -MP > > CWARNFLAGS= -Werror -Wall -Wimplicit-function-declaration \ > > - -Wno-main -Wno-uninitialized -Wno-pointer-sign \ > > + -Wno-main -Wno-pointer-sign \ > > -Wframe-larger-than=2047 > > > > CMACHFLAGS= -msoft-float > > Index: arch/octeon/conf/Makefile.octeon > > =================================================================== > > RCS file: /cvs/src/sys/arch/octeon/conf/Makefile.octeon,v > > retrieving revision 1.58 > > diff -u -p -r1.58 Makefile.octeon > > --- arch/octeon/conf/Makefile.octeon 6 Feb 2021 09:31:47 -0000 > > 1.58 > > +++ arch/octeon/conf/Makefile.octeon 26 Nov 2021 04:57:30 -0000 > > @@ -31,7 +31,7 @@ _archdir?= $S/arch/${_arch} > > INCLUDES= -nostdinc -I$S -I${.OBJDIR} -I$S/arch > > CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -D__${_mach}__ -MD -MP > > CWARNFLAGS= -Werror -Wall -Wimplicit-function-declaration \ > > - -Wno-uninitialized -Wno-pointer-sign \ > > + -Wno-pointer-sign \ > > -Wframe-larger-than=2047 > > > > CMACHFLAGS= -mno-abicalls ${ABI} -msoft-float -G 0 > > Index: arch/powerpc/powerpc/trap.c > > =================================================================== > > RCS file: /cvs/src/sys/arch/powerpc/powerpc/trap.c,v > > retrieving revision 1.121 > > diff -u -p -r1.121 trap.c > > --- arch/powerpc/powerpc/trap.c 20 May 2021 12:34:35 -0000 1.121 > > +++ arch/powerpc/powerpc/trap.c 23 Nov 2021 00:42:09 -0000 > > @@ -461,13 +461,14 @@ brain_damage: > > /* set up registers */ > > db_save_regs(frame); > > db_find_sym_and_offset(frame->srr0, &name, &offset); > > -#else > > - name = NULL; > > -#endif > > if (!name) { > > name = "0"; > > offset = frame->srr0; > > } > > +#else > > + name = "0"; > > + offset = frame->srr0; > > +#endif > > panic("trap type %x srr1 %x at %x (%s+0x%lx) lr %lx", > > type, frame->srr1, frame->srr0, name, offset, frame->lr); > > > > Index: arch/powerpc64/conf/Makefile.powerpc64 > > =================================================================== > > RCS file: /cvs/src/sys/arch/powerpc64/conf/Makefile.powerpc64,v > > retrieving revision 1.10 > > diff -u -p -r1.10 Makefile.powerpc64 > > --- arch/powerpc64/conf/Makefile.powerpc64 7 Jul 2021 02:38:21 -0000 > > 1.10 > > +++ arch/powerpc64/conf/Makefile.powerpc64 26 Nov 2021 04:59:19 -0000 > > @@ -46,7 +46,7 @@ INCLUDES= -nostdinc -I$S -I${.OBJDIR} -I > > -I$S/dev/pci/drm/amd/display/dmub/inc > > CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -MD -MP > > CWARNFLAGS= -Werror -Wall -Wimplicit-function-declaration \ > > - -Wno-uninitialized -Wno-pointer-sign \ > > + -Wno-pointer-sign \ > > -Wno-constant-conversion -Wno-address-of-packed-member \ > > -Wframe-larger-than=2047 > > > > Index: arch/riscv64/conf/Makefile.riscv64 > > =================================================================== > > RCS file: /cvs/src/sys/arch/riscv64/conf/Makefile.riscv64,v > > retrieving revision 1.12 > > diff -u -p -r1.12 Makefile.riscv64 > > --- arch/riscv64/conf/Makefile.riscv64 29 Jun 2021 18:45:41 -0000 > > 1.12 > > +++ arch/riscv64/conf/Makefile.riscv64 26 Nov 2021 04:59:28 -0000 > > @@ -26,7 +26,7 @@ INCLUDES= -nostdinc -I$S -I${.OBJDIR} -I > > -I$S/dev/pci/drm/include/uapi > > CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -D__${_mach}__ -MD -MP > > CWARNFLAGS= -Werror -Wall -Wimplicit-function-declaration \ > > - -Wno-uninitialized -Wno-pointer-sign \ > > + -Wno-pointer-sign \ > > -Wno-constant-conversion -Wno-address-of-packed-member \ > > -Wframe-larger-than=2047 > > > > Index: arch/riscv64/riscv64/cpu.c > > =================================================================== > > RCS file: /cvs/src/sys/arch/riscv64/riscv64/cpu.c,v > > retrieving revision 1.11 > > diff -u -p -r1.11 cpu.c > > --- arch/riscv64/riscv64/cpu.c 24 Jul 2021 18:15:13 -0000 1.11 > > +++ arch/riscv64/riscv64/cpu.c 23 Nov 2021 00:21:26 -0000 > > @@ -166,15 +166,12 @@ cpu_attach(struct device *parent, struct > > > > KASSERT(faa->fa_nreg > 0); > > > > +#ifdef MULTIPROCESSOR > > if (faa->fa_reg[0].addr == boot_hart) { > > ci = &cpu_info_primary; > > -#ifdef MULTIPROCESSOR > > ci->ci_flags |= CPUF_RUNNING | CPUF_PRESENT | CPUF_PRIMARY; > > csr_set(sie, SIE_SSIE); > > -#endif > > - } > > -#ifdef MULTIPROCESSOR > > - else { > > + } else { > > ci = malloc(sizeof(*ci), M_DEVBUF, M_WAITOK | M_ZERO); > > cpu_info[dev->dv_unit] = ci; > > ci->ci_next = cpu_info_list->ci_next; > > @@ -182,6 +179,8 @@ cpu_attach(struct device *parent, struct > > ci->ci_flags |= CPUF_AP; > > ncpus++; > > } > > +#else > > + ci = &cpu_info_primary; > > #endif > > > > ci->ci_dev = dev; > > > > > >