Menu

Compiling on OSX

Anonymous
2017-02-10
2017-02-10
  • Anonymous

    Anonymous - 2017-02-10

    Hi, I did a compile on OSX and had to make the following changes (see below).

    The .template seems to be a clang thing and apparently incompatible with Visual C++ from what I have read (but not tested).

    I also had to comment out a function called ExtractInt32Sum() in SimdSse2Statistic.cpp that caused a crash of the compiler (however I am at version 7.3.0. whereas there is 8.0.0 right now so that may fix it).

    diff --git a/src/Simd/SimdPixel.hpp b/src/Simd/SimdPixel.hpp
    index dafbcc1..583fd62 100644
    --- a/src/Simd/SimdPixel.hpp
    +++ b/src/Simd/SimdPixel.hpp
    @@ -338,14 +338,14 @@ namespace Simd
    {
    assert(view.format == View<A>::Bgr24);

    • return view.At<Bgr24>(col, row);
    • return view.template At<Bgr24>(col, row);
      }

       template <class A> SIMD_INLINE Bgr24 & Bgr24::At(View<A> & view, ptrdiff_t col, ptrdiff_t row)
       {
           assert(view.format == View<A>::Bgr24);
      
    • return view.At<Bgr24>(col, row);

    • return view.template At<Bgr24>(col, row);
      }

       // struct Bgra32 implementation:
      

      @@ -386,14 +386,14 @@ namespace Simd
      {
      assert(view.format == View<A>::Bgra32);

    • return view.At<Bgra32>(col, row);

    • return view.template At<Bgra32>(col, row);
      }

       template <class A> SIMD_INLINE Bgra32 & Bgra32::At(View<A> & view, ptrdiff_t col, ptrdiff_t row)
       {
           assert(view.format == View<A>::Bgra32);
      
    • return view.At<Bgra32>(col, row);

    • return view.template At<Bgra32>(col, row);
      }

       // struct Hsv24 implementation:
      

      @@ -423,14 +423,14 @@ namespace Simd
      {
      assert(view.format == View<A>::Hsv24);

    • return view.At<Hsv24>(col, row);

    • return view.template At<Hsv24>(col, row);
      }

       template <class A> SIMD_INLINE Hsv24 & Hsv24::At(View<A> & view, ptrdiff_t col, ptrdiff_t row)
       {
           assert(view.format == View<A>::Hsv24);
      
    • return view.At<Hsv24>(col, row);

    • return view.template At<Hsv24>(col, row);
      }

       // struct Hsl24 implementation:
      

      @@ -460,14 +460,14 @@ namespace Simd
      {
      assert(view.format == View<A>::Hsl24);

    • return view.At<Hsl24>(col, row);

    • return view.template At<Hsl24>(col, row);
      }

       template <class A> SIMD_INLINE Hsl24 & Hsl24::At(View<A> & view, ptrdiff_t col, ptrdiff_t row)
       {
           assert(view.format == View<A>::Hsl24);
      
    • return view.At<Hsl24>(col, row);

    • return view.template At<Hsl24>(col, row);
      }
      }
      }
      diff --git a/src/Simd/SimdSse2Statistic.cpp b/src/Simd/SimdSse2Statistic.cpp
      index 1f2cadf..4ff1cde 100644
      --- a/src/Simd/SimdSse2Statistic.cpp
      +++ b/src/Simd/SimdSse2Statistic.cpp
      @@ -259,7 +259,7 @@ namespace Simd
      m128i _src = _mm_and_si128(Load<false>((m128i*)(src + width - A)), tailMask);
      sum = _mm_add_epi32(sum, _mm_sad_epu8(_src, K_ZERO));
      }
    • sums[row] = ExtractInt32Sum(sum);
    • sums[row] = 0; // ExtractInt32Sum(sum); / clang compiler crashes on OSX /
      src += stride;
      }
      }
      @@ -379,7 +379,7 @@ namespace Simd
      m128i _src1 = _mm_and_si128(Load<false>((m128i*)(src1 + width - A)), tailMask);
      sum = _mm_add_epi32(sum, _mm_sad_epu8(_src0, _src1));
      }
    • sums[row] = ExtractInt32Sum(sum);
    • sums[row] = 0; // ExtractInt32Sum(sum); / clang compiler crashes on OSX /
      src0 += stride;
      src1 += stride;
      }
      @@ -569,4 +569,4 @@ namespace Simd
      }
      }
      #endif// SIMD_SSE2_ENABLE
      -}
      \ No newline at end of file
      +}
      diff --git a/src/Simd/SimdView.hpp b/src/Simd/SimdView.hpp
      index d84e24c..6f878a4 100644
      --- a/src/Simd/SimdView.hpp
      +++ b/src/Simd/SimdView.hpp
      @@ -995,12 +995,12 @@ namespace Simd

      template <class A,="" class="" T=""> const T & At(const View<A> & view, size_t x, size_t y)
      {
      - return view.At<T>(x, y);
      + return view.template At<T>(x, y);
      }

      template <class A,="" class="" T=""> T & At(View<A> & view, size_t x, size_t y)
      {
      - return view.At<T>(x, y);
      + return view.template At<T>(x, y);
      }

      template <class A,="" class="" B=""> SIMD_INLINE bool EqualSize(const View<A> & a, const View<B> & b)

     
  • Yermalayeu Ihar

    Yermalayeu Ihar - 2017-02-13

    Hello.

    Thank you for bug report!

    On last Friday I fixed most of these errors. But I have tried to compile Simd Library with using of Clang only on Ubuntu. Therefore I Have missed some of them. These errors are connected with using of function ExtractInt32Sum. I hope to resolve their late.

    Sincerely, Ihar.

    P.S. I have fixed all errors but can't check it because I don't have OSX. Could you check it?

     

    Last edit: Yermalayeu Ihar 2017-02-13
  • Anonymous

    Anonymous - 2017-02-14

    Hi Ihar,

    as it is I saw that you did a commit (50d6be1) a couple of hours after I grabbed the repo and got the errors listed above. With this commit is fixed all my error except the ExtractInt32Sum.

    And now with the commit f1c5228 it also fixes this error on OSX, see:

    franks-MBP-2:cmake frankw$ make
    [ 26%] Built target SimdBase
    [ 36%] Built target SimdSsse3
    [ 37%] Built target SimdSse42
    [ 38%] Built target SimdSse41
    [ 57%] Built target SimdAvx2
    [ 58%] Built target SimdSse3
    [ 60%] Built target SimdAvx1
    Scanning dependencies of target SimdSse2
    [ 60%] Building CXX object CMakeFiles/SimdSse2.dir/Users/frankw/c_apps/Simd/src/Simd/SimdSse2Statistic.cpp.o
    [ 60%] Linking CXX static library libSimdSse2.a
    [ 78%] Built target SimdSse2
    [ 79%] Built target SimdSse1
    [ 80%] Built target Simd
    [ 80%] Linking CXX executable Example
    [ 80%] Built target Example
    [ 81%] Built target TestCheckC
    [ 82%] Linking CXX executable Test
    [100%] Built target Test
    

    BTW Great job on the library, really nice.

    -Frank

     

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.