Mail Archives: djgpp-workers/2003/03/17/13:22:11
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/ ]
- Raw text -