Sender: rich AT phekda DOT freeserve DOT co DOT uk Message-ID: <3E7600CA.3F71163@phekda.freeserve.co.uk> Date: Mon, 17 Mar 2003 17:07:22 +0000 From: Richard Dawe X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.23 i586) X-Accept-Language: de,fr MIME-Version: 1.0 To: djgpp-workers AT delorie DOT com Subject: Re: gcc 3.3 pre-release and DJGPP CVS: src/libc References: <3E7377CE DOT 81DA3631 AT phekda DOT freeserve DOT co DOT uk> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com Hello. Esa A E Peuha wrote: > > On Sat, 15 Mar 2003, Richard Dawe wrote: [snip] > Please don't include anything below your signature; most mail programs > want to strip the signature delimiter and everything below it when > replying. OK. I'll try to remember. > > make.exe: Entering directory `c:/develop/djgpp.rw2/src/libc/ansi/stdio' > > gcc ... -c doprnt.c > > doprnt.c: In function `_doprnt': > > doprnt.c:282: warning: dereferencing type-punned pointer will break > > strict-aliasing rules > > doprnt.c: In function `isspeciall': > > doprnt.c:900: warning: dereferencing type-punned pointer will break > > strict-aliasing rules > > make.exe: *** [doprnt.o] Error 1 > > make.exe: Target `all' not remade because of errors. > > make.exe: Leaving directory `c:/develop/djgpp.rw2/src/libc/ansi/stdio' > > I think these should use union wrappers to avoid the warning (assuming > that gcc won't complain about cast to union pointer from member type > pointer). OK. > > make.exe: Entering directory `c:/develop/djgpp.rw2/src/libc/compat/stdio' > > gcc ... -c tempnam.c > > tempnam.c:16: warning: `x8len' defined but not used > > make.exe: *** [tempnam.o] Error 1 > > make.exe: Target `all' not remade because of errors. > > make.exe: Leaving directory `c:/develop/djgpp.rw2/src/libc/compat/stdio' > > So do we remove x8len or change the literal 8 on line 50 to x8len? That's the fix I've used in my tree. > > make.exe: Entering directory `c:/develop/djgpp.rw2/src/libc/go32' > > gcc ... -c goqmem.c > > goqmem.c: In function `_go32_dpmi_remaining_physical_memory': > > goqmem.c:7: warning: dereferencing type-punned pointer will break > > strict-aliasing rules > > goqmem.c: In function `_go32_dpmi_remaining_virtual_memory': > > goqmem.c:16: warning: dereferencing type-punned pointer will break > > strict-aliasing rules > > make.exe: *** [goqmem.o] Error 1 > > make.exe: Target `all' not remade because of errors. > > make.exe: Leaving directory `c:/develop/djgpp.rw2/src/libc/go32' > > Now this is interesting. :-) These are calls to > _go32_dpmi_get_free_memory_information which is _supposed_ to take a > pointer to _go32_dpmi_meminfo as argument, but dpmi.h defines > _go32_dpmi_get_free_memory_information as > __dpmi_get_free_memory_information which wants pointer to > __dpmi_free_mem_info; there seems to be no solution other than avoiding > _go32_dpmi_get_free_memory_information altogether. Yep. Implement _go32_dpmi_get_free_memory_information to call __dpmi_get_free_memory_information and translate between the two structure types. If the structures are the same, just memcpy. I've uninstalled gcc 3.3 and gone back to gcc 3.2.2 now. I actually want to do some work (porting GNU coreutils, fchdir, etc.) and gcc 3.3 is just too whiny. Maybe someone else could fix these problems. Bye, Rich =] -- Richard Dawe [ http://www.phekda.freeserve.co.uk/richdawe/ ]