Skip to content

Build error: Error: Invalid type-spec (./src/M_strings.f90:9602:34) #2

Description

@wiremoons

UPDATED: Found a couple of other similar issues and it appears this is a gfortran and Apple Silicon M1 CPU (arm64) problem - so nothing directly / specifically to do with the M_strings.f90. For reference see:

If you wan to close this issue that is fine - hopefully it will be useful anyway in case another person finds the same problem.

ORGINAL REPORT BELOW:

Hi

I am new to Fortran - so apologies in advance if this is some newbie error!

I was trying to build fpm-search that depends on M_strings. It was failing to build due to a problem with M_strings.

I have re-downloaded M_strings by cloning the repo directly, and following the instructions in the 'Readme.md' for the gfortran complier.

In the src sub-directory, I run make clean and then make F90=gfortran gfortran. Below is a copy of the output:

% make F90=gfortran gfortran

gfortran -g -O -Wall -std=f2018 -Wextra -Wno-maybe-uninitialized -Wno-uninitialized -finit-local-zero -c M_strings.f90
M_strings.f90:9602:34:

 9602 |       type is (real(kind=real128));     write(line(istart:),'(1pg0)') generic
      |                                  1
Error: Invalid type-spec at (1)
M_strings.f90:9659:34:

 9659 |       type is (real(kind=real128));     write(line(istart:),'("[",*(1pg0,1x))') generic
      |                                  1
Error: Invalid type-spec at (1)
M_strings.f90:3601:49:

 3601 |    forall(i=1:len(string)) array(i) = string(i:i)
      |                                                 1
Warning: Fortran 2018 obsolescent feature: FORALL construct at (1)
M_strings.f90:3587:52:

 3587 |    forall( i = 1:size(array)) string(i:i) = array(i)
      |                                                    1
Warning: Fortran 2018 obsolescent feature: FORALL construct at (1)
make: *** [M_strings.o] Error 1

I also tried to build with fpm build (after running make clean first - if that makes any difference!). The output then is as below:

% fpm build

 + mkdir -p build/dependencies
Initialized empty Git repository in /Users/simon/scratch/fortran/fpm-search/build/dependencies/M_strings/build/dependencies/M_msg/.git/
remote: Enumerating objects: 102, done.
remote: Counting objects: 100% (102/102), done.
remote: Compressing objects: 100% (78/78), done.
remote: Total 102 (delta 41), reused 55 (delta 23), pack-reused 0
Receiving objects: 100% (102/102), 270.10 KiB | 1.73 MiB/s, done.
Resolving deltas: 100% (41/41), done.
From https://github.com/urbanjost/M_msg
 * branch            HEAD       -> FETCH_HEAD
 + mkdir -p build/gfortran_2A42023B310FA28D/M_strings
 + gfortran -c ././src/M_strings.f90 -Wall -Wextra -Wimplicit-interface -fPIC -fmax-errors=1 -g -fcheck=bounds -fcheck=array-temps -fbacktrace -fcoarray=single -J build/gfortran_2A42023B310FA28D/M_strings -I build/gfortran_2A42023B310FA28D/M_strings  -o build/gfortran_2A42023B310FA28D/M_strings/src_M_strings.f90.o
././src/M_strings.f90:9602:34:

 9602 |       type is (real(kind=real128));     write(line(istart:),'(1pg0)') generic
      |                                  1
Error: Invalid type-spec at (1)
compilation terminated due to -fmax-errors=1.
 <ERROR> Compilation failed for object "src_M_strings.f90.o"
STOP 1

The error using both approaches look like the same issue, but that's is about as far as my wisdom on the matter goes!

Is it a source code problem - or user error?

The build is being done on a Apple Mac mini (Apple Silicon M1 - arm64) version 11.5.2 (Big Sur) using gfortran installed from brew - version info below:

% gfortran -v

Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/opt/homebrew/Cellar/gcc/11.2.0/libexec/gcc/aarch64-apple-darwin20/11.1.0/lto-wrapper
Target: aarch64-apple-darwin20
Configured with: ../configure --prefix=/opt/homebrew/Cellar/gcc/11.2.0 --libdir=/opt/homebrew/Cellar/gcc/11.2.0/lib/gcc/11 --disable-nls --enable-checking=release --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-11 --with-gmp=/opt/homebrew/opt/gmp --with-mpfr=/opt/homebrew/opt/mpfr --with-mpc=/opt/homebrew/opt/libmpc --with-isl=/opt/homebrew/opt/isl --with-zstd=/opt/homebrew/opt/zstd --with-pkgversion='Homebrew GCC 11.2.0' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --build=aarch64-apple-darwin20 --with-system-zlib --disable-multilib --with-native-system-header-dir=/usr/include --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.1.0 (Homebrew GCC 11.2.0)

Thanks

Simon

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions