When compiling a Win64 i686-w64-mingw32 compiler with multilib, ada fails to build with similar errors as reported in http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37993 There is currently no selection on the i686 side for multilib, as the gcc/gcc-interface/ada Makefile assumes that no ix86 mingw* targets may be compiled multilib.
This can be fixed with something similar to the following trivial patch: diff a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in --- a/gcc/ada/gcc-interface/Makefile.in +++ b/gcc/ada/gcc-interface/Makefile.in @@ -1649,8 +1649,13 @@ ifeq ($(strip $(filter-out cygwin32% mingw32% pe,$(osys))),) LIBGNAT_TARGET_PAIRS += \ system.ads<system-mingw-x86_64.ads else - LIBGNAT_TARGET_PAIRS += \ - system.ads<system-mingw.ads + ifeq ($(strip $(MULTISUBDIR)),/64) + LIBGNAT_TARGET_PAIRS += \ + system.ads<system-mingw-x86_64.ads + else + LIBGNAT_TARGET_PAIRS += \ + system.ads<system-mingw.ads + endif endif EXTRA_GNATRTL_NONTASKING_OBJS = \ -- Summary: Missing ada multilib on i686-w64-mingw32 target Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dougsemler at gmail dot com GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: i686-w64-mingw32 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43731