[OpenAFS-devel] Mac OS 10.9 compile error
Benjamin Kaduk
kaduk@MIT.EDU
Sat, 11 Jan 2014 00:49:33 -0500 (EST)
On Fri, 10 Jan 2014, Benjamin Kaduk wrote:
> On Wed, 25 Dec 2013, Jason Edgecombe wrote:
>
>> Hi everyone,
>>
>> Thanks to Dave Botsch for setting up a new Mac OS 10.9 build slave. Dave
>> requests that this build slave be added as a gerrit-triggered builder, but
>> there are some compile problems blocking that. Please look into this.
>> Thanks.
>
> Since my new laptop is running Mavericks, I took a look at what the issues
> were. The tree at https://github.com/kaduk/openafs/commits/osx should build
> in the buildbot configuration, but most of the commits are just placeholders
> that band-aid around the issue instead of being a submittable fix. I'll
> probably get to clean up at least some of them today.
I did get to clean them up enough to be submitted to gerrit. Not all of
them are clear-cut, and if we do end up adding a library routine as in the
current version, it will need to be added to the Windows build system,
etc..
I'm somewhat concerned that we now get a lot of warnings in the build log
for the kernel module, things like:
In file included from
/Users/buildbot/slave1/macos-10-9-x86_64-builder/build/src/afs/afs_analyze.c:34:
In file included from
/Users/buildbot/slave1/macos-10-9-x86_64-builder/build/src/afs/afsincludes.h:49:
/Users/buildbot/slave1/macos-10-9-x86_64-builder/build/src/afs/afs_chunkops.h:91:5:
warning: implicit declaration of function 'memcpy' is invalid in C99
[-Wimplicit-function-declaration]
memcpy(dst, src, sizeof(afs_dcache_id_t));
^
/Users/buildbot/slave1/macos-10-9-x86_64-builder/build/src/afs/afs_chunkops.h:95:5:
warning: implicit declaration of function 'memset' is invalid in C99
[-Wimplicit-function-declaration]
memset(i, 0, sizeof(afs_dcache_id_t));
^
The older builder that's doing triggered builds does not see these
warnings, and I'm having a hard time figuring out what exactly has
changed. There are prototypes in
/System/Library/Frameworks/Kernel.framework/Headers/string.h, but our 'h'
link is to '.../Headers/sys' (and our search path would pick up the
string.h from hcrypto anyway), but I haven't fully convinced myself that
this is where kernel sources should be getting their memcpy prototypes.
There's also some 'argument unused during compilation' that I guess are
due to clang posing as gcc and not accepting quite the same arguments.
Thoughts?
-Ben