[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Building mozart-gtk on powerpc [request for help]



Thanks for your advice,  in the meantime I have taken a sledgehammer
to the problem and just removed the troublesome functions from the
interface. As far as I can tell noone will miss them.

regards
Kevin

NB. The package is an interface from Oz (www.mozart-oz.org) to the gtk
library.  The interface is generated automatically from gtk header
files. 


Albert Cahalan writes:
 > On Wed, 2004-08-25 at 07:52, Kevin Glynn wrote:
 > > Daniel Kobras writes:
 > >  > On Tue, Aug 24, 2004 at 06:21:57PM +0200, Kevin Glynn wrote:
 > >  > > fyi, it is because va_list is declared as a one-element array of
 > >  > > structs on powerpc, unlike other architectures so code like:
 > >  > > 
 > >  > > va_list Arg4 = (va_list) OZ_getForeignPointer((*(_OZ_LOC[(4)])));
 > >  > > 
 > >  > > fails on powerpc, because you can't cast to an array.
 > >  > 
 > >  > And you may not assign to a va_list. Use va_copy() instead to be
 > >  > portable.
 > >  > 
 > >  > Daniel.
 > >  > 
 > > 
 > > I don't see how va_copy will help me.  OZ_getForeignPointer(...)
 > > returns a void*, so I will still need to cast it to a va_list to be
 > > able to call va_copy. Here is my test program, perhaps you can suggest
 > > an alternative:
 > 
 > Due to some disgusting changes in the C standard,
 > casting from (void*) is pretty much illegal anyway.
 > I expect that C++ is affected as well. It has to
 > do with pointer aliasing.
 > 
 > Use a union. Put all the types you need into the
 > union. So you'd use a pointer to a union, and skip
 > the casting.
 > 
 > Use the -Wstrict-aliasing=2 compiler option.
 > 
 > I use:
 > 
 >   -W -Wall -Wshadow -Wcast-align -Wredundant-decls \
 >   -Wbad-function-cast -Wcast-qual -Wwrite-strings -Waggregate-return \
 >   -Wstrict-prototypes -Wmissing-prototypes \
 >   -Wdeclaration-after-statement -Wpadded -Wstrict-aliasing=2
 > 
 > (those last 3 depending on a recent gcc)
 > 
 > 

-- 
------------- you're invited to: -------------------------
The Second International Mozart/Oz Conference (MOZ 2004)
Charleroi, Belgium, Oct. 7-8, 2004
http://www.cetic.be/moz2004
----------------------------------------------------------



Reply to: