Ответ 1
В соответствии с Сообщения об ошибках в базовых адресах модуля:
DLL в Windows необходимо загружать в память на неконфликтных базовых адресах. rebaseall - это утилита cygwin, которая сканирует все установленные в настоящее время библиотеки и устанавливает, что каждый запрашивает другой базовый адрес, чтобы никто не конфликтует.
Немного больше технического объяснения от Обработка повторяющихся сбоев rebaseall, позволяющих перепрофилировать cygwin:
Из-за семантики unix fork (предположительно) библиотеки cygwin должны быть сопоставлены в одном и том же месте как в родительском, так и в дочернем полях fork. Все библиотеки cygwin имеют в себе подсказки о том, где они должны отображаться в адресном пространстве процессов; если следовать этим намекам, каждая библиотека будет отображаться в одном месте в обоих адресных пространствах. Однако Windows отлично справляется с отображением DLL в любом месте в адресном пространстве; подсказка не считается контрольной. Ошибка переназначения возникает, когда запускается процесс cygwin, и одна из его библиотек не может быть сопоставлена с местоположением, указанным его подсказкой.
/usr/bin/rebaseall изменяет подсказки DLL для всех библиотек cygwin, чтобы не было конфликтов между библиотеками; он делает это, выбирая смежную, но не перекрывающуюся структуру библиотеки, начиная с базового адреса и работая вниз. Этот процесс гарантирует отсутствие конфликтов внутри cygwin, но не может справиться с конфликтами с внешними DLL, которые находятся в адресных пространствах процессов cygwin (например, антивирусных DLL).