Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 Apr 2015 18:03:42 +0100
From:      Steven Hartland <killing@multiplay.co.uk>
To:        freebsd-current@freebsd.org
Subject:   Re: Fix for r281680 -- broke i386 world
Message-ID:  <55328E6E.2060807@multiplay.co.uk>
In-Reply-To: <20150418163057.GD36163@albert.catwhisker.org>
References:  <20150418151702.GB36163@albert.catwhisker.org> <20150418153459.GX2390@kib.kiev.ua> <20150418163057.GD36163@albert.catwhisker.org>

next in thread | previous in thread | raw e-mail | index | archive | help


On 18/04/2015 17:30, David Wolfskill wrote:
> On Sat, Apr 18, 2015 at 06:34:59PM +0300, Konstantin Belousov wrote:
>> ...
>>> -	printf("LE_STATUS: %d %d %lx\n", e, rp.status, rp.le_status);
>>> +	printf("LE_STATUS: %d %d %jx\n", e, rp.status, rp.le_status);
>>>   
>>>   	return 0;
>>>   }
>> The j modificator specifies that the type of the argument is (u)intmax_t.
>> It is only a coincidense that uint64_t is max integer type, the arg should
>> be casted to uintmax_t.
>>
>> Could you, please, update and test ?
>> ....
> Thank you for the correction; the attached patch survives both i386 &
> amd64 "make buildworld" ... and comes a bit closer to the above
> specification.  (I had tried "(uintmax_t)rp.le_features" at first; that
> failed (at least on amd64), with:
>
> --- usr.sbin.all__D ---
> /usr/src/usr.sbin/bluetooth/hccontrol/le.c:236:15: error: expected ')'
>                          (uintmax_t)rp.le_features);
>                                     ^
> /usr/src/usr.sbin/bluetooth/hccontrol/le.c:235:8: note: to match this '('
>          printf("LOCAL SUPPORTED: %d %d %ju\n", e, rp.status,
>                ^
> /usr/src/usr.sbin/bluetooth/hccontrol/le.c:253:60: error: expected ')'
>          printf("LE_STATUS: %d %d %jx\n", e, rp.status, (uintmax_t)rp.le_status);
>                                                                    ^
> /usr/src/usr.sbin/bluetooth/hccontrol/le.c:253:8: note: to match this '('
>          printf("LE_STATUS: %d %d %jx\n", e, rp.status, (uintmax_t)rp.le_status);
>                ^
> 2 errors generated.
>
> So I took a bit of evasive action.)
>
The errors not very good, but I'm guessing your missing #include 
<stdint.h> for uintmax_t where as u_int64_t is from sys/types.h iirc.

     Regards
     Steve



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55328E6E.2060807>