Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Jul 2017 02:30:33 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        Bryan Drewery <bdrewery@FreeBSD.org>, jah@FreeBSD.org, svn-src-head@freebsd.org, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   BROKEN: svn commit: r320528 - in head/sys: amd64/include arm/arm arm/include arm64/arm64 arm64/include dev/aac dev/aacraid dev/bnxt dev/cxgb  dev/cxgb/ulp/iw_cxgb dev/hyperv/storvsc dev/mfi dev/tsec dev/xdm...
Message-ID:  <0A511C6E-A688-43AF-9D6D-FE79B2A79831@dsl-only.net>
In-Reply-To: <6FC21EFE-2873-4EE4-81C7-DD9CEAD036B5@dsl-only.net>
References:  <6991DEC2-6E7B-40A3-B384-D5BC19E2A2F5@dsl-only.net> <6FC21EFE-2873-4EE4-81C7-DD9CEAD036B5@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
[On second thought: the build should not be depending on
/usr/include/machine/* . And using installworld to
indirectly update /usr/include/machine/* did not fix
the problem by itself. I still had to also delete
/usr/obj/amd64_clang/amd64.amd64/usr/src/sys/* in
order for buildkernel to work.]

On 2017-Jul-2, at 1:51 AM, Mark Millard <markmi at dsl-only.net> wrote:

> [Turns out META_MODE did not update /usr/include/machine/* .]
>=20
> On 2017-Jul-2, at 12:43 AM, Mark Millard <markmi at dsl-only.net> =
wrote:
>=20
>> I attempted to jump from head -r320482 to -r320570 for amd64
>> but the kernel build fails with massive numbers of things like:
>>=20
>>=20
>> I'll note that, for example, aac_disk.o was rebuilt:
>>=20
>> --- all_subdir_aac ---
>> Building =
/usr/obj/amd64_clang/amd64.amd64/usr/src/sys/GENERIC-NODBG/modules/usr/src=
/sys/modules/aac/aac_disk.o
>>=20
>> before the below happened.
>>=20
>>=20
>> --- kernel.full ---
>> aac_disk.o: In function `aac_disk_dump':
>> /usr/src/sys/dev/aac/aac_disk.c:253: undefined reference to =
`bus_dmamap_create'
>> /usr/src/sys/dev/aac/aac_disk.c:301: undefined reference to =
`_bus_dmamap_sync'
>> /usr/src/sys/dev/aac/aac_disk.c:314: undefined reference to =
`_bus_dmamap_sync'
>> /usr/src/sys/dev/aac/aac_disk.c:317: undefined reference to =
`_bus_dmamap_unload'
>> adv_pci.o: In function `adv_pci_attach':
>> /usr/src/sys/dev/advansys/adv_pci.c:225: undefined reference to =
`bus_dmamem_alloc'
>> . . .
>> --- kernel.full ---
>> advansys.o: In function `adv_destroy_ccb_info':
>> /usr/src/sys/dev/advansys/advansys.c:596: undefined reference to =
`bus_dmamap_destroy'
>> advansys.o: In function `adv_free':
>> /usr/src/sys/dev/advansys/advansys.c:696: undefined reference to =
`_bus_dmamap_unload'
>> /usr/src/sys/dev/advansys/advansys.c:699: undefined reference to =
`bus_dmamem_free'
>> advansys.o: In function `adv_done':
>> /usr/src/sys/dev/advansys/advansys.c:1093: undefined reference to =
`_bus_dmamap_sync'
>> /usr/src/sys/dev/advansys/advansys.c:1094: undefined reference to =
`_bus_dmamap_unload'
>> advansys.o: In function `adv_attach':
>> /usr/src/sys/dev/advansys/advansys.c:1335: undefined reference to =
`bus_dmamem_alloc'
>> advansys.o: In function `adv_alloc_ccb_info':
>> /usr/src/sys/dev/advansys/advansys.c:580: undefined reference to =
`bus_dmamap_create'
>> advansys.o: In function `adv_execute_ccb':
>> /usr/src/sys/dev/advansys/advansys.c:532: undefined reference to =
`_bus_dmamap_sync'
>> /usr/src/sys/dev/advansys/advansys.c:545: undefined reference to =
`_bus_dmamap_unload'
>> /usr/src/sys/dev/advansys/advansys.c:556: undefined reference to =
`_bus_dmamap_unload'
>> . . . (huge amount omitted) . . .
>> --- kernel.full ---
>> if_vmx.o: In function `vmxnet3_alloc_txq_data':
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1243: undefined reference to =
`bus_dmamap_create'
>> if_vmx.o: In function `vmxnet3_alloc_rxq_data':
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1366: undefined reference to =
`bus_dmamap_create'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1376: undefined reference to =
`bus_dmamap_create'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1366: undefined reference to =
`bus_dmamap_create'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1376: undefined reference to =
`bus_dmamap_create'
>> if_vmx.o: In function `vmxnet3_free_rxq_data':
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1412: undefined reference to =
`bus_dmamap_destroy'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1420: undefined reference to =
`bus_dmamap_destroy'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1412: undefined reference to =
`bus_dmamap_destroy'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1420: undefined reference to =
`bus_dmamap_destroy'
>> if_vmx.o: In function `vmxnet3_free_txq_data':
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1276: undefined reference to =
`bus_dmamap_destroy'
>> if_vmx.o: In function `vmxnet3_txq_unload_mbuf':
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:2798: undefined reference to =
`_bus_dmamap_unload'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:2798: undefined reference to =
`_bus_dmamap_unload'
>> if_vmx.o: In function `vmxnet3_dma_malloc':
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:3871: undefined reference to =
`bus_dmamem_alloc'
>> if_vmx.o: In function `vmxnet3_dma_free':
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:3900: undefined reference to =
`_bus_dmamap_sync'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:3902: undefined reference to =
`_bus_dmamap_unload'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:3906: undefined reference to =
`bus_dmamem_free'
>> if_vmx.o: In function `vmxnet3_txstop':
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:2358: undefined reference to =
`_bus_dmamap_sync'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:2360: undefined reference to =
`_bus_dmamap_unload'
>> if_vmx.o: In function `vmxnet3_rxstop':
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:2388: undefined reference to =
`_bus_dmamap_sync'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:2390: undefined reference to =
`_bus_dmamap_unload'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:2388: undefined reference to =
`_bus_dmamap_sync'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:2390: undefined reference to =
`_bus_dmamap_unload'
>> if_vmx.o: In function `vmxnet3_newbuf':
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1959: undefined reference to =
`_bus_dmamap_sync'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1960: undefined reference to =
`_bus_dmamap_unload'
>> if_vmx.o: In function `vmxnet3_txq_eof':
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1866: undefined reference to =
`_bus_dmamap_sync'
>> /usr/src/sys/dev/vmware/vmxnet3/if_vmx.c:1868: undefined reference to =
`_bus_dmamap_unload'
>> isci.o: In function `isci_allocate_dma_buffer':
>> /usr/src/sys/dev/isci/isci.c:424: undefined reference to =
`bus_dmamem_alloc'
>> isci_io_request.o: In function `isci_io_request_complete':
>=20
>=20
> Looks like this is the result of
>=20
> /usr/include/machine/* (such as bus_dma.h )
>=20
> not having been updated appropriately by
> META_MODE to match:
>=20
> /usr/src/sys/amd64/include/bus_dma.h
>=20
>=20
> # diff -u /usr/include/machine/bus_dma.h =
/usr/src/sys/amd64/include/bus_dma.h
> --- /usr/include/machine/bus_dma.h	2017-03-23 11:14:59.000000000 =
-0700
> +++ /usr/src/sys/amd64/include/bus_dma.h	2017-07-01 =
23:58:19.756701000 -0700
> @@ -23,12 +23,12 @@
>  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY =
OF
>  * SUCH DAMAGE.
>  *
> - * $FreeBSD: head/sys/amd64/include/bus_dma.h 148275 2005-07-22 =
04:03:25Z obrien $
> + * $FreeBSD: head/sys/amd64/include/bus_dma.h 320528 2017-07-01 =
05:35:29Z jah $
>  */
>=20
> #ifndef _AMD64_BUS_DMA_H_
> #define _AMD64_BUS_DMA_H_
>=20
> -#include <sys/bus_dma.h>
> +#include <x86/bus_dma.h>=20
>=20
> #endif /* _AMD64_BUS_DMA_H_ */
>=20
>=20
> # ls -lTt /usr/include/machine/
> total 417
> -r--r--r--  1 root  wheel   7509 Jun 14 00:43:43 2017 vmparam.h
> -r--r--r--  1 root  wheel   3390 Jun 14 00:43:43 2017 proc.h
> -r--r--r--  1 root  wheel   8687 May  3 02:46:12 2017 pcpu.h
> -r--r--r--  1 root  wheel   2661 May  3 02:46:12 2017 counter.h
> -r--r--r--  1 root  wheel  22692 May  3 02:46:12 2017 atomic.h
> -r--r--r--  1 root  wheel   2935 Apr 15 00:24:33 2017 db_machdep.h
> -r--r--r--  1 root  wheel    154 Mar 23 11:14:59 2017 _align.h
> -r--r--r--  1 root  wheel   1837 Mar 23 11:14:59 2017 _bus.h
> -r--r--r--  1 root  wheel    160 Mar 23 11:14:59 2017 _inttypes.h
> -r--r--r--  1 root  wheel    156 Mar 23 11:14:59 2017 _limits.h
> -r--r--r--  1 root  wheel    156 Mar 23 11:14:59 2017 _stdint.h
> -r--r--r--  1 root  wheel    154 Mar 23 11:14:59 2017 _types.h
> . . .

Updating /usr/include/machine/* and then buildkernel did
not update the likes of:

=
/usr/obj/amd64_clang/amd64.amd64/usr/src/sys/GENERIC-NODBG/modules/usr/src=
/sys/modules/aac/aac_disk.o

again so the problem stayed.

Then deleting /usr/obj/amd64_clang/amd64.amd64/usr/src/sys/* and
doing buildkernel finally did manage to build correctly.

Remember that the original buildkernel attempt did rebuild:

=
/usr/obj/amd64_clang/amd64.amd64/usr/src/sys/GENERIC-NODBG/modules/usr/src=
/sys/modules/aac/aac_disk.o

but the result was bad for linking it (as an example). It appears
that I needed both steps to get a good build:

A) Update /usr/include/machine/* . (I did a full installworld.)

B) Delete /usr/obj/amd64_clang/amd64.amd64/usr/src/sys/* .

[Note: I force the path to have amd64.amd64/ : it is not
a cross build.]

So there may be two problems:

A) An apparent need for /usr/include/machine/* to be up
   to date. (Unless installworld had other side-effects
   that contributed.)

B) Lack of rebuilding the likes of:

=
/usr/obj/amd64_clang/amd64.amd64/usr/src/sys/GENERIC-NODBG/modules/usr/src=
/sys/modules/aac/aac_disk.o

once (A) was dealt with. (But I deleted more than just the long
list if failing .o's in order to force rebuilds.)

=3D=3D=3D
Mark Millard
markmi at dsl-only.net





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0A511C6E-A688-43AF-9D6D-FE79B2A79831>