[OpenAFS-devel] Trying to code for Mac OS X

Barry Fawthrop barry@isscp.com
Wed, 25 Mar 2009 08:53:37 -0400


Thanks Frank

I'm using the XCode compiler and compiling everything as an Objective-C++ project  converting all
.c -> .mm
Yes it is very strict
for example when I was building the kerberos functions they would have

  char *name
  name = malloc(sizeof(name));

This would throw and error about void * and char *

I had to change to the following

  name = (char *)malloc(sizeof(name));

I'm still not sure how to deal with the xdr_ops as it is apart of the XDR struct and
yet the functions inside need XDR as the first parameter so right now they are declared
as void *

Thanks all



Felix Frank wrote:
> On Tue, 24 Mar 2009, Barry Fawthrop wrote:
> 
>> Greetings,
>> I'm trying to code an openafs based application in Xcode for the Mac OS X
>>
>>
>> I have copied much of the needed course code from 1.5.57  tarball
>> in ubikclient.mm  it has the ubik_Call
>> Which has the
>> code = VOTE_GetSyncSite    line
>>
>> I can't find this anywhere
>>
>> If I search the Internet I find references to an ubik_int.c file 
>> which has this
>> If I create this file then it has further issues  The biggest being
> 
> Functions like that are generated using rxgen. Look at ubik/ubik_int.xg.
> It says "prefix S" (as is common).
> To find the implementation for the above call, prepend the S.
> The function you need is SVOTE_GetSyncSite(). The call above is to the
> stub routine (which is generated).
> "Copying needed source from the tarball" has such pitfalls. I think you
> need to get the necessary .xg files and add the appropriate rules to
> your Makefile (or run rxgen by hand if that's how you play it).
> 
>> in xdr_mem.c  the line
>>
>> static struct xdr_ops  xdrmem_ops =
>>   ERROR: variable 'xdr_ops xdrmem_ops' has initializer but incomplete
>> type
>> xdrmem_getint32,
>> xdrmem_putint32,
>> ....
>> ....
>>
>> };
> 
> Hmm, I haven't come around to fiddling with 1.5.x sources (are you sure
> that is what you want, by the way? For *NIX environments, that's the
> unstable branch after all.)
> 
> ...BUT I did have issues with xdrmem while adding some code to OpenAFS+OSD,
> not at compiletime however. Turned out the xdrmem package has never been
> linked into 1.4.x.
> Still, the code compiled fine, linking to xdrmem routines from GLIBC
> (which in turn led to gross misbehaviour, but that's a different story).
> 
> The error is weird. Barring any changes between 1.5.56 and 57 it builds
> in i586_rhel50. Maybe your compiler doesn't like how struct xdr_ops is
> declared inside struct XDR.
> 
> What's your compiler? Are you sure you're using the same options as
> during a "make" in an openafs build tree?
> 
> Regards
> Felix
> _______________________________________________
> OpenAFS-devel mailing list
> OpenAFS-devel@openafs.org
> https://lists.openafs.org/mailman/listinfo/openafs-devel