On Tue, Feb 12, 2019 at 5:39 PM Orion Poplawski <orion@xxxxxxxx> wrote: > > On 2/12/19 1:02 AM, Jakub Jelinek wrote: > > On Mon, Feb 11, 2019 at 07:17:25PM -0700, Orion Poplawski wrote: > >> Looks like GCC 9 is finally enforcing an OpenMP change: > >> > >> From https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00628.html > > > > Please see https://gcc.gnu.org/gcc-9/porting_to.html#ompdatasharing > > which documents what you can do and what works with both compilers and what > > doesn't. > > Thanks for the reference. > > >> 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) > > > > Yes, either you want firstprivate(fp_stderr), or drop default(none) if you > > want to make it work with both compilers. > > Okay. In this case we'll probably drop default(none). Many people have > gotten into the habit of using default(none) though in order to force > declaring the form of all variables. > > >> 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) > > > > That is with GCC 8 or earlier, right? Just leave total_layers out > > of the shared clause. > > Right, because the default is to be shared. Thanks. For the lammps package I chatted with upstream: https://github.com/lammps/lammps/issues/1326 and they already had a hack_openmp script in their source for the PGI compiler, which basically boils down to something like: find . -type f \( -name "*.cpp" -or -name "*.h" \) -exec sed -e '/#pragma omp/s/default(none)/default(shared)/' -e '/#pragma omp/s/shared([^)]\+)//' -i {} + and that did the trick for now, while upstream is fixing it for good: https://github.com/lammps/lammps/pull/1330 Cheers, Christoph > > -- > 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 -- Christoph Junghans Web: http://www.compphys.de _______________________________________________ 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