leonnash
написал 29 сентября 2004 года в 09:47 (684 просмотра)
Ведет себя
неопределенно; открыл 5 тем в форуме, оставил 7 комментариев на сайте.
С некоторого времени при ./configure ЛЮБОГО софта задумывается минут на пять-шесть на фразе:
checking the maximum length of command line arguments
После, пишет
checking the maximum length of command line arguments… 16384
и работает дальше как ни в чем не бывало.
Как убрать эту задумчивость ?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
поизучать вывод
если не понятно, что написано, привести этот вывод здесь.
может быть, что 20 строчек — мало. а может — много.
ну, там понятно будет.
Никак, это нормальное поведение.
привожу
осталось поизучать строчки файла 'configure' с 5305 до 5370
что именно оно там делает, и на каком этапе задумывается.
И никто мне не верит, вот ведь. Просто эта директива проверяет максимально возможную длину командной строки, постепенно ее наращивая, а, соответственно, передача толпы аргументов и поиск верхнего порога — задача нешустрая, особенно когда этот порог высокий. Так что, не надо страдать фигней.
вот и пусть в этом сам и убедится, что именно это и происходит.
кстати, вот что интересно ведь.
xargs должен знать, какое максимальное значение длины командной строки может использоваться. т.е. сами textutils об этом в курсе…
Ребята, я ж грю, что это стало с НЕКОТОРОГО времени, т.е. до этого все было путем, и не думал он по столько. :( А строки изучу, но не менять же их в каждом configure ?
нет конечно, менять их не надо.
то есть если раньше на тех же самых программах не думало по стольку, то как раз и надо искать причину этой появившейся задумчивости.
так как задумывается именно на этом, то отдельно эти строчки и рассматривать.
скопировать их в отдельный shell-скрипт, и исполнять с отладкой: sh -x script.
т.е. это-то понятно, я думаю?
кстати, очень интересен будет-таки как и результат, так и решение этой проблемки.
А ни фига он не знает. Цитата из man:
BUGS
If utility attempts to invoke another command such that the number of
arguments or the size of the environment is increased, it risks execvp(3)
failing with E2BIG.
Смотрим, что за ошибка:
[E2BIG] The number of bytes in the new process' argument list
is larger than the system-imposed limit. This limit
is specified by the sysctl(3) MIB variable
KERN_ARGMAX.
Sysctl, конечно, платформенно зависимый.
У меня, например:
> sysctl -d kern.argmax
kern.argmax: Maximum bytes of argument to execve(2)
kern.argmax: 65536
хммм… вот лично у меня… этта…
16k*16k выделять оно, правда, отказалось.
и даже вот так эта зараза пытается что-то делать:
видимо, памяти не хватило… :))