From: Kai T. <kti...@go...> - 2010-10-16 08:11:31
|
2010/10/16 Ruben Van Boxem <van...@gm...>: > Hi, > I have started trying to build Clang with mingw-w64 tools. The x64 build > fails because an LLVM tool called tblgen is miscompiled, so I tried a x86 > build instead for now. This works until the utterly final step, and some > error types are undeclared: >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:260: error: >> 'EAFNOSUPPORT' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:261: error: >> 'EADDRINUSE' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:262: error: >> 'EADDRNOTAVAIL' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:263: error: >> 'EISCONN' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:268: error: >> 'EBADMSG' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:270: error: >> 'ECONNABORTED' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:271: error: >> 'EALREADY' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:272: error: >> 'ECONNREFUSED' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:273: error: >> 'ECONNRESET' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:275: error: >> 'EDESTADDRREQ' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:283: error: >> 'EHOSTUNREACH' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:284: error: >> 'EIDRM' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:292: error: >> 'EMSGSIZE' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:293: error: >> 'ENETDOWN' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:294: error: >> 'ENETRESET' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:295: error: >> 'ENETUNREACH' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:296: error: >> 'ENOBUFS' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:298: error: >> 'ENOLINK' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:303: error: >> 'ENOMSG' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:305: error: >> 'ENOMSG' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:306: error: >> 'ENOPROTOOPT' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:318: error: >> 'ENOTSOCK' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:324: error: >> 'ENOTCONN' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:326: error: >> 'ENOTSUP' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:327: error: >> 'ECANCELED' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:328: error: >> 'EINPROGRESS' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:330: error: >> 'EOPNOTSUPP' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:331: error: >> 'EWOULDBLOCK' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:332: error: >> 'EOWNERDEAD' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:334: error: >> 'EPROTO' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:335: error: >> 'EPROTONOSUPPORT' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:340: error: >> 'ENOTRECOVERABLE' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:344: error: >> 'ETIMEDOUT' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:346: error: >> 'ETXTBSY' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:347: error: >> 'ETIMEDOUT' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:351: error: >> 'ELOOP' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:352: error: >> 'EOVERFLOW' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:353: error: >> 'EPROTOTYPE' was not declared in this scope >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h: In >> function 'bool llvm::operator<(const llvm::error_condition&, const >> llvm::error_condition&)': >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:458: >> warning: suggest parentheses around '&&' within '||' >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h: In >> function 'bool llvm::operator<(const llvm::error_code&, const >> llvm::error_code&)': >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:517: >> warning: suggest parentheses around '&&' within '||' >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h: At global >> scope: >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\/system_error.h:555: error: >> expected class-name before '{' token >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\KillTheDoctor.cpp:218: >> warning: 'std::string QuoteProgramPathIfNeeded(llvm::StringRef)' defined but >> not used >> >> M:\Development\Source\LLVM\utils\KillTheDoctor\KillTheDoctor.cpp:276: >> warning: 'llvm::error_code EnableDebugPrivileges()' defined but not used > > I found most (if not all) of them > in include\c++\4.4.5\x86_64-w64-mingw32\bits\error_constants.h, but they are > cmmented out... How should I proceed? > Thanks, > Ruben > > ------------------------------------------------------------------------------ > Download new Adobe(R) Flash(R) Builder(TM) 4 > The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly > Flex(R) Builder(TM)) enable the development of rich applications that run > across multiple browsers and platforms. Download your free trials today! > http://p.sf.net/sfu/adobe-dev2dev > _______________________________________________ > Mingw-w64-public mailing list > Min...@li... > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > > Well, those symbols you are seeing are in fact POSIX error numbers, which aren't present for native win32. So you have two chances here. First define those error-numbers (see here errno.h). The other variant is to modify Clang/LLVM in a way not to use those error-numbers. The latter is the correct way to solve it, the first is more a hack and can lead to other issues. Regards, Kai -- | (\_/) This is Bunny. Copy and paste | (='.'=) Bunny into your signature to help | (")_(") him gain world domination |