|
|
Hello !
>> Yes I can confirm the behavior for clang-10,clang-11 and clang-12.
>
> "Yes" as in "yes, that's specific to the Unix source package", or as in
> "yes, they also occur when building from the 'raw' repository source"?
>
> It can't be both, and to invesigate the matter it would help to know
> which of the two is the case.
I am sorry, but both packages are affected.
MD5SUM:
8e2b067662f6543885e65b71e4ef1377 povunix-v3.8.0-beta.668.tar.gz
8509e003a48ee55d0068c17064186269 povray-3.8.0-pre-beta.668.tar.gz
povunix:
Compilation settings:
Build architecture: x86_64-pc-linux-gnu
Built/Optimized for: x86_64-pc-linux-gnu
Compiler vendor: gnu
Compiler version: clang++-10 10.0.1
Compiler flags: -pipe -Wno-multichar -Wno-write-strings
-march=znver2 -mtune=znver2 -O2 -mfma -mavx -mavx2 -pthread
Libraries: -lSDL -L/usr/lib64 -lSDL -lpthread -lXpm -lSM
-lICE -lX11 -lIlmImf -lIlmImf-2_5 -lImath-2_5 -lHalf-2_5 -lIex-2_5
-lIexMath-2_5 -lIlmThread-2_5 -pthread -lIlmThread -ltiff -ljpeg -lpng
-lz -lrt -lm -lboost_thread -lboost_system -lamdlibm -lm -pthread
No output for optimized noise.
Now with additional CXX-Flag -fgnuc-version=5 as Bill P. suggested.
Compilation settings:
Build architecture: x86_64-pc-linux-gnu
Built/Optimized for: x86_64-pc-linux-gnu
Compiler vendor: gnu
Compiler version: clang++-10 10.0.1
Compiler flags: -pipe -Wno-multichar -Wno-write-strings
-march=znver2 -mtune=znver2 -O2 -fgnuc-version=5 -mfma -mavx -mavx2 -pthread
Libraries: -lSDL -L/usr/lib64 -lSDL -lpthread -lXpm -lSM
-lICE -lX11 -lIlmImf -lIlmImf-2_5 -lImath-2_5 -lHalf-2_5 -lIex-2_5
-lIexMath-2_5 -lIlmThread-2_5 -pthread -lIlmThread -ltiff -ljpeg -lpng
-lz -lrt -lm -lboost_thread -lboost_system -lamdlibm -lm -pthread
Output:
Dynamic optimizations:
CPU detected: AMD,SSE2,AVX,AVX2,FMA3
Noise generator: avx-generic (compiler-optimized)
This -fgnuc version=5 causes __GNUC__ to be defined by the clang
compiler. The query of the compiler
is done in unix/povconfig/syspovconfig.h.
From the clang documentation:
-fgnuc-version=
This flag controls the value of __GNUC__ and related macros. This
flag does not enable or disable any GCC extensions implemented in Clang.
Setting the version to zero causes Clang to leave __GNUC__ and other
GNU-namespaced macros, such as __GXX_WEAK__, undefined.
With the background of
http://news.povray.org/povray.unix/thread/%3C5b92aa0d%40news.povray.org%3E/
building POV-Ray with clang instead of gcc
I would recommend to include clang in unix/povconfig/syspovconfig.h.
Clang has the ability to handle this since version 3.1.
I don't only compile but also test the runtime behavior of povray. In
this context I noticed with clang builds of povray that the compiler
flag -ffast-math has a degrading runtime behavior (more than four times
longer runtime). This is not caused by the noise code and can't be
explained at first, -Ofast has the same behavior.
regards
Thomas Debe
Post a reply to this message
|
|