Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Aug 2013 08:53:02 -1000 (HST)
From:      Jeff Roberson <jroberson@jroberson.net>
To:        David Wolfskill <david@catwhisker.org>
Cc:        Alexey Dokuchaev <danfe@FreeBSD.org>, Jeff Roberson <jeff@FreeBSD.org>, freebsd-ports@freebsd.org
Subject:   Re: x11/nvidia-driver build failure in head/i386 @r253985 with clang
Message-ID:  <alpine.BSF.2.00.1308070851350.4083@desktop>
In-Reply-To: <20130807134459.GE1746@albert.catwhisker.org>
References:  <20130807130241.GC1746@albert.catwhisker.org> <20130807132034.GA10293@FreeBSD.org> <20130807134459.GE1746@albert.catwhisker.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 7 Aug 2013, David Wolfskill wrote:

> On Wed, Aug 07, 2013 at 01:20:34PM +0000, Alexey Dokuchaev wrote:
>> On Wed, Aug 07, 2013 at 06:02:41AM -0700, David Wolfskill wrote:
>>> [...]
>>> nvidia_subr.c:997:19: error: incompatible pointer types passing 'vm_map_t'
>>> (aka 'struct vm_map *') to parameter of type 'struct vmem *' [-Werror,
>>> -Wincompatible-pointer-types]
>>>         kmem_free(kernel_map,
>>>                   ^~~~~~~~~~
>>> @/vm/vm_extern.h:58:29: note: passing argument to parameter here
>>> void kmem_free(struct vmem *, vm_offset_t, vm_size_t);
>>
>> I've tested the new driver on my Julyish -CURRENT and it was all fine...
>> I suspect the problem might be with Jeff's r254025 (CC'ed).  I will see
>> what I can do about it, thanks for your report!
>
> Glad to heko!
>
>>> In the mean time, I will try to figure out what's wrong:
>>> nvidia-driver-304.51 built/ran OK in head/i386 @r253985 (with clang).
>>
>> Please share your findings once you have them. :-)
>
> Build still fails in head/i386 @r254052, similarly:
>
> ...
> clang -O2 -pipe -fno-strict-aliasing -DNV_VERSION_STRING=\"319.32\" -D__KERNEL__ -DNVRM -Wno-unused-function -Wuninitialized -O -UDEBUG -U_DEBUG -DNDEBUG -Werror -D_KERNEL -DKLD_MODULE -nostdinc  -I. -I. -I@ -I@/contrib/altq -fno-common   -mno-aes -mno-avx -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions  -Wmissing-include-dirs -fdiagnostics-show-option  -Wno-error-tautological-compare -Wno-error-empty-body  -Wno-error-parentheses-equality  -c nvidia_subr.c
> nvidia_subr.c:948:33: error: incompatible pointer types passing 'vm_map_t' (aka 'struct vm_map *') to parameter of type 'struct vmem *' [-Werror,-Wincompatible-pointer-types]
>    address = kmem_alloc_contig(kernel_map, size, flags, 0,
>                                ^~~~~~~~~~
> @/vm/vm_extern.h:54:44: note: passing argument to parameter here
> vm_offset_t kmem_alloc_contig(struct vmem *, vm_size_t size, int flags,
>                                           ^
> nvidia_subr.c:997:19: error: incompatible pointer types passing 'vm_map_t' (aka 'struct vm_map *') to parameter of type 'struct vmem *' [-Werror,-Wincompatible-pointer-types]
>        kmem_free(kernel_map,
>                  ^~~~~~~~~~
> @/vm/vm_extern.h:58:29: note: passing argument to parameter here
> void kmem_free(struct vmem *, vm_offset_t, vm_size_t);
>                            ^
> ....
>
> Not sure how much further I'll be able to get for a while; I'm
> out-of-town and Internet access is a bit flaky.  Sorry...
>

This is my fault.  The first argument to the kmem_ functions should now be 
kernel_arena or kmem_arena.  I don't know how to modify ports but I can 
produce a patch later today to resolve this unless someone beats me to it. 
It will be a simple substitution based on version.

Jeff


> Peace,
> david
> -- 
> David H. Wolfskill				david@catwhisker.org
> Taliban: Evil men with guns afraid of truth from a 14-year old girl.
>
> See http://www.catwhisker.org/~david/publickey.gpg for my public key.
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1308070851350.4083>