Помогите пожалуйста разобраться в ситуации.
Я использую FastMM в своих проектах. При этом я не хочу добавлять путь до FastMM4.pas в Library Path, чтобы не мучаться при отладке. Для этого я создал фиктивный package FastMM.dpk(runonly), который включает в себя тольк Fastmm4.dpk и компилирую FastMM со всеми остальными package-ами. А проекты подключают к себе уже fastmm4.dcu. Но в Delphi 2009 эта схема перестала работать. При включении FastMM4.dcu в проект, Delphi выдаёт ошибку
[DCC Fatal Error] F2051 Unit FastMM4 was compiled with a different version of System.TObject.InstanceSize.
Причём, ругается он только если я собираю проект с Debug Build Configuration. С Release всё собирается нормально.
Выяснил, что проблема возникает, когда проект ищет .dcu от vcl в $(BDS)\Lib\Debug\ вместо $(BDS)\Lib
Получается, что System.TObject.InstanceSize в $(BDS)\Lib\ и $(BDS)\Lib\Debug в чём-то существенно различаются.
Версия Дельфи: CodeGear™ Delphi® 2009 Version 12.0.3170.16989
Версия FastMM: Fast Memory Manager 4.90
C другими unit-ами эту проблему повторить не получилось. FastMM4.pas использует только один стандарнтый юнит - Windows.
Сейчас я в раздумиях, чей это баг: мой, FastMM-a или Delphi?
Буду очень признателен за разъяснения об отличиях между $(BDS)\Lib\Debug\ и $(BDS)\Lib\ а также за версии о причинах ошибки.
p.s. дубликаты FastMM4.dcu в Library Path исключаются.