When creating a cross-compiler the target-* bits determine features by executing the host CPP binary with host CPPFLAGS. In the case of OSX/Darwin this lead to the believe of having a sys/filio.h available and miscompiled/broken libstdc++.
A fix would be to use xgcc -E instead of /usr/bin/cpp and emptying CPPFLAGS when configuring target-* (CONFIGURE_ALL_TARGETS) -- Summary: cross-compile uses host cpp to determine features Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: freyther at inf dot fu-berlin dot de GCC host triplet: i386-darwin GCC target triplet: arm-unknown-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28615