From: Aapo T. <ae...@ra...> - 2005-04-19 18:02:08
|
On Tue, 19 Apr 2005 12:26:36 -0400 Jung-uk Kim <jk...@ni...> wrote: > On Tuesday 19 April 2005 10:18 am, Aapo Tahkola wrote: > > On Tue, 19 Apr 2005 15:42:43 +0200 > > > > Jan Kreuzer <kon...@gm...> 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 |