This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cannot build gcc-4.1.2 on cygwin: /bin/sh: kinds.h: No such file or directory


[ adding gcc@ back to CC ]

Christian Joensson wrote:

> > for k in 4 8 10 16; do
> >   echo "  real (kind=$k) :: x" > tmp$$.f90
> >   echo "  end" >> tmp$$.f90
> >   /usr/local/src/branch/objdir/./gcc/gfortran \
> >    -B/usr/local/src/branch/objdir/./gcc/ \
> >    -B/usr/local/i686-pc-cygwin/bin/ \
> >    -B/usr/local/i686-pc-cygwin/lib/ \
> >    -isystem /usr/local/i686-pc-cygwin/include \
> >    -isystem /usr/local/i686-pc-cygwin/sys-include \
> >    -I . -Wall -fno-repack-arrays -fno-underscoring -c tmp$$.f90 || \
> >    echo "exit status: $?"
> > done
> 
> exit status: 1
> exit status: 1
> exit status: 1
> exit status: 1

Well that is weird.  Exit status 1, yet no output on either stdout or
stderr?  Sounds broken.

> > If that says 128 then that means missing DLL; make sure you have
> > libgmp3, libmpfr0, and libmpfr1 packages installed.
> 
> well, running a cygcheck -s -v -r > cygcheck.out and then grepping for
> gmp and mpfr gives me this:
> 
> chj@toppen /usr/local/src/branch/objdir
> $ grep gmp cygcheck.out
>   183k 2006/11/30 C:\cygwin\bin\cygmpfr-1.dll - os=4.0 img=1.0 sys=4.0
>                   "cygmpfr-1.dll" v0.0 ts=2006/11/30 13:21
> gmp                     4.2.1-1
> libgmp-devel            4.2.1-1
> libgmp3                 4.2.1-1
> 
> chj@toppen /usr/local/src/branch/objdir
> $ grep mpfr cygcheck.out
>   183k 2006/11/30 C:\cygwin\bin\cygmpfr-1.dll - os=4.0 img=1.0 sys=4.0
>                   "cygmpfr-1.dll" v0.0 ts=2006/11/30 13:21
> libmpfr-devel           2.2.1-1
> libmpfr1                2.2.1-1
> mpfr                    2.2.1-1
> 
> which seems right to, don't you agree? the libmpfr0 is not installed,
> what is it and why is it needed, you mean?

The lib<foo><n> packages contain the actual DLL files (i.e. the part
needed at runtime.)  When a library has multiple ABIs / multiple
versions to support there will be one for each ABI version of the
library.  I would think that gfortran would be linked against libmpfr1
and that libmpfr0 would not be needed, but who knows.  It would be good
to install it anyway.

And also, run cygcheck on the binaries to see what they're linked to:

cd /usr/local/src/branch/objdir/gcc && \
 for F in cc1 collect2 f951 gfortran xgcc; do cygcheck ./$F.exe; done

In my build dir this shows that only cyggmp-3.dll and cygmpfr-1.dll are
used, with no reference to cygmpfr-0.dll.

Brian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]