← Back to team overview

maria-developers team mailing list archive

Re: what compiler should i use when building mariadb?

 

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