http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58276
Bug ID: 58276 Summary: "make install-host" gfortran is not functional Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: baker at usgs dot gov Background I am using the Open Embedded/Yocto Project "bitbake" machinery to build an embedded system. I actually use a derivative, called ELDK, from DENX. The git download and a sample build procedure are at http://www.denx.de/wiki/view/ELDK-5/EldkBuilding. The build procedure creates both a cross toolchain on the development host and a custom rootfs image for the target device. By default, GNU 4.7.2 C and C++ cross compilers are created and used to create the rootfs image. I also need Fortran for my application, so I enable the bitbake GCC build recipe to include "fortran" in the --enable-languages= configure option. Problem The build procedure produces all three cross compilers I need: gcc, g++, and gfortran. gcc and g++ are functional. However, gfortran fails in the link step with the error: arm-linux-gnueabi-gfortran: error: libgfortran.spec: No such file or directory. This is true; there is no libgfortran.spec in the cross compilers directory tree. Diagnosis When I have built my own gfortran ARM cross compilers, I do not have this problem. And, there are many libgfortran.* files in the gfortran cross compiler directory in addition to libgfortran.spec. I use "make install" as the last step when I made my own gfortran. However, I found the bitbake GCC build recipe uses "make install-host". The difference is, the bitbake GCC build recipe leaves off the "make install-target" step. I experimented with various "make install" commands using my own gfortran ARM cross compiler build. I verified that libgfortran.spec is not created by "make install-host", but is created by "make install-target". (See http://lists.denx.de/pipermail/eldk/2013-August/002356.html for a detailed explanation of of my diagnosis.) I Think This Is a Bug I am not sure what my expectation should be after a "make install-host". I cannot find any documentation of the differences between "make install", "make install-host", and "make install-target". Given that the bitbake GCC build recipes use "make install-host", I assume "make install-host" is intended to install functional cross compilers on a development host. That is my expectation. Indeed, as I mentioned, the gcc and g++ cross compilers work fine. If that is true, then "make install-gcc" is broken when it leaves out libgfortran.spec, and any other libgfortran.* files that are required for cross compilations, as part of the gfortran install step. At a minimum, I would think an empty libgfortran.spec should be created (assuming the compiler will accept that), which should then be replaced by the proper libgfortran.spec when a "make install-libgfortran" is executed. Thank you. Larry Baker US Geological Survey