GCC 9 OpenMP issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Looks like GCC 9 is finally enforcing an OpenMP change:

From https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00628.html

- change data sharing for readonly variables without mutable members, they are no longer predetermined shared (this actually changed in earlier OpenMP standard releases, but was considered a mistake; for 5.0 it was decided it isn't going to
  be reverted; this makes a difference mainly when using default(none))


Which is now leading to some (expected) compilation failures:

BUILDSTDERR: nco_omp.c: In function 'nco_openmp_ini':
BUILDSTDERR: nco_omp.c:210:38: error: 'fp_stderr' not specified in enclosing 'parallel' BUILDSTDERR: 210 | if(nco_dbg_lvl_get() >= nco_dbg_fl) (void)fprintf(fp_stderr,"%s: INFO Small parallel test region spawned team of %d thread(s)\n",nco_prg_nm_get(),thr_nbr_act); BUILDSTDERR: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BUILDSTDERR: nco_omp.c:205:10: error: enclosing 'parallel'
BUILDSTDERR:   205 | # pragma omp parallel default(none) shared(thr_nbr_act)
BUILDSTDERR:       |          ^~~


The problem is that it's proving difficult to come up with a solution that compiles under both GCC 9 and GCC 8.

GCC 8 complains about just adding fp_stderr to shared():

nco_omp.c: In function 'nco_openmp_ini':
nco_omp.c:205:43: error: 'fp_stderr' is predetermined 'shared' for 'shared'
 # pragma omp parallel default(none) shared(fp_stderr,thr_nbr_act)

And apparently complains if you drop default(none) as well (from another project with the same problem):

[  9%] Building CXX object CMakeFiles/_CuraEngine.dir/src/layerPart.cpp.o
/home/ruben/Projects/CuraEngine/src/layerPart.cpp: In function ‘void cura::createLayerParts(cura::SliceMeshStorage&, cura::Slicer*)’: /home/ruben/Projects/CuraEngine/src/layerPart.cpp:52:78: error: ‘total_layers’ is predetermined ‘shared’ for ‘shared’ #pragma omp parallel for shared(mesh, slicer, total_layers) schedule(dynamic)

https://github.com/nco/nco/issues/114
https://github.com/Ultimaker/CuraEngine/issues/984

Is there any hope of a common solution?

Thanks!

- Orion

--
Orion Poplawski
Manager of NWRA Technical Systems          720-772-5637
NWRA, Boulder/CoRA Office             FAX: 303-415-9702
3380 Mitchell Lane                       orion@xxxxxxxx
Boulder, CO 80301                 https://www.nwra.com/
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux