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

Momtchil Momtchev momtchil at momtchev.com
Sun Dec 29 15:03:09 PST 2019


     In fact EAX is negative (0x80000001/eax) in the extended status, 
not the basic one?

     Let me test it.


On 29/12/2019 22:57, Even Rouault wrote:
> 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)
>
>
-- 
Momtchil Momtchev <momtchil at momtchev.com>



More information about the gdal-dev mailing list