On May 1, 2014, at 11:17 PM, Joel Sherrill <joel.sherr...@oarcorp.com> wrote:
> > On 5/1/2014 3:29 PM, Oleg Endo wrote: >> On 01 May 2014, at 22:08, Joel Sherrill <joel.sherr...@oarcorp.com> wrote: >> >>> Hi >>> >>> gcc-4.8.2 targeting sh-*-* fails to compile on >>> FreeBSD 10 which is using clang. I am hoping someone >>> has some ideas about these. >> Yes, I've noticed and mentioned this already a while ago: >> http://gcc.gnu.org/ml/gcc/2013-12/msg00036.html >> >> >>> In file included from ../../gcc-4.8.2/gcc/config/sh/sh.c:63: >>> In file included from /usr/include/c++/v1/sstream:174: >>> In file included from /usr/include/c++/v1/ostream:131: >>> In file included from /usr/include/c++/v1/ios:216: >>> In file included from /usr/include/c++/v1/__locale:15: >>> In file included from /usr/include/c++/v1/string:438: >>> In file included from /usr/include/c++/v1/cwchar:107: >>> In file included from /usr/include/c++/v1/cwctype:54: >>> /usr/include/c++/v1/cctype:51:72: error: use of undeclared identifier >>> 'do_not_use_isalnum_with_safe_ctype' >>> inline _LIBCPP_INLINE_VISIBILITY int __libcpp_isalnum(int __c) {return >>> isalnum(__c);} >>> >>> sh.c line 63 is this: >>> >>> #include <sstream> >>> #include <vector> >>> #include <algorithm> >>> >>> It is the only file in gcc/config/* to include sstream. Has some >>> update sweep for C++ transition missed this file? >> Could you please try moving the std includes above any other (gcc) includes >> and see if it fixes the issue? AFAIR it did it for me. > This seems to fix it. I am not sure why sh.c is the only file in > gcc/config which includes sstream though. Because I added code to sh.c that uses stuff from sstream after the switch to C++. > Is this a violation > of some new rule? Not that I'm aware of. > Is there a PR for this? > > If not, I probably should file one and get the patch pushed > into 4.8 as well as 4.9 and the head if they need it. > If you insist on having a PR for it, please feel free. In any case, I'll commit the 'fix' to trunk and the branches by tomorrow. Cheers, Oleg