On Tue, 19 Apr 2005 12:26:36 -0400
Jung-uk Kim <[EMAIL PROTECTED]> wrote:

> On Tuesday 19 April 2005 10:18 am, Aapo Tahkola wrote:
> > On Tue, 19 Apr 2005 15:42:43 +0200
> >
> > Jan Kreuzer <[EMAIL PROTECTED]> wrote:
> > > $ make
> > > ===> drm
> > > Warning: Object directory not changed from original
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/drm ===> i915
> > > Warning: Object directory not changed from original
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/i915 ===> mach64
> > > Warning: Object directory not changed from original
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/mach64 ===> mga
> > > Warning: Object directory not changed from original
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/mga ===> r128
> > > Warning: Object directory not changed from original
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/r128 ===> radeon
> > > Warning: Object directory not changed from original
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon cc -O -pipe  
> > > -I. -I.. -D_KERNEL -DKLD_MODULE -nostdinc -I-  -I. -I.. -I. -I@
> > > -I@/contrib/altq -I@/../include -finline-limit=8000 \ -fno-common
> > >  -mcmodel=kernel -mno-red-zone  -mfpmath=387 -mno-sse -mno-sse2
> > > -mno-mmx -mno-3dnow  -msoft-float \
> > > -fno-asynchronous-unwind-tables -ffreestanding -Wall
> > > -Wredundant-decls -Wnested-externs -Wstrict-prototypes 
> > > -Wmissing-prototypes \ -Wpointer-arith -Winline -Wcast-qual 
> > > -fformat-extensions -std=c99 -c
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.
> > >c
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.
> > >c:131: error: syntax error before "r300_init_reg_flags"
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.
> > >c:134: error: syntax error before numeric constant
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.
> > >c:134: warning: type defaults to `int' in declaration of `memset'
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.
> > >c:134: warning: function declaration isn't a prototype
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.
> > >c:134: error: conflicting types for 'memset' @/sys/libkern.h:118:
> > > error: previous definition of 'memset' was here
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.
> > >c:134: warning: data definition has no type or storage class
> > > /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.
> > >c:60: warning: 'r300_emit_cliprects' defined but not used ***
> > > Error code 1
> > >
> > > Stop in /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon.
> > > *** Error code 1
> > >
> > > So it seems that r300 would work (as good as in linux), if the
> > > drm-part of it would be updated to compile under freebsd. But
> > > this is beyond my skills.
> >
> > Try this:
> >
> > --- r300_cmdbuf.c.orig  Tue Apr 19 17:14:33 2005
> > +++ r300_cmdbuf.c       Tue Apr 19 17:14:49 2005
> > @@ -125,13 +125,12 @@
> >         return 0;
> >  }
> >
> > -unsigned char  r300_reg_flags[0x10000>>2];
> > +unsigned char  r300_reg_flags[0x10000>>2]={ 0 };
> >
> >
> > -void __init r300_init_reg_flags(void)
> > +void r300_init_reg_flags(void)
> >  {
> >  int i;
> > -memset(r300_reg_flags, 0, 0x10000>>2);
> 
> memset() is okay and it is better that way (at least for 
> FreeBSD/amd64):
> 
> http://lists.freebsd.org/pipermail/freebsd-amd64/2005-March/004058.html
> 
> My experiment shows GCC misoptimizes this type of initialization on 
> AMD64 where glibc is not used (i. e., *BSD).

Jans compiler doesnt seem to like memseting arrays: 
>>> /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.c:134: 
>>> error: syntax error before numeric constant
>>> /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.c:134: 
>>> warning: type defaults to `int' in declaration of `memset'
>>> /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.c:134: 
>>> warning: function declaration isn't a prototype
>>> /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.c:134: 
>>> error: conflicting types for 'memset'
>>> @/sys/libkern.h:118: error: previous definition of 'memset' was here
>>> /usr/home/jan/dri/r300_driver/drm/bsd-core/radeon/../r300_cmdbuf.c:134: 
>>> warning: data definition has no type or storage class

Maybe just loop it to zero?

I would stick r300_init_reg_flags call to radeon_preinit() since it seems to be 
called on bsds and x86s.

> 
> Removing __init is enough, I believe.  Please see my previous posting.
> 
> Thanks,
> 
> Jung-uk Kim
> 
> >  #define ADD_RANGE(reg, count) 
> > for(i=(reg>>2);i<(reg>>2)+count;i++)r300_reg_flags[i]|=1;
> >
> >         /* these match cmducs() command in
> > r300_driver/r300/r300_cmdbuf.c */
> >
> > > Greetings Jan


-- 
Aapo Tahkola


-------------------------------------------------------
This SF.Net email is sponsored by: New Crystal Reports XI.
Version 11 adds new functionality designed to reduce time involved in
creating, integrating, and deploying reporting solutions. Free runtime info,
new features, or free trial, at: http://www.businessobjects.com/devxi/728
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to