deterministically resolving cycles in a library tree is disclosed . resolving cycles supports certain processes such as safe library initialization . cycles in the library tree are identified ; at least one soft link in each identified cycle is identified ; and the at least one soft link in each identified cycle is broken . if a cycle has no soft links , notification is provided indicating that the cycle cannot be broken . identifying at least one soft link in each identified cycle comprises , for each link in the cycle , determining the dependent and supporting libraries ; and determining if one or more functions in the supporting library are required for initializing the dependent library .