Я тестирую библиотеку C++ под Solaris 11 с Sun Studio 12.5. Библиотека без проблем работает под Sun Studio с 12.2 по 12.4, но имеет проблемы под 12.5.
В версии 12.5 болевая точка появляется при компиляции неоптимизированной и отладочной сборки файла bench.cpp
. Инструменты жалуются, что им не хватает места. Результат неудачной компиляции ниже.
Я видел этот симптом раньше, но обычно это устройство ARM с небольшим объемом памяти и без файла подкачки.
Машина имеет два Xeon's, 8 ГБ оперативной памяти и два 136 ГБ дисков в конфигурации RAID 1. Используемое дисковое пространство составляет около 20 ГБ. Боюсь, что при установке системы у меня возникли ошибки, но я не могу определить, что это такое. Информация о конфигурации ниже.
Мои вопросы очень просты: достаточно ли у меня памяти и места для компиляции файла, который облагает налогом инструменты? Что-то неправильно настроено?
$ prtconf | grep -i memory
Memory size: 8190 Megabytes
$ zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
rpool 136G 19.6G 116G 14% 1.00x ONLINE -
$ df -h
Filesystem Size Used Available Capacity Mounted on
rpool/ROOT/solaris 134G 11G 113G 10% /
/devices 0K 0K 0K 0% /devices
/dev 0K 0K 0K 0% /dev
ctfs 0K 0K 0K 0% /system/contract
proc 0K 0K 0K 0% /proc
mnttab 0K 0K 0K 0% /etc/mnttab
swap 6.7G 1.6M 6.7G 1% /system/volatile
objfs 0K 0K 0K 0% /system/object
sharefs 0K 0K 0K 0% /etc/dfs/sharetab
/usr/lib/libc/libc_hwcap1.so.1
124G 11G 113G 10% /lib/libc.so.1
fd 0K 0K 0K 0% /dev/fd
rpool/ROOT/solaris/var
134G 346M 113G 1% /var
swap 6.8G 114M 6.7G 2% /tmp
rpool/VARSHARE 134G 164K 113G 1% /var/share
rpool/export 134G 32K 113G 1% /export
rpool/export/home 134G 36K 113G 1% /export/home
rpool/export/home/apolyakov
134G 38K 113G 1% /export/home/apolyakov
rpool/export/home/jwalton
134G 2.6G 113G 3% /export/home/jwalton
rpool/export/home/mcaswell
134G 38K 113G 1% /export/home/mcaswell
rpool/export/home/pgutmann
134G 38K 113G 1% /export/home/pgutmann
rpool 134G 4.9M 113G 1% /rpool
rpool/VARSHARE/zones 134G 31K 113G 1% /system/zones
rpool/VARSHARE/pkg 134G 32K 113G 1% /var/share/pkg
rpool/VARSHARE/pkg/repositories
134G 31K 113G 1% /var/share/pkg/repositories
А также:
# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c1t0d0 <HP-LOGICAL VOLUME-5.26-136.70GB>
/pci@0,0/pci8086,25e3@3/pci103c,3235@0/sd@0,0
Specify disk (enter its number): 0
selecting c1t0d0
[disk formatted]
/dev/dsk/c1t0d0s1 is part of active ZFS pool rpool. Please see zpool(1M).
FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
...
format> partition
PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
...
partition> print
Current partition table (original):
Total disk sectors available: 286660669 + 16384 (reserved sectors)
Part Tag Flag First Sector Size Last Sector
0 BIOS_boot wm 256 256.00MB 524543
1 usr wm 524544 136.44GB 286660702
2 unassigned wm 0 0 0
3 unassigned wm 0 0 0
4 unassigned wm 0 0 0
5 unassigned wm 0 0 0
6 unassigned wm 0 0 0
8 reserved wm 286660703 8.00MB 286677086
$ cat bench-compile.txt
...
/opt/developerstudio12.5/bin/CC -DDEBUG -g3 -xO0 -native -m64 -KPIC -template=no%extdef -c bench2.cpp
DBG_GEN FATAL ERROR: dbg_tables.c:171 - fwrite() failed to write required bytes [DBG_GEN 5.6.3]
CC: Fatal error in /opt/developerstudio12.5/lib/compilers/bin/previse
CC: Status 134
gmake: *** [test.o] Error 134
gmake: *** Waiting for unfinished jobs....
Assembler: bench2.cpp
"<null>", line 821548 : Trouble writing; probably out of temporary file space
/opt/developerstudio12.5/lib/compilers/sys/amd64/libsunir.so'ir_proc_write+0x5d [0xffff80ffbb0eeffd]
/opt/developerstudio12.5/lib/compilers/sys/amd64/libsunir.so'ir_mod_write_and_close+0x2f [0xffff80ffbb10633f]
/opt/developerstudio12.5/lib/compilers/bin/iropt'0x3fee3f [0x7fee3f]
/opt/developerstudio12.5/lib/compilers/bin/iropt'main+0x567 [0x8058f7]
/opt/developerstudio12.5/lib/compilers/bin/iropt'0x12d324 [0x52d324]
compiler(iropt) error: libsunir File IO (read / write IR) error using /tmp/iropt.1468062981.23519.05.ir (No space left on device).
CC: cannot copy temporaries: /tmp/previse.1468062981.23519.07.err
CC: Fatal error in /opt/developerstudio12.5/lib/compilers/bin/previse
CC: Status 134
gmake: *** [bench2.o] Error 134
ERROR: failed to make cryptest.exe
$