Hi Kai -

A minor question about error numbers...

On Sat, Oct 16, 2010 at 4:11 AM, Kai Tietz <[email protected]> wrote:
> 2010/10/16 Ruben Van Boxem <[email protected]>:
>> 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
>>> ...
>> 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
>> ...
>
> 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.

I had one instance of a similar issuer with std::thread.  mutex (the mutex
header file) uses the value operation_not_permitted.  Because this has a
definition in error_constants.h that is commented out:

   //    operation_not_permitted =         EPERM,

I assumed that it was perfectly appropriate and safe to fix the problem by
uncommenting the line in question, thus defining operation_not_permitted.

(Note, my problem is not fully analogous to Ruben's: for me, EPERM is
defined, just not operation_not_permitted.)

I hadn't realized that defining these error constants could cause issues.
Is my current solution good and safe, or should I do something else?
(In my case, it's just two lines in mutex that use just one constant, so
just about any solution could be easily implemented.)

Thanks.

> Regards,
> Kai
> --
> |  (\_/) This is Bunny.

(Ho, Bunny!  World domination ist nicht gestattet!)


K. Frank

------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to