From: Alex P. <pes...@ma...> - 2017-02-17 11:06:48
|
On 02/16/17 15:52, Stephan Bergmann wrote: > Forgive me if this has already been discussed or even fixed in later > versions: At least the Firebird 3.0 we build as part of LibreOffice > defines global operator new replacement functions in > src/common/classes/alloc.h (forwarding to MemoryPool) that do not in > general fulfil the alignment requirements for such functions. > > Came across this when Firebird compiled with a recent trunk Clang (with > -O, and DEBUG_GDS_ALLOC being undefined) on x86_64-unknown-linux-gnu > causes SEGV from misaligned MOVAPS instructions. > Yes - allocated memory is aligned at 8 bytes boundary now. I've tried to set alignment to 16 but looks like that's far not 5 lines patch - sometimes we were choosing between 4/8 bytes alignment, but last years only 8 bytes alignment was used. May be finding specific compiler flag to avoid this instruction is simpler choice for today? |