List:Commits« Previous MessageNext Message »
From:Olav Sandstaa Date:November 25 2008 12:12pm
Subject:Re: bzr commit into mysql-6.0-falcon-team branch (olav:2916) Bug#39419
View as plain text  
Hi Hakan,

Thanks for reviewing the patch.

See inline for response to your questions.

Hakan Kuecuekyilmaz wrote:
> Olav,
>
> patch looks good. I have some questions; see inline.
>
> On So, 2008-11-23 at 22:02 +0000, Olav Sandstaa wrote:
>   
>> === modified file 'storage/falcon/plug.in'
>> --- a/storage/falcon/plug.in	2008-11-03 08:56:28 +0000
>> +++ b/storage/falcon/plug.in	2008-11-23 22:02:22 +0000
>> @@ -106,9 +106,6 @@
>>      )
>>    ])
>>  
>> -  CXXFLAGS=$ac_save_CXXFLAGS
>> -  AC_LANG_POP([C++])
>> -
>>     
>
> * What is $ac_save_CXXFLAGS?
> * What does AC_LANG_POP do?
>   

When we enter Falcon's plug.in file we do the following two commands:


  AC_LANG_PUSH([C++])
  ac_save_CXXFLAGS="$CXXFLAGS"

These are done in order to save away "the current language to be used by 
configure and replace this with C++" and for "saving the current value 
that teh CXXFLAGS variable has".  The two commands you ask about above 
do the opposite. They restore the "current language to be used by 
configure" to whatever it was before and resets the value of CXXFLAGS to 
what it was before we started on Falcon's plug.in.

>   
>>    # Falcon uses exceptions and STL.
>>    CXXLDFLAGS="$CXXLDFLAGS $falcon_cxx_enable_stl"
>>    FALCON_CXXFLAGS="$falcon_cxx_no_invalid_offsetof
> $falcon_cxx_enable_implicit_templates $falcon_cxx_enable_exceptions"
>> @@ -119,6 +116,34 @@
>>  
>>    AC_SUBST([FALCON_CXXFLAGS])
>>  
>> +  # Check that C++ exceptions works in an executable by actually running a
>> +  # compiled program and throwing and catching an exception
>> +  CXXFLAGS=$FALCON_CXXFLAGS
>>     
>
> What is the difference between $ac_save_CXXFLAGS and $FALCON_CXXFLAGS?
>   
$ac_save_CXXFLAGS is the CXXFLAGS that configure used before reaching 
Falcon's plug.in. FALCON_CXXFLAGS are the extra C++ compiler flags that 
we want to use when compiling Falcon code.

>   
>> +  AC_CACHE_CHECK([if compiler and compiler options support C++ exceptions for
> Falcon],
>> +	            falcon_supported_by_compiler,[
>> +  AC_TRY_RUN([
>> +    int main() {
>> +      try {
>> +        throw 1;
>> +      }
>> +      catch (int) {
>> +        return 0;
>> +      }
>> +      return -1; 
>> +    }
>> +  ], falcon_supported_by_compiler="yes",
>> +     falcon_supported_by_compiler="no", )
>> +  ])
>> +
>> +  if test "$falcon_supported_by_compiler" != "yes"; then
>> +    echo "Falcon must be compiled with support for C++ exceptions enabled."
>> +    echo "Please adjust your compiler flags or disable support for Falcon
> (--without-plugin-falcon)."
>> +    exit 1
>> +  fi
>> +
>> +  CXXFLAGS=$ac_save_CXXFLAGS
>> +  AC_LANG_POP([C++])
>>     
>
> You moved the above two lines down. Does $ac_save_CXXFLAGS collects the
> CXXFLAGS we need? 
No, it is the combination of CXXFLAGS and FALCON_CXXFLAGS that collects 
the C++ compiler flags we need for Falcon.

The reason for moving these two lines down was that I needed to use 
CXXFLAGS and C++ when compiling the C++ code that I added to configure. 
And thus these two had to be restored to whatever values they had after 
my new code had been run.

> I guess AC_LANG_POP() tells me that we are done with
> [C++] tests?
>   

Yes.

Olav

Thread
bzr commit into mysql-6.0-falcon-team branch (olav:2916) Bug#39419Olav Sandstaa23 Nov
  • Re: bzr commit into mysql-6.0-falcon-team branch (olav:2916) Bug#39419Hakan Kuecuekyilmaz25 Nov
    • Re: bzr commit into mysql-6.0-falcon-team branch (olav:2916) Bug#39419Olav Sandstaa25 Nov
      • Re: bzr commit into mysql-6.0-falcon-team branch (olav:2916) Bug#39419Hakan Kuecuekyilmaz25 Nov
  • RE: bzr commit into mysql-6.0-falcon-team branch (olav:2916) Bug#39419Vladislav Vaintroub25 Nov
    • Re: bzr commit into mysql-6.0-falcon-team branch (olav:2916) Bug#39419Olav Sandstaa25 Nov