Ah, I thought it was just me who was running into this. http://review.gluster.org/11214 Regards, -Prashanth Pai ----- Original Message ----- > From: "Joseph Fernandes" <josferna@xxxxxxxxxx> > To: "Gluster Devel" <gluster-devel@xxxxxxxxxxx> > Sent: Monday, June 29, 2015 5:54:28 PM > Subject: Gluster and GCC 5.1 > > Hi All, > > Recently I installed Fedora 22 on some fresh vms, which comes with gcc > 5.1.1-1(which can be upgraded to 5.1.1-4) > Observed one thing that normal "inline functions" will be undefined symbols > in the "so" files. > As a result I had trouble in start volume as "gf_sql_str2sync_t" > > [2015-06-29 05:52:38.491378] I [MSGID: 101190] > [event-epoll.c:627:event_dispatch_epoll_worker] 0-epoll: Started thread with > index 1 > [2015-06-29 05:52:38.499205] W [MSGID: 101095] [xlator.c:189:xlator_dynload] > 0-xlator: /usr/local/lib/libgfdb.so.0: undefined symbol: gf_sql_str2sync_t > [2015-06-29 05:52:38.499229] E [MSGID: 101002] [graph.y:211:volume_type] > 0-parser: Volume 'test-changetimerecorder', line 16: type > 'features/changetimerecorder' is not valid or not found on this machine > [2015-06-29 05:52:38.499262] E [MSGID: 101019] [graph.y:319:volume_end] > 0-parser: "type" not specified for volume test-changetimerecorder > [2015-06-29 05:52:38.499335] E [MSGID: 100026] > [glusterfsd.c:2151:glusterfs_process_volfp] 0-: failed to construct the > graph > [2015-06-29 05:52:38.499470] W [glusterfsd.c:1214:cleanup_and_exit] (--> 0-: > received signum (0), shutting down > > when gf_sql_str2sync_t was made "static inline gf_sql_str2sync_t" the next > issue was with "changelog_dispatch_vec" > > [2015-06-29 07:11:33.367259] I [MSGID: 101190] > [event-epoll.c:627:event_dispatch_epoll_worker] 0-epoll: Started thread with > index 1 > [2015-06-29 07:11:33.368816] W [MSGID: 101095] [xlator.c:189:xlator_dynload] > 0-xlator: /usr/local/lib/glusterfs/3.8dev/xlator/features/changelog.so: > undefined symbol: changelog_dispatch_vec > [2015-06-29 07:11:33.368829] E [MSGID: 101002] [graph.y:211:volume_type] > 0-parser: Volume 'test-changelog', line 32: type 'features/changelog' is not > valid or not found on this machine > [2015-06-29 07:11:33.368843] E [MSGID: 101019] [graph.y:319:volume_end] > 0-parser: "type" not specified for volume test-changelog > [2015-06-29 07:11:33.368922] E [MSGID: 100026] > [glusterfsd.c:2151:glusterfs_process_volfp] 0-: failed to construct the > graph > [2015-06-29 07:11:33.369025] W [glusterfsd.c:1214:cleanup_and_exit] (--> 0-: > received signum (0), shutting down > > and so on. > > Looks like "inline" functions should be marked as "static inline" or "extern > inline" explicitly > Please refer https://gcc.gnu.org/gcc-5/porting_to.html > > To recreate the issue without glusterfs, try out this sample code program on > fedora 22 gcc 5.1.1 or higher > > hello.c > ======= > > #include <stdio.h> > > inline void foo () { > printf ("hello world"); > } > > int main () { > > foo (); > return 0; > } > > # gcc hello.c > /tmp/ccUQ1XPp.o: In function `main': > hello.c:(.text+0xa): undefined reference to `foo' > collect2: error: ld returned 1 exit status > # > > Should we change all the inline function to "static inline" or "extern > inline" in gluster, appropriately to their scope of use (IMHO would be a > right thing to do)? > or should we use a compiler flag to suppress this? > > Regards, > Joe > > > > > _______________________________________________ > Gluster-devel mailing list > Gluster-devel@xxxxxxxxxxx > http://www.gluster.org/mailman/listinfo/gluster-devel > _______________________________________________ Gluster-devel mailing list Gluster-devel@xxxxxxxxxxx http://www.gluster.org/mailman/listinfo/gluster-devel