← Back to team overview

maria-developers team mailing list archive

Re: what compiler should i use when building mariadb?

 

Hello,
Yes, your suggestion to define MY_CONTEXT_USE_UCONTEXT when compiling
a release build with gcc 4.7.1 worked.  Interestingly, this patch was
not required with gcc 4.7.1 debug build.  BTW, there are a LOT of
compiler warnings, one of which is:

sql/log.h:480:3: warning: access declarations are deprecated in favour
of using-declarations; suggestion: add the ‘using’ keyword
[-Wdeprecated]


On Fri, Aug 3, 2012 at 2:08 PM, Michael Widenius <monty@xxxxxxxxxxxx> wrote:
>
> Hi!
>
>>>>>> "Rich" == Rich Prohaska <prohaska@xxxxxxxxxxx> writes:
>
> Rich> hello,
> Rich> we have been using gcc 4.4 to build mysql and mariadb successfully.
> Rich> however, when we tried to use gcc 4.7.1 to build mariadb-5.5.25, we
> Rich> hit this problem:
>
> Rich> /home/tokubuild/build-tokudb-46462/mariadb-5.5.25-tokudb-46462-linux-x86_64-build/mariadb-5.5.25-tokudb-46462-src/mysys/my_context.c:
> Rich> Assembler messages:
> Rich> /home/tokubuild/build-tokudb-46462/mariadb-5.5.25-tokudb-46462-linux-x86_64-build/mariadb-5.5.25-tokudb-46462-src/mysys/my_context.c:207:
> Rich> Error: CFI instruction used without previous .cfi_startproc
>
> Rich> what compiler do you use to build mariadb?
>
> We are using a lot of different compilers on a lot of different
> systems and compilers and on all tested ones, MariaDB compiles nicely.
>
> Don't know if we have gcc 4.7.1 on any system.
> I am using latest Open-SuSE myself and that comes with gcc 4.6.2
>
> It looks like issue is that the new gcc has a different asm syntax
> than the old one :(
>
> Fix:
>
> Ensure that MY_CONTEXT_USE_UCONTEXT is defined when you compile
> MariaDB. You should be able to do that by slight modify the
> first ifdef in include/my_context.h to define MY_CONTEXT_USE_UCONTEXT
> if gcc 4.7 is used:
>
> Currenct code:
> -----------
> #ifdef __WIN__
> #define MY_CONTEXT_USE_WIN32_FIBERS 1
> #elif defined(__GNUC__) && __GNUC__ >= 3 && defined(__x86_64__)
> #define MY_CONTEXT_USE_X86_64_GCC_ASM
> #elif defined(__GNUC__) && __GNUC__ >= 3 && defined(__i386__)
> #define MY_CONTEXT_USE_I386_GCC_ASM
> #else
> #define MY_CONTEXT_USE_UCONTEXT
> #endif
> ------------
>
> Regards,
> Monty


Follow ups

References