[Bf-committers] [PATCH] Fix for GCC9 new OpenMP data sharing

Robert-André Mauchin zebob.m at gmail.com
Wed Apr 3 02:47:46 CEST 2019


Hello,

We (Fedora) have blender 2.79b failing to build from source with GCC 9 in 
Fedora 30 and Rawhide.

See log: https://kojipkgs.fedoraproject.org/work/tasks/9457/33889457/build.log

After investigation, this is caused by a change in GCC 9 as noted in the 
"Porting to GCC 9" page:

>OpenMP data sharing

>GCC releases before 9 were implementing an OpenMP 3.1 data sharing rule that 
>const qualified variables without mutable member are predetermined shared, 
>but as an exception may be specified in the firstprivate clause. OpenMP 4.0 
>dropped this rule, but in the hope that the incompatible change will be 
>reverted GCC kept implementing the previous behavior. Now that for OpenMP 5.0 
>it has been confirmed this is not going to change, GCC 9 started implementing 
>the OpenMP 4.0 and later behavior. When not using default clause or when 
>using default(shared), this makes no difference, but if using default(none), 
>previously the choice was not specify the const qualified variables on the 
>construct at all, or specify in firstprivate clause. In GCC 9 as well as for 
>OpenMP 4.0 compliance, those variables need to be specified on constructs in 
>which they are used, either in shared or in firstprivate clause. Specifying 
>them in firstprivate clause is one way to achieve compatibility with both 
>older GCC versions and GCC 9, another option is to drop the default(none) 
>clause. In C++, const variables with constant initializers which are not odr-
>used in the region, but replaced with their constant initializer are not 
>considered to be referenced in the region for default(none) purposes. 

https://gcc.gnu.org/gcc-9/porting_to.html#ompdatasharing

This patch solves the build failure by dropping the default(none) clause in 
intern/elbeem/intern/solver_main.cpp.

Here's a link to a successful build with this patch applied:
https://koji.fedoraproject.org/koji/taskinfo?taskID=33898420

Best regards,

Robert-André

ps: please don't ask me to register to https://developer.blender.org/ to 
upload this patch.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Fix-for-GCC9-new-OpenMP-data-sharing.patch
Type: text/x-patch
Size: 2514 bytes
Desc: not available
URL: <http://lists.blender.org/pipermail/bf-committers/attachments/20190403/c35e0fde/attachment.bin>


More information about the Bf-committers mailing list