Skip to content

Defect: OpenCoarrays-2.1.0, ISO_Fortran_binding_tests.c:53:10: error: conflicting types for '_errno' #550

@jbmaggard

Description

@jbmaggard
  • OpenCoarrays Version: 2.1.0
  • Fortran Compiler: GNU Fortran (Rev2, Built by MSYS2 project) 7.3.0
  • C compiler used for building lib: gcc.exe (Rev2, Built by MSYS2 project) 7.3.0
  • Installation method: install.sh
  • Output of uname -a: MINGW64_NT-6.1 PE-MGR-LAPTOP 2.10.0(0.325/5/3) 2018-02-09 15:25 x86_64 Msys
  • MPI library being used: Intel(R) MPI Library for Windows* OS, Version 2018 Update 2 Build 20180125
  • Machine architecture and number of physical cores: Intel Haswell, i7 (4 cores)
  • Version of CMake: 3.11.1

Attempted to build native Win64 CAF, using GCC 7.3.0 and OpenCoarrays-2.1.0 under MSYS2, following the procedure described in #541. No surprises until compiling OpenCoarrays-2.1.0/src/tests/unit/iso-fortran-binding/ISO_Fortran_binding_tests.c.

[ 72%] Building C object src/iso-fortran-binding/CMakeFiles/ISO_Fortran_binding.dir/ISO_Fortran_binding.c.obj
cd /C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0/src/iso-fortran-binding && /C/msys2/mingw64/bin/gcc.exe -DGCC_GE_7 -DHAVE_MPI -DISO_Fortran_binding_EXPORTS -DPREFIX_NAME=_gfortran_caf_ -I/C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/src -I"/C/Program Files (x86)/IntelSWTools/compilers_and_libraries_2018.2.185/windows/mpi/intel64/include" -I/C/msys2/home/maggard.admin/mpi/include  -O3 -DNDEBUG   -o CMakeFiles/ISO_Fortran_binding.dir/ISO_Fortran_binding.c.obj   -c /C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/src/iso-fortran-binding/ISO_Fortran_binding.c
[ 73%] Linking C shared library ../../bin/OpenCoarrays-2.1.0-tests/libISO_Fortran_binding.dll
cd /C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0/src/iso-fortran-binding && /C/msys2/mingw64/bin/cmake.exe -E remove -f CMakeFiles/ISO_Fortran_binding.dir/objects.a
cd /C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0/src/iso-fortran-binding && /C/msys2/mingw64/bin/ar.exe cr CMakeFiles/ISO_Fortran_binding.dir/objects.a "CMakeFiles/ISO_Fortran_binding.dir/ISO_Fortran_binding.c.obj"
cd /C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0/src/iso-fortran-binding && /C/msys2/mingw64/bin/gcc.exe  -O3 -DNDEBUG  -shared -o ../../bin/OpenCoarrays-2.1.0-tests/libISO_Fortran_binding.dll -Wl,--out-implib,../../lib/libISO_Fortran_binding.dll.a -Wl,--major-image-version,2,--minor-image-version,1 -Wl,--whole-archive CMakeFiles/ISO_Fortran_binding.dir/objects.a -Wl,--no-whole-archive -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
make[2]: Leaving directory 'C:/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0'
[ 73%] Built target ISO_Fortran_binding
C:/msys2/mingw64/bin/make -f src/tests/unit/iso-fortran-binding/CMakeFiles/ISO_Fortran_binding_tests.dir/build.make src/tests/unit/iso-fortran-binding/CMakeFiles/ISO_Fortran_binding_tests.dir/depend
make[2]: Entering directory 'C:/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0'
/C/msys2/mingw64/bin/cmake.exe -E cmake_depends "MSYS Makefiles" /C/msys2/home/maggard.admin/OpenCoarrays-2.1.0 /C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/src/tests/unit/iso-fortran-binding /C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0 /C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0/src/tests/unit/iso-fortran-binding /C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0/src/tests/unit/iso-fortran-binding/CMakeFiles/ISO_Fortran_binding_tests.dir/DependInfo.cmake --color=
make[2]: Leaving directory 'C:/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0'
C:/msys2/mingw64/bin/make -f src/tests/unit/iso-fortran-binding/CMakeFiles/ISO_Fortran_binding_tests.dir/build.make src/tests/unit/iso-fortran-binding/CMakeFiles/ISO_Fortran_binding_tests.dir/build
make[2]: Entering directory 'C:/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0'
[ 74%] Building C object src/tests/unit/iso-fortran-binding/CMakeFiles/ISO_Fortran_binding_tests.dir/ISO_Fortran_binding_tests.c.obj
cd /C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0/src/tests/unit/iso-fortran-binding && /C/msys2/mingw64/bin/gcc.exe -DGCC_GE_7 -DHAVE_MPI -DPREFIX_NAME=_gfortran_caf_ -I/C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/src -I"/C/Program Files (x86)/IntelSWTools/compilers_and_libraries_2018.2.185/windows/mpi/intel64/include" -I/C/msys2/home/maggard.admin/mpi/include  -O3 -DNDEBUG   -o CMakeFiles/ISO_Fortran_binding_tests.dir/ISO_Fortran_binding_tests.c.obj   -c /C/msys2/home/maggard.admin/OpenCoarrays-2.1.0/src/tests/unit/iso-fortran-binding/ISO_Fortran_binding_tests.c
In file included from C:/msys2/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/stddef.h:1:0,
                 from C:/msys2/home/maggard.admin/OpenCoarrays-2.1.0/src/iso-fortran-binding/ISO_Fortran_binding.h:24,
                 from C:/msys2/home/maggard.admin/OpenCoarrays-2.1.0/src/tests/unit/iso-fortran-binding/ISO_Fortran_binding_tests.c:34:
C:/msys2/home/maggard.admin/OpenCoarrays-2.1.0/src/tests/unit/iso-fortran-binding/ISO_Fortran_binding_tests.c: In function 'main':
C:/msys2/home/maggard.admin/OpenCoarrays-2.1.0/src/tests/unit/iso-fortran-binding/ISO_Fortran_binding_tests.c:53:10: error: conflicting types for '_errno'
   size_t errno;
          ^
C:/msys2/mingw64/x86_64-w64-mingw32/include/stddef.h:18:31: note: previous declaration of '_errno' was here
   _CRTIMP extern int *__cdecl _errno(void);
                               ^~~~~~
make[2]: *** [src/tests/unit/iso-fortran-binding/CMakeFiles/ISO_Fortran_binding_tests.dir/build.make:63: src/tests/unit/iso-fortran-binding/CMakeFiles/ISO_Fortran_binding_tests.dir/ISO_Fortran_binding_tests.c.obj] Error 1
make[2]: Leaving directory 'C:/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0'
make[1]: *** [CMakeFiles/Makefile2:2745: src/tests/unit/iso-fortran-binding/CMakeFiles/ISO_Fortran_binding_tests.dir/all] Error 2
make[1]: Leaving directory 'C:/msys2/home/maggard.admin/OpenCoarrays-2.1.0/prerequisites/builds/opencoarrays/2.1.0'
make: *** [Makefile:141: all] Error 2

Full output from install.sh and output from make clean; make VERBOSE=1 are posted in web folder, along with a copy of the stddef.h file.

A workaround, replacing all instances of "errno" with "iso_errno" in ISO_Fortran_binding_tests.c, appears to have been successful, passing ctest 75, after a clean install.sh build (having deleted the install and builds folders).

      Start 75: ISO_Fortran_binding_tests
75/75 Test #75: ISO_Fortran_binding_tests ..............   Passed    0.03 sec

88% tests passed, 9 tests failed out of 75

Total Test time (real) =  39.61 sec

The following tests FAILED:
         66 - image_fail_test_1 (Failed)
         67 - image_fail_and_sync_test_1 (Failed)
         68 - image_fail_and_sync_test_2 (Failed)
         69 - image_fail_and_sync_test_3 (Failed)
         70 - image_fail_and_status_test_1 (Failed)
         71 - image_fail_and_failed_images_test_1 (Failed)
         72 - image_fail_and_stopped_images_test_1 (Failed)
         73 - image_fail_and_get_test_1 (Failed)
         74 - test-installation-scripts.sh (BAD_COMMAND)
Errors while running CTest

The image_fail tests were not passed as previously discussed for 2.0.0 in #541, and the test-installation-scripts.sh fails (BAD_COMMAND) due to ctest trying to execute it as a Win64 executable file, rather than a bash script (note, installation was successful from install.sh).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions