В основном, вам нужно убедиться, что _LARGE_FILES определен, например, попробуйте
# export CFLAGS="-O3 -D_LARGE_FILES"
- -OX
- это необязательно. Я рекомендую -O3 по умолчанию с gcc и -O2 с xlc
Или, вы можете попробовать мою упаковку (coreutils-8.25, по крайней мере).
p.s. Я только что проверил сайт perzl - он тоже сейчас упаковывает 8.25. Ключевое различие между нашими методами упаковки в том, что я использую installp в качестве менеджера пакетов и использую /opt/bin
, а не /opt/freeware/bin
(что означает, что вы можете установить оба варианта рядом и решить, какой из них проще в управлении) - Примечание: поскольку я не знаю, как здесь принято, я (пока) не добавляю URL к моему 'aixtools'. Вы можете попытаться привлечь мое внимание через twitter @rootvgnet, если вам это интересно.
Поскольку он слишком большой для комментария - добавляю инструкции по установке, если вы решите использовать мою упаковку
команда установки: -as root- #installp -d /some/dir -agX aixtools.gnu.coreutils; должна показать в выводе блок информации, включающий:
SUCCESSES
---------
Filesets listed in this section passed pre-installation verification
and will be installed.
Selected Filesets
-----------------
aixtools.gnu.coreutils.rte 8.25.0.0 # built 22-Aug-2016 1702 UTC
Requisites
----------
(being installed automatically; required by filesets listed above)
aixtools.gnu.gettext.rte 0.19.8.1 # built 21-Aug-2016 1821 UTC
aixtools.gnu.gettext.share 0.19.8.1 # universal files
aixtools.gnu.libiconv.rte 1.14.0.4 # built 21-Aug-2016 1623 UTC
aixtools.gnu.libiconv.share 1.14.0.4 # universal files
Это означает, что кроме coreutils вам также нужны gnu-зависимости 'gettext' для интернационализации текста, и GNU iconv, потому что coreutils не принимает способ, которым AIX iconv реализовал ряд переводов.
Соответствующие ссылки на вики (поскольку пакеты могут обновляться со временем): - http://www.aixtools.net/index.php/coreutils - http://www.aixtools.net/index.php/gettext - http://www.aixtools.net/index.php/libiconv
Короче говоря, после загрузки трех файлов installp в (например, /tmp/aixtools)
# installp -d /tmp/aixtools -agX aixtools.gnu.coreutils
Это установит компоненты "share" и "rte" каждого из них, а также man-страницы coreutils.
Если вам не нужны страницы руководства, используйте:
# installp -u aixtools.gnu.aixtools.man
для их удаления
Функция __init
ipc_ns_init
устанавливает начальное значение shmmax
путем вызова shm_init_ns
, который устанавливает его в значение макроса SHMMAX
.
Определение SHMMAX
находится в<uapi/linux/shm.h>
:
#define SHMMAX (ULONG_MAX - (1UL << 24)) /* max shared seg size (bytes) */
На 64 -битных машинах это определение равно найденному вами значению, 18446744073692774399
.
На лету вы можете просто выполнить эхо в /proc/sys/kernel/shmmax!
# echo 20446744073692774399 > /proc/sys/kernel/shmmax
Но большинство людей редактируют /etc/sysctl.conf строкой, похожей на:
kernel.shmmax=your_new_value_here
См. справочную страницу sysctl (8 ).