I tried to compile mpich-1.1.4 on cygwin 1.7.35 with the following configure flags:
./configure --prefix=/home/lanton/Apps/mpich-3.1.4-install --enable-fortran=yes --with-pm=gforker --enable-threads=serialized --enable-romio --disable-cxx --enable-static --disable-shared
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I./src/include -I./src/include -I./src/mpi/datatype -I./src/mpi/spawn -Isrc/util/logging/common -I./src/util/wrappers -I./src/util/wrappers -I/home/lanton/Apps/mpich-3.1.4/src/binding/fortran/mpif_h -Isrc/binding/fortran/use_mpi
-I./src/mpid/ch3/include -I./src/mpid/ch3/include -I./src/mpid/ch3/channels/nemesis/include -I./src/mpid/ch3/channels/nemesis/include -I./src/mpid/ch3/channels/nemesis/utils/monitor -I./src/mpid/common/datatype -I./src/mpid/common/datatype -I./src/mpid/common/sched
-I./src/mpid/common/thread -I./src/pmi/simple -I/home/lanton/Apps/mpich-3.1.4/src/mpl/include -I/home/lanton/Apps/mpich-3.1.4/src/mpl/include -I/home/lanton/Apps/mpich-3.1.4/src/openpa/src -I/home/lanton/Apps/mpich-3.1.4/src/openpa/src -D_REENTRANT -I/home/lanton/Apps/mpich-3.1.4/src/mpi/romio/include
-O2 -MT src/mpi/pt2pt/lib_libmpi_la-greq_start.lo -MD -MP -MF src/mpi/pt2pt/.deps/lib_libmpi_la-greq_start.Tpo -c src/mpi/pt2pt/greq_start.c -o src/mpi/pt2pt/lib_libmpi_la-greq_start.o
src/mpi/pt2pt/greq_start.c:234:5: error: function ‘MPIX_Grequest_class_create’ part of alias cycle
int MPIX_Grequest_class_create(MPI_Grequest_query_function *query_fn,
^
src/mpi/pt2pt/greq_start.c:331:5: error: function ‘MPIX_Grequest_class_allocate’ part of alias cycle
int MPIX_Grequest_class_allocate(MPIX_Grequest_class greq_class, void *extra_state, MPI_Request *request) __attribute__((weak,alias("MPIX_Grequest_class_allocate")));
^
src/mpi/pt2pt/greq_start.c:376:5: error: function ‘MPIX_Grequest_start’ part of alias cycle
int MPIX_Grequest_start( MPI_Grequest_query_function *query_fn,
^
Makefile:29186: recipe for target 'src/mpi/pt2pt/lib_libmpi_la-greq_start.lo' failed
make[2]: *** [src/mpi/pt2pt/lib_libmpi_la-greq_start.lo] Error 1
make[2]: Leaving directory '/home/lanton/Apps/mpich-3.1.4'
Makefile:40727: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/lanton/Apps/mpich-3.1.4'
Makefile:10139: recipe for target 'all' failed
make: *** [all] Error 2
To avoid the weak aliases I have tried builds with configure CPPFLAGS set to -DHAVE_PRAGMA_WEAK or -DHAVE_PRAGMA_HP_SEC_DEF.
In this case the sources are compiled by the link fails because of unresolved symbols.