jemalloc-3.6.0 fails to build on to-be-fedora-21
Jason Evans
jasone at canonware.com
Fri Aug 15 10:24:56 PDT 2014
On Aug 6, 2014, at 6:34 AM, Ingvar Hagelund <ingvar at redpill-linpro.com> wrote:
>> Ingvar Hagelund wrote
>>> jemalloc-3.6.0 fails to build on to-be-fedora-21
>>>
>>> https://kojipkgs.fedoraproject.org//work/tasks/2036/7002036/build.log
>>>
>>> Seems like gcc-4.9.0 changed emmintrin.h
>>
>> ... though only when compiling against Fedora's i686 target, that is
>> "gcc -m32 -march=i686 -mtune=atom"
>>
>> x86_64 and the generic i386 target, that is "gcc -march=i386
>> -mtune=generic" , works fine (though generic i386 is not a primary
>> Fedora target anymore).
>
>
> This is because of github commit
> cb657e3170349a27e753cdf6316513f56550205e
>
> See also jemalloc github issue 52:
>
> https://github.com/jemalloc/jemalloc/issues/52
>
> Adding -msse2 to CFLAGS fixes the build on Fedora, but there is an issue
> with this: Fedora supports the i686 arch. i686 predates SSE2. i686 means
> PentiumPro and above, while SSE2 was included around Pentium II, that is
> later. So there is no guaranteed support for SSE2 in Fedora.
>
> Grepping through the code, it looks like SSE2 is only used for test
> cases. Does jemalloc use SSE2 features at runtime? If it does, will it
> work correctly without SSE2 available?
jemalloc doesn’t explicitly use SSE2; it’s for test code only. If I’d known how much portability trouble the SSE2 optimizations for the Merseinne Twister PRNG would cause, I’d have left them completely disabled. Maybe it’s time to give up on SSE2, since nothing important depends on it.
Jason
More information about the jemalloc-discuss
mailing list