On my Ubuntu precise system /usr/include/bits is a symlink to /usr/include/x86_64-linux-gnu/bits. This breaks the fix for fenv.h, which only looks for bits/fenv.h. The ordering of the directories is such that x86_64-linux-gnu/bits is handled first, which means that nothing in bits is handled explicitly.
When fenv.h is not fixed, libquadmath does not build. This patch works around the problem. Bootstrapped and tested on x86_64-unknown-linux-gnu. OK for mainline? Ian 2013-11-06 Ian Lance Taylor <i...@google.com> * inclhack.def (feraiseexcept_nosse_invalid): Match */bits/fenv.h, for Ubuntu where /usr/include/bits is a symlink. (feraiseexcept_nosse_divbyzero): Likewise. * fixincl.x: Regenerate.
Index: inclhack.def =================================================================== --- inclhack.def (revision 204430) +++ inclhack.def (working copy) @@ -4768,6 +4768,7 @@ fix = { hackname = feraiseexcept_nosse_invalid; mach = 'i[34567]86-*-linux*', 'x86*-linux*', 'amd64-*-linux*'; files = bits/fenv.h; + files = "*/bits/fenv.h"; select = "^([\t ]*)__asm__ __volatile__ \\(\"divss %0, %0 *\" : " ": \"x\" \\(__f\\)\\);$"; bypass = "\"fdiv .*; fwait\""; @@ -4795,6 +4796,7 @@ fix = { hackname = feraiseexcept_nosse_divbyzero; mach = 'i[34567]86-*-linux*', 'x86*-linux*', 'amd64-*-linux*'; files = bits/fenv.h; + files = "*/bits/fenv.h"; select = "^([\t ]*)__asm__ __volatile__ \\(\"divss %1, %0 *\" : " ": \"x\" \\(__f\\), \"x\" \\(__g\\)\\);$"; bypass = "\"fdivp .*; fwait\"";