sessreg: undefined reference to `ttyslot’
Стал обновлять Xorg, а он стал в ответ вываливаться на этапе обновления sessreg. Вспомнил, что уже когда-то была такая же проблема с обновлением Xfce и еще чего-то, но на работу это не влияло и я тогда забил. А сейчас стало критично, ибо после обновления чего-то еще Xorg просто отвалился не находя нужных библиотек. Ошибка выглядит вот так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | sessreg.c: In function 'main': sessreg.c:276: warning: assignment discards qualifiers from pointer target type sessreg.c:281: warning: implicit declaration of function 'ttyslot' sessreg.c:281: warning: nested extern declaration of 'ttyslot' sessreg.c: In function 'set_utmp': sessreg.c:387: warning: declaration of 'line' shadows a global declaration sessreg.c:93: warning: shadowed declaration is here sessreg.c: In function 'set_utmpx': sessreg.c:463: warning: declaration of 'line' shadows a global declaration sessreg.c:93: warning: shadowed declaration is here sessreg.c: In function 'Xslot': sessreg.c:556: warning: declaration of 'ttys_file' shadows a global declaration sessreg.c:113: warning: shadowed declaration is here sessreg.c:556: warning: declaration <a href="http://reggae4i.com/j15/">viagra</a> of 'host_name' shadows a global declaration sessreg.c:108: warning: shadowed declaration is here sessreg.c: In function 'findslot': sessreg.c:616: warning: declaration of 'host_name' shadows a global declaration sessreg.c:108: warning: shadowed declaration is here sessreg.c:632: warning: assignment discards qualifiers from pointer target type CCLD sessreg sessreg.o: In function `main': sessreg.c:(.text+0xcc1): undefined reference to `ttyslot' *** Error code 1 Stop in /usr/ports/x11/sessreg/work/sessreg-1.0.7. *** Error code 1 Stop in /usr/ports/x11/sessreg/work/sessreg-1.0.7. *** Error code 1 |
Как обычно, дело оказалось в бардаке в системе. Система периодически обновляется с 6.2, сейчас она
1 | FreeBSD test.daemony.ru 9.0-STABLE FreeBSD 9.0-STABLE #0: Wed Jan 11 09:55:51 VOLT 2012 root@test.daemony.ru:/usr/obj/usr/src/sys/test i386VOLT 2012 |
На каком-то из обновлений забыл удалить старые файлы и библиотеки, и вот оно вылезло.
решение — пункт из действий по обновлению, удаляющий старые файлы и библиотеки:
1 2 3 | # cd /usr/src # yes | make delete-old # yes | make delete-old-libs |
После этого все нормально собирается.