Re: About pkg() function and compiling options in mkoctfile

Kai Torben Ohlhus <[email protected]>
Newsgroups gmane.comp.gnu.octave.maintainers
Message-ID <[email protected]>
On 5/16/20 9:29 PM, José Luis García Pallero wrote:
> Hello:
> 
> Some days ago I asked about the reason of the -fopenmp is present by
> default in mkoctfile
> (https://lists.gnu.org/archive/html/octave-maintainers/2020-05/msg00057.html)
> 
> The reason of my question was that new versions of GCC handle better
> than previous ones with some OpenMP directives. For example, now is
> mandatory to declare explicitly all shared variables in the shared()
> directive when the default(none) option is employed. Prior visions of
> GCC does not require this for variables declared as const, but in the
> standard was always mandatory (see
> http://forum.openmp.org/forum/viewtopic.php?f=3&t=2104). So some code
> must be changed in order to complain with the standard as newer GCC
> versions complain. For example, the GCC provided with Debian stable
> produces error when const variables are declared in shared() (see
> https://sourceforge.net/p/octave/package-releases/417/#681d)
> 
> Then, the fact that mkoctfile activates by default the OpenMP support
> makes some cone not compilable in some systems. I can see that the
> -pthread -fopenmp options for mkoctfile are stored in the globals
> ALL_CFLAGS and ALL_CXXFLAGS, which also contain some information about
> include folders
> 
> But I think that ask the user to edit manually this variables in order
> to install a package is not a good idea. So I propose to add an option
> to the pkg() function in order to activate or deactivate the OpenMP
> (and pthreads maybe) option. Or maybe more in general an option to
> pass information and options from pkg() to mkoctfile. Or both things.
> 
> I think that other discussion could be if mkocfile should activate by
> default the OpenMP dupport
> 
> Thanks
> 


Thank you for providing more information.  You said: "So some code must
be changed".  I still do not understand which code is affected?  Does
this code contain "#pragma omp" sections that are beyond your control?

In general it sounds like a great idea to change code to follow a
standard, rather than relying on implementation defined behavior.  I do
not see a reason to make Octave more complicated, rather than fixing
code to conform to a standard upstream.

Kai
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.