Re: [Mesa3d-dev] Current tinderbox regression (swrastg_dri, sparc64)

2010-03-28 Thread Matt Turner
On Sun, Mar 28, 2010 at 3:07 PM, Luca Barbieri  wrote:
> On Sun, Mar 28, 2010 at 7:36 PM, Chris Ball  wrote:
>> Hi,
>>
>>   > http://tinderbox.x.org/builds/2010-03-25-0018/logs/libGL/#build
>>   >
>>   > swrastg_dri.so.tmp: undefined reference to `__sync_sub_and_fetch_4'
>>   > swrastg_dri.so.tmp: undefined reference to `__sync_add_and_fetch_4'
>>
>> This regression is still present -- could we get a fix or a revert?
>
> I believe the problem is that sparc does not support atomic operations
> in the basic architecture: I think someone who knows about sparc and
> has such a machine should look into it.
>
> If you don't know anything about sparc, try rebuilding with the
> highest possible sparc -march= level and if that fixes the problem,
> perform a binary search to find the minimum one, and then report the
> results.
>
> If it does not solve the problem, see if anything in /lib or /usr/lib
> exports those symbols.
>
> Also maybe check whether the built swrastg_dri or xlib softpipe
> actually works there.

I think we need to be specifying something like -mcpu=v9 or something
to be able to use the __sync_* primitives. I highly doubt anyone wants
to run any of this code on something older.

I've CC'd Dave Miller--he'll know what to do.

Thanks,
Matt

--
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
___
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev


Re: [Mesa3d-dev] Current tinderbox regression (swrastg_dri, sparc64)

2010-03-28 Thread Luca Barbieri
On Sun, Mar 28, 2010 at 7:36 PM, Chris Ball  wrote:
> Hi,
>
>   > http://tinderbox.x.org/builds/2010-03-25-0018/logs/libGL/#build
>   >
>   > swrastg_dri.so.tmp: undefined reference to `__sync_sub_and_fetch_4'
>   > swrastg_dri.so.tmp: undefined reference to `__sync_add_and_fetch_4'
>
> This regression is still present -- could we get a fix or a revert?

I believe the problem is that sparc does not support atomic operations
in the basic architecture: I think someone who knows about sparc and
has such a machine should look into it.

If you don't know anything about sparc, try rebuilding with the
highest possible sparc -march= level and if that fixes the problem,
perform a binary search to find the minimum one, and then report the
results.

If it does not solve the problem, see if anything in /lib or /usr/lib
exports those symbols.

Also maybe check whether the built swrastg_dri or xlib softpipe
actually works there.

--
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
___
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev


Re: [Mesa3d-dev] Current tinderbox regression (swrastg_dri, sparc64)

2010-03-28 Thread Chris Ball
Hi,

   > http://tinderbox.x.org/builds/2010-03-25-0018/logs/libGL/#build
   > 
   > swrastg_dri.so.tmp: undefined reference to `__sync_sub_and_fetch_4'
   > swrastg_dri.so.tmp: undefined reference to `__sync_add_and_fetch_4'

This regression is still present -- could we get a fix or a revert?

Thanks,

- Chris.
-- 
Chris Ball   
One Laptop Per Child

--
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
___
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev


Re: [Mesa3d-dev] Current tinderbox regression (swrastg_dri, sparc64)

2010-03-26 Thread George Sapountzis
On Fri, Mar 26, 2010 at 4:11 AM, Luca Barbieri  wrote:
> Are you sure that swrastg and/or any Gallium driver actually load
> correctly and work on sparc64?
>

you are right, I forgot that gallium has its own sync primitives,
scratch my reply

> This seems to indicate that they use __sync_add_and_fetch_4 assuming
> it is a GCC builtin, but GCC does not implement it as a builtin on
> sparc64 and neither libgcc nor libc have an implementation of the
> function.
>
> I don't know anything about sparc64, but according to the linux
> kernel, I vaguely guess that specifying an high enough -march= to gcc
> could solve it by enabling use of atomic instructions that are
> otherwise are not used.
>
> The root cause is likely that we set PIPE_ATOMIC_GCC_INTRINSIC even
> though not all __sync builtins are actually supported: we should
> probably fix that.
>

--
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
___
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev


Re: [Mesa3d-dev] Current tinderbox regression (swrastg_dri, sparc64)

2010-03-25 Thread Luca Barbieri
Are you sure that swrastg and/or any Gallium driver actually load
correctly and work on sparc64?

This seems to indicate that they use __sync_add_and_fetch_4 assuming
it is a GCC builtin, but GCC does not implement it as a builtin on
sparc64 and neither libgcc nor libc have an implementation of the
function.

I don't know anything about sparc64, but according to the linux
kernel, I vaguely guess that specifying an high enough -march= to gcc
could solve it by enabling use of atomic instructions that are
otherwise are not used.

The root cause is likely that we set PIPE_ATOMIC_GCC_INTRINSIC even
though not all __sync builtins are actually supported: we should
probably fix that.

--
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
___
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev


Re: [Mesa3d-dev] Current tinderbox regression (swrastg_dri, sparc64)

2010-03-25 Thread George Sapountzis
On Fri, Mar 26, 2010 at 2:23 AM, Chris Ball  wrote:
> Hi,
>
> http://tinderbox.x.org/builds/2010-03-25-0018/logs/libGL/#build
>
> mklib: Making Linux shared library:  swrastg_dri.so.tmp
> gcc -o swrastg_dri.so.test ../../../../src/mesa/drivers/dri/common/dri_test.o 
> swrastg_dri.so.tmp
> -L/home/cjb/xorg-build/lib -ldrm   -lexpat -lm -lpthread -ldl
> swrastg_dri.so.tmp: undefined reference to `__sync_sub_and_fetch_4'
> swrastg_dri.so.tmp: undefined reference to `__sync_add_and_fetch_4'
>
> (Only seen on sparc64.)
>

my guess is that glapi uses sync primitives (see glthread.h) and the
test is done against stubs which does not contain these primitives.

it should be possible to build the real libglapi.a first (by adding a
Makefile in src/mesa/glapi) and then do the link test using the real
libglapi.a

--
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
___
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev


[Mesa3d-dev] Current tinderbox regression (swrastg_dri, sparc64)

2010-03-25 Thread Chris Ball
Hi,

http://tinderbox.x.org/builds/2010-03-25-0018/logs/libGL/#build

mklib: Making Linux shared library:  swrastg_dri.so.tmp
gcc -o swrastg_dri.so.test ../../../../src/mesa/drivers/dri/common/dri_test.o 
swrastg_dri.so.tmp
-L/home/cjb/xorg-build/lib -ldrm   -lexpat -lm -lpthread -ldl
swrastg_dri.so.tmp: undefined reference to `__sync_sub_and_fetch_4'
swrastg_dri.so.tmp: undefined reference to `__sync_add_and_fetch_4'

(Only seen on sparc64.)

-- 
Chris Ball   
One Laptop Per Child

--
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
___
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev