[gdal-dev] Different results when reading a GeoTIFF with GDAL 2.1.2 vs 3.x

Even Rouault even.rouault at spatialys.com
Sun Dec 29 13:57:29 PST 2019


On dimanche 29 décembre 2019 22:36:24 CET Momtchil Momtchev wrote:
>      Disabling HAVE_SSSE3_AT_COMPILE_TIME had no effect,

Make sure you run "make clean" after running ./configure

> but after
> short-circuiting the #ifdef I got a correct result.

Hum so it seems that the SSSE3 detection doesn't work properly. 

Can you :

1. undo your code changes

2. modify port/cpl_cpu_features.cpp at line 98 to replace the code of the 
CPLDetectSSE3() function by

static inline bool CPLDetectSSE3()
{
    int cpuinfo[4] = { 0, 0, 0, 0 };
    CPL_CPUID(0, cpuinfo);
    if( cpuinfo[REG_EAX] <= 0 )
        return false;
    CPL_CPUID(1, cpuinfo);
    return (cpuinfo[REG_ECX] & (1 << CPUID_SSSE3_ECX_BIT)) != 0;
}

(note: this function should really be called CPLDetectSSSE3 ... missing S... 
but that doesn't matter)

3. modify port/cpl_cpu_features.h to add just after line 47 "#if __SSSE3__" a 
new line with "dummy" as content. Normally this shouldn't be compiled... but 
this is just to make sure the compiler doesn't define SSSE3 as available 
unconditionnally at runtime.

4. run configure again *without* disabling ssse3
5. make clean
6. make (possibly with -j something)


-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the gdal-dev mailing list