why RegisterPass<TargetData> initialize itself twice in my system

HI, Developers:

I linked libLTO.so in $LLVMROOT/Debug/lib

however, my program crashes in assertion at 149line [Pass.cpp]

  void RegisterPass(const PassInfo &PI) {
    bool Inserted =
      PassInfoMap.insert(std::make_pair(PI.getTypeInfo(),&PI)).second;
    assert(Inserted && "Pass registered multiple times!");
  }

i confirm that there is only one static variable suspecting to call this
register routine to register "TargetData" Pass in L35 [TargetData.cpp]

  // Register the default SparcV9 implementation...
  static RegisterPass<TargetData> X("targetdata", "Target DataLayout",
false, true);

but back track things before main entry, i got actually twice same
intializations: the attached is bt using gdb, why this happens?

My system is x86_64 in linux-Fedora 7. Is that okay i remove the asssert
stmt to use it?

dump.out (2.46 KB)