diff options
author | Sage Weil <sage@newdream.net> | 2009-02-23 10:18:46 -0800 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2009-02-23 10:18:46 -0800 |
commit | 48f331c139d8c2743003e867a16104d83f0542b0 (patch) | |
tree | b57d74b5f259992a8824a1fbd6d33fa48d2aa2a6 | |
parent | 02de9c368b81b2d33a4edb25631c622da16a1baa (diff) | |
download | ceph-48f331c139d8c2743003e867a16104d83f0542b0.tar.gz |
Makefile: link libcommon, lockdep last
Link libcommon.a last for everything.
Include lockdep last in libcommon so to initialize first, shutdown
last, so that g_lockdep is initialized to zero for all Mutexes.
Put config.cc next to last so that the atomic_t thread counter is
initialized before all threads are created, shutdown after all
threads are destroyed.
-rw-r--r-- | src/Makefile.am | 40 | ||||
-rw-r--r-- | src/common/lockdep.cc | 6 | ||||
-rw-r--r-- | src/config.cc | 7 |
3 files changed, 33 insertions, 20 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 25b2a79b884..1bd97ee68e7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -6,19 +6,19 @@ AUTOMAKE_OPTIONS = gnu # monitor cmon_SOURCES = cmon.cc msg/SimpleMessenger.cc -cmon_LDADD = libcommon.a libmon.a libcrush.a libcommon.a +cmon_LDADD = libmon.a libcrush.a libcommon.a # admin tools ceph_SOURCES = ceph.cc msg/SimpleMessenger.cc ceph_LDADD = libcrush.a libcommon.a -ledit mkmonfs_SOURCES = mkmonfs.cc -mkmonfs_LDADD = libcommon.a libmon.a libcrush.a libcommon.a +mkmonfs_LDADD = libmon.a libcrush.a libcommon.a monmaptool_SOURCES = monmaptool.cc monmaptool_LDADD = libcommon.a crushtool_SOURCES = crushtool.cc -crushtool_LDADD = libcommon.a libcrush.a +crushtool_LDADD = libcrush.a libcommon.a osdmaptool_SOURCES = osdmaptool.cc -osdmaptool_LDADD = libcommon.a libcrush.a +osdmaptool_LDADD = libcrush.a libcommon.a cconf_SOURCES = cconf.cc cconf_LDADD = libcommon.a @@ -26,22 +26,22 @@ mount_ceph_SOURCES = mount.ceph.c # mds cmds_SOURCES = cmds.cc msg/SimpleMessenger.cc -cmds_LDADD = libcommon.a libmds.a libosdc.a libcrush.a libcommon.a +cmds_LDADD = libmds.a libosdc.a libcrush.a libcommon.a dumpjournal_SOURCES = dumpjournal.cc msg/SimpleMessenger.cc -dumpjournal_LDADD = libcommon.a libosdc.a libcrush.a libcommon.a +dumpjournal_LDADD = libosdc.a libcrush.a libcommon.a # osd cosd_SOURCES = cosd.cc msg/SimpleMessenger.cc -cosd_LDADD = libcommon.a libosd.a libos.a libebofs.a libcrush.a libcommon.a -dupstore_SOURCES = dupstore.cc config.cc -dupstore_LDADD = libcommon.a libos.a libebofs.a +cosd_LDADD = libosd.a libos.a libebofs.a libcrush.a libcommon.a +dupstore_SOURCES = dupstore.cc +dupstore_LDADD = libos.a libebofs.a libcommon.a streamtest_SOURCES = streamtest.cc -streamtest_LDADD = libcommon.a libebofs.a libos.a +streamtest_LDADD = libebofs.a libos.a libcommon.a # synthetic client csyn_SOURCES = csyn.cc msg/SimpleMessenger.cc -csyn_LDADD = libcommon.a libclient.a libosdc.a libcrush.a libcommon.a +csyn_LDADD = libclient.a libosdc.a libcrush.a libcommon.a bin_PROGRAMS = \ cmon cmds cosd csyn \ @@ -60,12 +60,12 @@ testmsgr_LDADD = libcommon.a # fuse targets? if WITH_FUSE cfuse_SOURCES = cfuse.cc msg/SimpleMessenger.cc client/fuse.cc client/fuse_ll.cc -cfuse_LDADD = -lfuse libcommon.a libclient.a libosdc.a libcrush.a libcommon.a +cfuse_LDADD = -lfuse libclient.a libosdc.a libcrush.a libcommon.a bin_PROGRAMS += cfuse if WITH_DEBUG fakefuse_SOURCES = fakefuse.cc msg/FakeMessenger.cc client/fuse.cc client/fuse_ll.cc -fakefuse_LDADD = -lfuse libcommon.a libmon.a libmds.a libosd.a libos.a libebofs.a \ +fakefuse_LDADD = -lfuse libmon.a libmds.a libosd.a libos.a libebofs.a \ libclient.a libosdc.a libcrush.a bin_PROGRAMS += fakefuse endif @@ -75,16 +75,16 @@ endif # debug targets? if WITH_DEBUG psim_SOURCES = psim.cc -psim_LDADD = libcommon.a libcrush.a +psim_LDADD = libcrush.a libcommon.a test_ebofs_SOURCES = ebofs/test.ebofs.cc -test_ebofs_LDADD = libcommon.a libebofs.a libos.a +test_ebofs_LDADD = libebofs.a libos.a libcommon.a mkfs_ebofs_SOURCES = ebofs/mkfs.ebofs.cc -mkfs_ebofs_LDADD = libcommon.a libebofs.a libos.a +mkfs_ebofs_LDADD = libebofs.a libos.a libcommon.a fakesyn_SOURCES = fakesyn.cc msg/FakeMessenger.cc -fakesyn_LDADD = libcommon.a libmon.a libmds.a libosd.a libos.a libebofs.a \ - libclient.a libosdc.a libcrush.a +fakesyn_LDADD = libmon.a libmds.a libosd.a libos.a libebofs.a \ + libclient.a libosdc.a libcrush.a libcommon.a bin_PROGRAMS += psim test.ebofs mkfs.ebofs fakesyn endif @@ -176,7 +176,6 @@ clean-local: # libs libcommon_a_SOURCES = \ common/LogClient.cc \ - common/lockdep.cc \ msg/Message.cc \ common/Logger.cc \ common/Clock.cc \ @@ -193,7 +192,8 @@ libcommon_a_SOURCES = \ mds/MDSMap.cc \ common/tls.cc \ common/common_init.cc \ - config.cc + config.cc \ + common/lockdep.cc libcrush_a_SOURCES = \ crush/builder.c \ diff --git a/src/common/lockdep.cc b/src/common/lockdep.cc index bdb9782051c..93829cd7e8c 100644 --- a/src/common/lockdep.cc +++ b/src/common/lockdep.cc @@ -16,6 +16,12 @@ // global int g_lockdep = 0; +/* +struct foobarr { + foobarr() { cerr << "lockdep.cc init" << std::endl; } + ~foobarr() { cerr << "lockdep.cc shutdown" << std::endl; } +} asdff; +*/ // disable lockdep when this module destructs. struct lockdep_stopper_t { diff --git a/src/config.cc b/src/config.cc index 41de3dc549f..f3d06d01b1f 100644 --- a/src/config.cc +++ b/src/config.cc @@ -38,6 +38,13 @@ atomic_t buffer_total_alloc; #include "common/ConfUtils.h" +/* +struct foobar { + foobar() { cerr << "config.cc init" << std::endl; } + ~foobar() { cerr << "config.cc shutdown" << std::endl; } +} asdf; +*/ + int buffer::list::read_file(const char *fn) { struct stat st; |