jemalloc-3.6.0 fails to build on to-be-fedora-21

Ingvar Hagelund ingvar at redpill-linpro.com
Wed Aug 6 06:34:50 PDT 2014


> 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?

Ingvar



More information about the jemalloc-discuss mailing list