Re: /usr/src/sys/dev/imcsmb/imcsmb_var.h:52:10: fatal error

From: Chris <bsd-lists_at_bsdforge.com>
Date: Thu, 17 Apr 2025 18:41:44 UTC
On 2025-04-17 00:19, Mark Millard wrote:
> [Note: Your Email handling rejects my Emails, probably
> because of Yahoo being involved.]
Looks like sonic317-22.consmr.mail.gq1.yahoo.com
Sorry. Looks like you were the victim of using the same IP
as a recent attacker. Filters against yahoo are short lived.
I've cleared it for you. :)

> 
> On Apr 16, 2025, at 23:46, Chris <bsd-lists@BSDforge.com> wrote:
> 
>> On 2025-04-16 22:40, Mark Millard wrote:
>>> Chris <bsd-lists_at_bsdforge.com>  wrote on
>>> Date: Thu, 17 Apr 2025 05:06:35 UTC :
>>>> In an attempt to take advantage of all the work
>>>> done on iwlwifi recently. I pulled a fresh copy of src
>>>> at:
>>>> commit b836c229aa5ac345114f5986b6034ad3ed760da1 (HEAD -> main, 
>>>> freebsd/main,
>>>> freebsd/HEAD)
>>>> Author: Andrew Gallatin <gallatin@FreeBSD.org>
>>>> Date: Tue Apr 15 19:37:06 2025 -0400
>>>> and proceeded to build world/kernel. The buildkernel stage
>>>> stopped at:
>>>> In file included from /usr/src/sys/dev/imcsmb/imcsmb.c:52:
>>>> /usr/src/sys/dev/imcsmb/imcsmb_var.h:52:10: fatal error: 'smbus_if.h' 
>>>> file
>>>> not found
>>>> 52 | #include "smbus_if.h"
>>>> 1 error generated.
>>>> I used the same kernconf I used for the kernel I'm using now.
>>>> A trip to /usr/src and a search with find(1) confirms the file doesn't
>>>> exist. How would I best proceed?
>>> I've no explicit use of such but when I looked on
>>> a system here, I found a imcsmb/smbus_if.h inside
>>> a build tree from a buildkernel :
>>> # find -s / -name smbus_if.h -print | grep imcsmb
>>> /usr/obj/BUILDs/main-ZNV4-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERIC-NODBG/modules/usr/main-src/sys/modules/i2c/controllers/imcsmb/smbus_if.h
>> Performing the same here returns nothing. In an effort to ensure adequate
>> space prior to the build. I clobbered /usr/obj. :(
> 
> Do you have any paths that involve:
> 
Thanks for all your work here, Mark.
I ran a grep -RF against /usr/src to get some clues. I discovered
much the same as you. It appears the missing file is created during
the build process. But apparently not, in my case.. I clobbered /usr/obj
after my last reply in hopes it was an incidental read/write hiccup.
But the build failed. While the missing file was reported as the cause.
The error was slightly different. At this point I'm inclined to simply
grab a fresh copy of src and try this again. I'll report my findings in
a couple/three hours when it should then be complete.

Thank you again, for all your time and efforts here!

--Chris
> sys/modules/i2c/controllers/imcsmb/
> 
> ? Do you have the likes of ( you likely
> have /usr/src/, not /usr/main-src/ ):
> 
> # more /usr/main-src/sys/modules/i2c/controllers/imcsmb/Makefile
> .PATH:          ${SRCTOP}/sys/dev/imcsmb
> KMOD            = imcsmb
> SRCS            = device_if.h bus_if.h pci_if.h smbus_if.h \
>                   imcsmb.c imcsmb_pci.c imcsmb_reg.h imcsmb_var.h
> 
> .include <bsd.kmod.mk>
> 
> # grep -rl imcsmb /usr/main-src/sys/ | more
> /usr/main-src/sys/modules/i2c/controllers/imcsmb/Makefile
> /usr/main-src/sys/modules/i2c/controllers/Makefile
> /usr/main-src/sys/x86/conf/NOTES
> /usr/main-src/sys/dev/imcsmb/imcsmb_reg.h
> /usr/main-src/sys/dev/imcsmb/imcsmb.c
> /usr/main-src/sys/dev/imcsmb/imcsmb_var.h
> /usr/main-src/sys/dev/imcsmb/imcsmb_pci.c
> /usr/main-src/sys/conf/files.x86
> 
> # grep imcsmb /usr/main-src/sys/x86/conf/NOTES 
> /usr/main-src/sys/conf/files.x86
> /usr/main-src/sys/x86/conf/NOTES:# imcsmb integrated Memory Controller (iMC) 
> SMBus
> controller
> /usr/main-src/sys/x86/conf/NOTES:device imcsmb
> /usr/main-src/sys/conf/files.x86:dev/imcsmb/imcsmb.c optional imcsmb
> /usr/main-src/sys/conf/files.x86:dev/imcsmb/imcsmb_pci.c optional imcsmb pci
> 
>>> (Some of the naming and upper-level path structure is
>>> unusual. See what is normal in your context.)
>>> So it appears that sys/modules/i2c/controllers/imcsmb/smbus_if.h
>>> needs to have been built first and that a -I PATH or such needs
>>> to be used to find the file.
>> Really appreciate the clues here, Mark. I'll keep investigating. The
>> build worked last time with this kernconf. So there must be a way.
> 
> ===
> Mark Millard
> marklmi at yahoo.com

-- 
sent from hardware written from and running on FreeBSD