On 2/8/2012 2:52 PM, Steven Dake wrote: > On 02/07/2012 05:43 PM, Angus Salkeld wrote: >> Hi >> >> Here is a good idea IMO. But as-is will require a re-build of all >> user applications. >> >> We currently have lots of inline functions in header files just to be shared >> between corosync and the libraries. We also have the same functions >> been implemented in both places. libqb has helped reduce this but the >> problem still exists. >> >> Another unplesent issue is if we need to apply a fix to any of these >> inline functions the user applications need to be rebuilt. >> >> So choose a rebuild now or multiple times down the line. >> >> -Angus >> >> >> cc -o tcpg test/testcpg.c -Iinclude/corosync/ -lcpg >> /usr/bin/ld: /tmp/ccnqIwOB.o: undefined reference to symbol 'cs_strerror' >> /usr/bin/ld: note: 'cs_strerror' is defined in DSO /usr/lib64/libcorosync_common.so.4 so try adding it to the linker command line >> /usr/lib64/libcorosync_common.so.4: could not read symbols: Invalid operation >> collect2: ld returned 1 exit status >> >> > > Angus, > > I know we had talked about a static library and linking that into each > so. I had some concerns about symbol collisions. I tested that out, > and it seems to work. I'd prefer that approach to requiring the need of > a separate -lcorosync_common. I'll send my patch to the list so you can > see what I did. I'll also send my test program linked against cpg and cmap. How do you get symbol collisions? Assuming you are upgrading from version X to X+1, the symbols will simply move from static inline to the share object. Specially in this case where the application is not affected directly. application -> libfoo (with static inline) application -> libfoo -> libcommon Even in a downgrade case, libcorosync_common would not be referenced by any of the libraries. I don´t have a strong opinion here, but I would prefer to have it a shared lib. We had some nasty issues with static before (ask Jan how long it took for him to debug that handle_ corruption when linking static). Fabio _______________________________________________ discuss mailing list discuss@xxxxxxxxxxxx http://lists.corosync.org/mailman/listinfo/discuss