LINUX.ORG.RU

Криво собирается rdiff под mingw


0

1

На первый взгляд собирается, проходит тесты и даже вроде бы работает. Но наблюдается косяк:
1) если сделать им сигнатуру и попытаться по ней сделать дельту (на том же файле или на измененном), то rdiff намертво виснет с 100% загрузкой CPU.
2) Если сделать сигнатуру от того же файла дебиановским rdiff'ом и скормить ее скомпиленному под mingw, то все работает, получается правильная дельта и патч.
3) если дебиановкому rdiff скормить сигнатуру, полученную в rdiff под mingw, то дебиановский rdiff точно так же виснет. Размер сигнатур при этом отличается: 1716 байт в дебиане и 1723 байта под mingw.

Пробовал собирать rdiff 0.9.6 и 0.9.7, грешил на старый gcc в mingw. Накатил туда свежий gcc4, пересобрал, результат тот же.
Нашел на просторах инета rdiff, собранный под cygwin. Он работает нормально, сигнатура получается как в дебиане. Меня бы он устроил, если бы не тянул за собой толстую cygwin.dll.

Может у кого есть опыт наступания на аналогичные грабли с mingw?

★★★★★

вероятно ты нашел баг либо в rdiff либо mingw, и вероятно не стоит хранить его в секрете — думаю, начать надо с багзиллы rdiff

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

>вероятно ты нашел баг либо в rdiff либо mingw,
скорее в mingw, ибо в других случаях rdiff нормально работает

думаю, начать надо с багзиллы rdiff

не очень хорошая идея с учетом того, что оно в коме уже лет 5

и вероятно не стоит хранить его в секрете

если б я знал точную причину бага - отписал бы разработчикам :)

nu11 ★★★★★
() автор топика

[искусственное дыхание, разряд]

могу порекомендовать поиграться с ключами компиляции (особенно в плане оптимизации) rdiff. или связаться с автором «rdiff, собранный под cygwin» и запросить ключи/патчи

xydo ★★
()
Ответ на: комментарий от xydo

по крайней мере я лично видел такое, что для нормальной сборки под cygwin требовались патчи. в них могли и общий багфикс какой-нибудь включить

xydo ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.