Date: Fri, 17 Nov 2006 21:08:15 +1100 (EST) From: Bruce Evans <bde@zeta.org.au> To: Jung-uk Kim <jkim@FreeBSD.org> Cc: freebsd-fs@FreeBSD.org, freebsd-current@FreeBSD.org, Andriy Gapon <avg@icyb.net.ua> Subject: Re: ZFS patches for FreeBSD. Message-ID: <20061117210000.S11101@delplex.bde.org> In-Reply-To: <200611161506.58128.jkim@FreeBSD.org> References: <1163701391.00638085.1163691003@10.7.7.3> <455CB8CA.8040603@icyb.net.ua> <200611161506.58128.jkim@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 16 Nov 2006, Jung-uk Kim wrote:
> On Thursday 16 November 2006 02:15 pm, Andriy Gapon wrote:
>> Hmm, I saw errors like this with some other 3rd party kernel module
>> when its sources had constructs like:
>>
>> struct some_struct s = {0};
>>
>> Changing the above initialization to explicit bzero() call helped
>> in that case, but I think that there should be some compiler flags
>> or something to handle this.
>
> AFAIK, there was no way to handle this GCC bug with compiler flags.
> '-ffreestanding' should prevent this to happen but it does not. As
> Max Laier pointed out, it was discussed long time ago. Bruce Evans
> had good analysis on this issue, too.
Source code that triggers this bug might be broken anyway. gcc should
only call a function to do the zeroing for large structs, but large
structs might be too large for the kernel stack.
Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061117210000.S11101>
