https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67728
--- Comment #15 from Andrew Roberts <andrewm.roberts at sky dot com> --- Marc, not entirely clear what you mean by reproducing the issue without downloading mpfr, mpc, isl etc. Do you mean the missing symbol in GMP or the issues with GMP when using assembly code? If you could please clarify. I've built GMP 6.1.0 on its own on ARM armv7l, using the following conifgurations: ../gmp-6.1.0/configure --prefix=/home/alarm/gcc/gmp/gmp-default # This picks armv7lneon as cpu make make check # No Failures make install nm ../gmp-default/lib/libgmp.so | grep gmpn_invert_limb # 0004cca8 T __gmpn_invert_limb ../gmp-6.1.0/configure --prefix=/home/alarm/gcc/gmp/gmp-armv7l \ --target=armv7l-linux-gnu \ --build=armv7l-linux-gnu \ --host=armv7l-linux-gnu make make check # No Failures make install nm ../gmp-armv7l/lib/libgmp.so | grep gmpn_invert_limb # 0004cca8 T __gmpn_invert_limb ../gmp-6.1.0/configure --prefix=/home/alarm/gcc/gmp/gmp-none \ --target=none-linux-gnu \ --build=none-linux-gnu \ --host=none-linux-gnu make make check # No Failures make install nm ../gmp-none/lib/libgmp.a | grep gmpn_invert_limb # no .so built, gmpn_invert_limb not in .a file I note that GMP 6.1.0 at least as a configure option --enable-assembly=no which seems to disable the assembly. But as with the none-linux-gnu configuration this results in no gmpn_invert_limb symbol ../gmp-6.1.0/configure --prefix=/home/alarm/gcc/gmp/gmp-armv7l-noasm \ --target=armv7l-linux-gnu \ --build=armv7l-linux-gnu \ --host=armv7l-linux-gnu \ --enable-assembly=no make make check # No Failures make install nm ../gmp-armv7l-noasm/lib/libgmp.so | grep gmpn_invert_limb # gmpn_invert_limb not in .so or .a file So I think the problem is that ISL is using a symbol which isn't always available on all targets when no assembler is selected. But there might be merrit investigating the --enable-assembly=no configure flag and which GMP versions support it. All of this does raise several isues: 1) If we are trying to disable assembler in GMP for some reason, shouldn't we tell people building GMP outside of the tree to configure it that way. It seems strange to have spent time and effort adding all those configuration switches to find GMP, MPFR, ISL, MPC etc but then saying you really need to build it in a special way, but we're not documenting it... 2) I've also found that different gcc versions require different versions of ISL to build. For example ISL 0.14 does not work with gcc < 5.0.0, you need ISL 0.12.2. If there are dependencies on on which versions gcc needs for a given release, shouldn't they also be documented (and the download_prerequisites script updated accordingly).