Hi, On Sun, Aug 12, 2012 at 12:32 AM, <jscipione@xxxxxxxxx> wrote: > hrev44516 adds 1 changeset to branch 'master' > old head: 0de0cd6c473a290a68db994d6e83071bb192636e > new head: a43b1ed6d894723ed5dbc26e2c399e8ad46022d6 > > ---------------------------------------------------------------------------- > > a43b1ed: Split fs_darwin.h defines into various platform dependent headers. > > This completes the final 1/3 of #8857. Changes again by nielx with > style fixes by me. > > The one part that I couldn't figure out, and maybe Ingo can chime > in here. If headers/build/host/darwin/sys/stat.h is surrounded in > > extern "C" { > > } > > guards then I get a link error complaining that the functions defined > here are duplicate symbols, once in fs.o and once in function_remapper.o. > For example: > > ld: duplicate symbol _futimens in > generated/objects/darwin/x86_64/release/build/libroot/libroot_build_function_remapper.a(function_remapper.o) > and > generated/objects/darwin/x86_64/release/build/libroot/libroot_build.a(fs.o) > for architecture x86_64 > > I'm not sure why that is. Perhaps it is better to revert this. With a clean generated directory I now run into the following errors on Mac OS X 10.8: C++ /Volumes/Haiku_Build/build-gcc2/objects/darwin/x86_64/release/build/libroot/function_remapper.o /Volumes/Haiku_Build/haiku-trunk/headers/build/host/darwin/sys/stat.h: In function ‘int fchmodat(int, const char*, mode_t, int)’: /Volumes/Haiku_Build/haiku-trunk/headers/build/host/darwin/sys/stat.h:28: error: previous declaration of ‘int fchmodat(int, const char*, mode_t, int)’ with ‘C++’ linkage /Volumes/Haiku_Build/haiku-trunk/src/build/libroot/function_remapper.cpp:31: error: conflicts with new declaration with ‘C’ linkage /Volumes/Haiku_Build/haiku-trunk/headers/build/host/darwin/sys/stat.h: In function ‘int fstatat(int, const char*, stat*, int)’: /Volumes/Haiku_Build/haiku-trunk/headers/build/host/darwin/sys/stat.h:29: error: previous declaration of ‘int fstatat(int, const char*, stat*, int)’ with ‘C++’ linkage /Volumes/Haiku_Build/haiku-trunk/src/build/libroot/function_remapper.cpp:49: error: conflicts with new declaration with ‘C’ linkage /Volumes/Haiku_Build/haiku-trunk/headers/build/host/darwin/sys/stat.h: In function ‘int mkdirat(int, const char*, mode_t)’: /Volumes/Haiku_Build/haiku-trunk/headers/build/host/darwin/sys/stat.h:30: error: previous declaration of ‘int mkdirat(int, const char*, mode_t)’ with ‘C++’ linkage /Volumes/Haiku_Build/haiku-trunk/src/build/libroot/function_remapper.cpp:58: error: conflicts with new declaration with ‘C’ linkage /Volumes/Haiku_Build/haiku-trunk/headers/build/host/darwin/sys/stat.h: In function ‘int mkfifoat(int, const char*, mode_t)’: /Volumes/Haiku_Build/haiku-trunk/headers/build/host/darwin/sys/stat.h:31: error: previous declaration of ‘int mkfifoat(int, const char*, mode_t)’ with ‘C++’ linkage /Volumes/Haiku_Build/haiku-trunk/src/build/libroot/function_remapper.cpp:67: error: conflicts with new declaration with ‘C’ linkage /Volumes/Haiku_Build/haiku-trunk/headers/build/host/darwin/sys/stat.h: In function ‘int mknodat(int, const char*, mode_t, dev_t)’: /Volumes/Haiku_Build/haiku-trunk/headers/build/host/darwin/sys/stat.h:32: error: previous declaration of ‘int mknodat(int, const char*, mode_t, dev_t)’ with ‘C++’ linkage /Volumes/Haiku_Build/haiku-trunk/src/build/libroot/function_remapper.cpp:202: error: conflicts with new declaration with ‘C’ linkage Back to the drawing board with this one. N>