Hello; > 1. the author is somewhat confused over the usage of mmap, there's > no need to malloc memory beforehand and then overmap it. in fact, > it's a very bad thing to do.
I noticed another clear mistake in this package a long time ago and recompiled in order to fix my own version. I hoped that someone else would fix it before I upgraded again, but it has not happened, so I finally get around to reporting it... The use of "volatile" in the code does not make very much sense; most noticeably, the declaration: > /* Not the address but what it points to is volatile. */ > unsigned char * volatile radeon_cntl_mem; appears near the top of radeontool.c. The comment that explicitly contradicts what the code says, since "unsigned char * volatile" declares a volatile pointer to non-volatile unsigned char, not a non-volatile pointer to volatile unsigned char (this is consistent with how const works). If you don't trust me about this, ask cdecl: $ cdecl Type `help' or `?' for help cdecl> explain unsigned char * volatile o; declare o as volatile pointer to unsigned char cdecl> explain volatile unsigned char * o; declare o as pointer to volatile unsigned char To really fix this, a lot of changes might be necessary in radeontool.c to make the types agree after changing this, but the solution that I used when I compiled my own version before is simple: remove "-O2" from CFLAGS in the Makefile. volatile has no effect in unoptimized programs, so doing this completely eliminates the issue. I do not have any evidence that doing this fixes any particular problem with radeontool, however; paraphrasing Donald E. Knuth, "I have only proved it [in]correct, not tried it." Eliot Setzer -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

