List:Commits« Previous MessageNext Message »
From:Alexey Kopytov Date:October 1 2010 2:14pm
Subject:Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)
Bug#56709
View as plain text  
(resending with correct To/CC)

On 01.10.10 17:28, Davi Arnaut wrote:
> On 10/1/10 9:38 AM, Alexey Kopytov wrote:
>> On 01.10.10 16:02, Davi Arnaut wrote:
>>> On 10/1/10 8:24 AM, Alexey Kopytov wrote:
>>>> On 01.10.10 12:04, Tor Didriksen wrote:
>>>>> On Thu, Sep 30, 2010 at 2:36 PM, Sergei
> Golubchik<serg@stripped>
>>>>> wrote:
>>>>>
>>>>>> Hi, Davi!
>>>>>>
>>>>>> On Sep 30, Davi Arnaut wrote:
>>>>>>> On 9/30/10 8:33 AM, Tor Didriksen wrote:
>>>>>>>> On Fri, Sep 24, 2010 at 11:20 AM, Alexey Kopytov
>>>>>>>>>>
>>>>>>>>>> I personally think of bzero() as a convenient
> alias for the most
>>>>>>>>>> commonly used form of memset(). In other words,
> even if bzero()
>>>>>>>>>> did not exist, it should have been created. And
> we actually do
>>>>>>>>>> something like that in m_string.h:
>>>>>>>>>>
>>>>>>>>>> #if !defined(bzero)&&
> !defined(HAVE_BZERO)
>>>>>>>>>> # define bzero(A,B) memset((A),0,(B))
>>>>>>>>>> #endif
>>>>>>>>
>>>>>>>> Time for another update of the style guide I guess,
>>>>>>>> we shouldn't be recommending functions which are
> deprecated.
>>>>>>>
>>>>>>> Definitely. bzero is a officially deprecated function and we
> never
>>>>>>> actually use it because it depends on some BSD defines that
> we never
>>>>>>> set.
>>>>>>
>>>>>> So, Kaamos is right after all :)
>>>>>>
>>>>>> Coding style does not recommend a deprecated function,
> furthermore
>>>>>> this
>>>>>> deprecated function was never used. bzero() is just a
> convenience
>>>>>> macro,
>>>>>> and should be fine as such. The fact that libc has deprecated a
>>>>>> function
>>>>>> does not apply to MySQL internal macro that happen to have the
> same
>>>>>> name :)
>>>>>>
>>>>>
>>>>> no ??
>>>>>
>>>>> #if !defined(bzero)&& !defined(HAVE_BZERO)
>>>>> # define bzero(A,B) memset((A),0,(B))
>>>>> #endif
>>>>>
>>>>> configure/cmake will define HAVE_BZERO
>>>>> and we end up calling the deprecated function in the C library
>>>>>
>>>>> -- didrik
>>>>>
>>>>
>>>> Yes, we do use bzero(), at least on Linux, Solaris and Mac OS X, since
>>>> we include both string.h (which defines bzero() only when __USE_BSD is
>>>> defined) and strings.h (which seems to define bzero() on complementary
>>>> to __USE_BSD conditions).
>>>>
>>>> But then again,
>>>> http://www.opengroup.org/onlinepubs/000095399/functions/bzero.html :
>>>>
>>>> "For maximum portability, it is recommended to replace the function
>>>> call
>>>> to bzero() as follows:
>>>>
>>>> #define bzero(b,len) (memset((b), '\0', (len)), (void) 0)
>>>> "
>>>>
>>>> Which is what we do in m_string.h when bzero() is unavailable. "For
>>>> maximum portability". Does that mean we comply with POSIX? Or, why
>>>> should we care about the legacy status of bzero() at all?
>>>>
>>>
>>> Take some time to read Bug#55721 and look at the condition again.
>>
>> I did and I have two questions:
>>
>> 1. To which specific statement or question were you replying?
>
> "Which is what we do in m_string.h when bzero() is unavailable."
>
>> 2. What exactly did you want to tell me by pointing to the bug and
>> asking to look at the condition again?
>
> That HAVE_BZERO does not mean that we have the function prototype. In
> other others, even thought cmake/autoconf might think bzero is
> available, it might not actually be due to the lack of the prototype. As

OK, so HAVE_BZERO might be incorrectly defined on some platforms, which 
is obviously a bug. Its meaning is by definition (which is also assumed 
by the #ifdef in question): "there is a platform-defined bzero() that we 
can use".

> for the other questions, they are just hand waving. We do not have waste
> time caring for legacy crap.
>

I did not claim the opposite. To make things dead simple, I say "we 
should not care about bzero()'s status, just do nothing. If it 
disappears, it will be mapped to memset() anyway".

And yes, incorrectly defined HAVE_BZERO is a different issue.

/Alexey.
Thread
bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Alexey Kopytov22 Sep
  • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514) Bug#56709Tor Didriksen23 Sep
    • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Alexey Kopytov24 Sep
      • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514) Bug#56709Tor Didriksen30 Sep
        • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Davi Arnaut30 Sep
          • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Sergei Golubchik30 Sep
            • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Davi Arnaut30 Sep
              • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Davi Arnaut30 Sep
            • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514) Bug#56709Tor Didriksen1 Oct
              • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Alexey Kopytov1 Oct
                • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Davi Arnaut1 Oct
                  • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Alexey Kopytov2 Oct
                • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514) Bug#56709Tor Didriksen1 Oct
                  • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Alexey Kopytov1 Oct
Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Davi Arnaut1 Oct
  • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Alexey Kopytov1 Oct
Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Alexey Kopytov1 Oct
  • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Davi Arnaut1 Oct
    • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Alexey Kopytov1 Oct
      • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Davi Arnaut1 Oct
        • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Alexey Kopytov1 Oct
          • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:3514)Bug#56709Davi Arnaut1 Oct