Re: [PATCH] libgomp: Fix gfortran detection when program is found via PATH

Peter0x44 <[email protected]>
Newsgroups gmane.comp.gcc.patches,gmane.comp.gcc.fortran
Message-ID <[email protected]>
Pinging this. The latch fixed this problem in w64devkit
https://github.com/skeeto/w64devkit/issues/395

So I'm sure it's correct.

May 28, 2026 10:14:48 PM Peter Damianov <[email protected]>:

> The custom gfortran detection logic in libgomp's configure uses
> "test -x" to check whether the $GFORTRAN program is executable.
> However, "test -x" only succeeds for absolute or relative paths that
> name an existing file; it fails for bare program names (e.g.
> "x86_64-w64-mingw32-gfortran") that are found via $PATH lookup.
> 
> This causes FC to be incorrectly set to "no" in cross-compilation
> environments where $GFORTRAN is a bare command name rather than a
> full path.  As a result, the Fortran OpenMP module (omp_lib.mod) is
> never installed, and programs that "use omp_lib" fail with:
> 
>   Fatal Error: Cannot open module file 'omp_lib.mod' for reading
> 
> The fix adds a "command -v" fallback for testing whether a command
> is available on $PATH.
> 
> The bug was introduced in r0-98199-g2122aa973ed
> (2010-01-26), so the Fortran OpenMP module has been missing from
> cross-compiled installs for 16 years.
> 
> libgomp/ChangeLog:
> 
>     * configure.ac: Also accept $GFORTRAN when it can be found
>     via PATH lookup using "command -v", not only when "test -x"
>     succeeds on the bare name.
>     * configure: Regenerate.
> ---
> libgomp/configure    | 2 +-
> libgomp/configure.ac | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libgomp/configure b/libgomp/configure
> index 56cffe79634..a56c5691c26 100755
> --- a/libgomp/configure
> +++ b/libgomp/configure
> @@ -12270,7 +12270,7 @@ case `echo $GFORTRAN` in
>      FC=no ;;
>    *)
>      set dummy $GFORTRAN; ac_word=$2
> -    if test -x "$ac_word"; then
> +    if test -x "$ac_word" || command -v "$ac_word" >/dev/null 2>&1; then
>        FC="$GFORTRAN"
>      else
>        FC=no
> diff --git a/libgomp/configure.ac b/libgomp/configure.ac
> index 1730c62c74c..2cde2a05df4 100644
> --- a/libgomp/configure.ac
> +++ b/libgomp/configure.ac
> @@ -164,7 +164,7 @@ case `echo $GFORTRAN` in
>      FC=no ;;
>    *)
>      set dummy $GFORTRAN; ac_word=$2
> -    if test -x "$ac_word"; then
> +    if test -x "$ac_word" || command -v "$ac_word" >/dev/null 2>&1; then
>        FC="$GFORTRAN"
>      else
>        FC=no
> -- 
> 2.54.0
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.