PATCH: define __user

Robert Shearman rob at codeweavers.com
Mon Mar 6 18:30:43 CST 2006


dmitry serpokryl wrote:

> Hi,
>
> please beg my pardon for the kind of a possible stupidity, but:
>
> 1. I'm using SuSE kernel for SuSE 10 x86-64, so all compiliation goes 
> into  x86-64 (not in i386) mode by default


Wine automatically adds the -m32 flag to gcc to force it to compile in 
i386 mode.

> 2. gcc - 4.0.2 (release):
> Target: x86_64-unknown-linux-gnu
> Configured with: ../configure --prefix=/usr/local/gcc-4.0.2
> Thread model: posix
> gcc version 4.0.2


That's fine.

> 3. $ wine  --version
> Wine 0.9.7
> (compiled some times ago from CVS. I make CVS updates monthly)


As is this.

> 4. $ locate unistd.h | egrep usr/include
> /usr/include/asm-i386/unistd.h
> /usr/include/asm-x86_64/ia32_unistd.h
> /usr/include/asm-x86_64/unistd.h
> /usr/include/asm.default/ia32_unistd.h
> /usr/include/asm.default/unistd.h
> /usr/include/kpathsea/c-unistd.h
> /usr/include/linux.default/unistd.h
> /usr/include/sys/unistd.h
> /usr/include/unistd.h
>
>
> 5. /usr/include/asm is a symlink, pointing to ->  
> /usr/src/linux/include/asm/


I think this is the problem. Is this a default symlink on your distro or 
was it put there by installing kernel source?

> So, I'm not quite understand the reason of compiliation error at this 
> time.


In 32-bit mode the i386 headers should be used instead of x86-64 ones. 
On your system this isn't happening, although the headers are there. Try 
looking in /usr/include/asm.default and seeing whether they try to do 
the right thing and select the right unistd.h for the environment.

>
> Please beg my pardon for the disturbing.
>
> Thanks,
>
> My best regards,
> Dmitry
>
>
>
> On Tue, 28 Feb 2006 08:08:45 -0300, Robert Shearman 
> <rob at codeweavers.com>  wrote:
>
>> dmitry serpokryl wrote:
>>
>>> Hi, thanks for your feedback.
>>>
>>> I just updated wine cvs, no ./configure errors but still "make" 
>>> unable  to  complete:
>>>
>>> gcc -m32 -c -I. -I. -I../../include -I../../include  
>>> -D__WINESRC__    -D_NTSYSTEM_ -D_REENTRANT -fPIC -Wall -pipe 
>>> -fno-strict-aliasing   -gstabs+ -Wdeclaration-after-statement 
>>> -Wpointer-arith  -g -O2  -o   signal_i386.o signal_i386.c
>>> signal_i386.c: In function ‘wine_sigaction’:
>>> signal_i386.c:123: error: ‘__NR_sigaction’ undeclared (first use in  
>>> this  function)
>>
>>
>>
>> You're using some buggy headers that define SYS_sigaction, but don't  
>> define __NR_sigaction. You should have /usr/include/asm/unistd.h 
>> that  includes /usr/include/asm-i386/unistd.h if not compiling in 
>> x86_64 mode,  and the latter should have a define for __NR_sigaction.
>>
>
>
>


-- 
Rob Shearman




More information about the wine-devel mailing list