- ExportDefinitions &def = dynamic_cast<ExportDefinitions &>(*sources.front());
- ImportLibrary *imp = new ImportLibrary(builder, *def.get_component(), def);
+ SharedLibrary &shlib = dynamic_cast<SharedLibrary &>(*sources.front());
+
+ vector<ObjectFile *> objs;
+ objs.reserve(shlib.get_dependencies().size());
+ for(Target *d: shlib.get_dependencies())
+ if(ObjectFile *obj = dynamic_cast<ObjectFile *>(d))
+ objs.push_back(obj);
+
+ ExportDefinitions *exp = new ExportDefinitions(builder, *shlib.get_component(), objs);
+ exp->set_tool(*this);
+
+ ImportLibrary *imp = new ImportLibrary(builder, *shlib.get_component(), shlib, *exp);