You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An issue was reported by Stephan Bergmann, LibreOffice developer.
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.
The problem is when optimized code issues MOVAPS command against memory allocated with operator new.
Compiler expects 16-bytes alignment but replaced function new aligns memory only at 8-bytes boundary.
Fix is committed into master but I do not mark an issue as resolved cause we need to decide should 16 byte alignment be used for all or not platforms and should it be backported to FB3.
Just an info:
I changed the src/common/classes/alloc.h file in 2.5.9 source like this:
Original code:
Line 94 // Alignment for all memory blocks. Sizes of memory blocks in headers are measured in this units
Line 95 const size_t ALLOC_ALIGNMENT = FB_ALIGNMENT;
Changed code:
Line 94 // Alignment for all memory blocks. Sizes of memory blocks in headers are measured in this units
Line 95 #define ALLOC_ALIGNMENT 16
And now Firebird 2.5.9 on FreeBSD 12.1 and 13 beta4 amd64, compiled with clang 8 and 11, works without core dumps.
Submitted by: @AlexPeshkoff
An issue was reported by Stephan Bergmann, LibreOffice developer.
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.
The problem is when optimized code issues MOVAPS command against memory allocated with operator new.
Compiler expects 16-bytes alignment but replaced function new aligns memory only at 8-bytes boundary.
Commits: bec4b1c b17e367 69523f1
The text was updated successfully, but these errors were encountered: