And to go back to my original point: If I use CMake (with any version of 1.8.x) I get undefined externals for functions with _shared_ in the middle of their names.
Looking closer -- it appears that there's a number of functions defined I H5Oshared.h that get renamed using the C Preprocessor. Looking at the pre-processed source code, I'd say there's actually a bug/feature in the OS X linker that's causing this problem. A method is defined static in H5Oshared.h, and then a pointer to the function is used to initialize a structure member. This problem goes away if I remove the 'static H5_inline' from the function definitions in H5Oshared.h As it happens it seems like there were some contradictory things going on here: 1. If you declare a function 'inline' and then use it's address, it can't be inlined. 2. If the function is static, there is no need to rename it in separate compilation units. If you go to the trouble of renaming it, it doesn't need to be static. If I remove the 'static H5_inline' from the function definitions in H5Oshared.h, the library builds on OS X with CMake. This doesn't explain why it DOES build if you use the autoconf-generated Makefiles. My brain hurts! On 3/15/11 2:08 PM, "Williams, Norman K" <[email protected]> wrote: > >./src/H5Osdspace.c:#define H5O_SHARED_ENCODE H5O_sdspace_shared_encode >./src/H5Osdspace.c: H5O_sdspace_shared_encode, /* encode message */ > > >What gives? > >Linking C shared library ../bin/libhdf5.dylib >Undefined symbols: > "_H5O_sdspace_shared_encode", referenced from: > _H5O_MSG_SDSPACE in H5Osdspace.c.o ________________________________ Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged. If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited. Please reply to the sender that you have received the message in error, then delete it. Thank you. ________________________________ _______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
