Re: Module compiles looking in /usr/src when alternate src tree is in use

From: Bryan Drewery <bdrewery_at_FreeBSD.org>
Date: Thu, 12 Apr 2018 13:28:18 -0700
On 4/12/2018 1:20 PM, Bryan Drewery wrote:
> On 4/12/2018 1:11 PM, Bryan Drewery wrote:
>> On 4/10/2018 5:29 PM, Rodney W. Grimes wrote:
>>>> Rodney W. Grimes <freebsd-rwg_at_pdx.rh.CN85.dnsmgr.net> wrote:
>>>>
>>>>> I am having a compile time issue for a patched that compiled fine on my
>>>>> r329294 system, but now failes to compile with what looks like a wrong
>>>>> header being included.
>>>>
>>>> You may find it helpful to do something like:
>>>>
>>>> make -dv -C sys/modules/vmm -V CFLAGS > /tmp/dvo 2>&1
>>>> egrep ':.PARSE|/usr/src/sys' /tmp/dvo | grep -B1 usr/src | more
>>>>
>>>> The arg to -V doesn't matter btw.
>>>> You could narrow that down if you know what var -I/usr/src/sys is in
>>>> (probably CFLAGS but you never know)
>>>> the above should help find the makefile that is introducing the bogus -I
>>>>
>>>
>>> Thank you, that does help narrow it down:  (I backed up a vew lines
>>> from the first place I saw src/.)
>>>
>>> ...
>>> Global:.PARSEFILE = bsd.kmod.mk
>>> Global:.PARSEDIR = /usr/src-topo/share/mk
>>> Global:.PARSEFILE = bsd.kmod.mk
>>> Result[] of :U is "/usr/src/sys"
>>> Result[] of :U is "/usr/src/sys"
>>> Global:SYSDIR = ${:U/usr/src/sys:tA}
>>> Global:.PARSEDIR = /usr/src-topo/share/mk
>>> Global:.PARSEFILE = bsd.kmod.mk
>>> Result[] of :U is "/usr/src/sys"
>>> Applying[] :t to "/usr/src/sys"
>>> Result[] of :t is "/usr/src/sys"
>>> Result[] of :U is "/usr/src/sys"
>>> Applying[] :t to "/usr/src/sys"
>>> Result[] of :t is "/usr/src/sys"
>>> Result[] of :U is "/usr/src/sys"
>>> Applying[] :t to "/usr/src/sys"
>>> Result[] of :t is "/usr/src/sys"
>>> Global:.MAKE.MAKEFILES = /usr/src-topo/share/mk/sys.mk /usr/src-topo/share/mk/local.sys.env.mk /usr/src-topo/share/mk/src.sys.env.mk /usr/src-topo/share/mk/bsd.mkopt.m
>>> k /usr/src-topo/share/mk/src.sys.obj.mk /usr/src-topo/share/mk/auto.obj.mk /usr/src-topo/share/mk/bsd.suffixes.mk /usr/src-topo/share/mk/local.sys.mk /usr/src-topo/sha
>>> re/mk/src.sys.mk /usr/src-topo/sys/modules/vmm/Makefile /usr/src-topo/share/mk/bsd.kmod.mk /usr/src/sys/conf/kmod.mk
>>>                                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^
>>> Thats gona bust something some day....
>>>
>>> Global:.PARSEDIR = /usr/src/sys/conf
>>> Global:.PARSEFILE = kmod.mk
>>> Global:.INCLUDEDFROMDIR = /usr/src/sys/conf
>>> Oh my!  Uggggg
>>>
>>>
>>> So something in bsd.kmod.mk is going very wrong... it looks like it
>>> starts to pull all sorts of stuff from /usr/src/sys!
>>>
>>>>>
>>>>> I have wrapped the long line so I can point to a difference between
>>>>> r329294 and r332262 make log of this file.
>>>>>
>>>>> r329294 make output:
>>>>>
>>>>> cc  -O2 -pipe -DVMM_KEEP_STATS -DSMP  -fno-strict-aliasing -Werror -D_KERNEL \
>>>>> -DKLD_MODULE -nostdinc  -I/usr/src-topo/sys/amd64/vmm \
>>>>> -I/usr/src-topo/sys/amd64/vmm/io -I/usr/src-topo/sys/amd64/vmm/intel \
>>>>> -I/usr/src-topo/sys/amd64/vmm/amd -I. -I/usr/src-topo/sys -fno-common  \
>>>>>                                        ^^^^^^^^^^^^^^^^^ this is what I would expect
>>>>
>>>>
>>>
>>
>> Is this buildkernel or a direct module directory build?
>>
>> Does reverting r331683 and r331682 help? Perhaps I missed ensuring
>> SYSDIR is exported properly.
>>
> 
> Ok I see the problem with a direct module build. I am fixing it. Sorry
> about that.
> 

Fixed in r332453.

-- 
Regards,
Bryan Drewery


Received on Thu Apr 12 2018 - 18:28:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:15 UTC