Проблема сборки PAPyRUS под OpenBSD 6.2

  • AkhmedSatajaAkhmedSataja 10.10.2023
    А вот это уже интересно. Я стал закапываться в Makefile и то, что после команд make all остается из объектных файлов нашел следующее:

    ./callbacks.o
    ./menus.o
    ./widgets.o
    ./modify_text.o
    ./mainWin.o
    ./dialogs.o
    ./actions.o
    ./init.o
    ./isfuncs.o
    ./attributes.o
    ./main.o
    ./papyrus_output.o
    ./container.o
    ./ps_output.o
    ./ascii_output.o
    ./frame.o
    ./cursor.o
    ./display.o
    ./events.o
    ./page.o
    ./paragraph.o
    ./document.o
    ./line.o
    ./word.o
    ./wordSegment.o
    ./thePosition.o
    ./image.o
    ./util.o
    ./fontManager.o
    ./fontFamily.o
    ./styleManager.o
    ./styleItem.o
    ./tclMain.o
    ./tclInit.o
    ./tclGet.o
    ./commandsAM.o
    ./commandsNZ.o
    ./shortcuts.o
    ./parseAFM.o
    ./env.o
    ./clan.o

    И это при том. что в самом Makefile:

    OBJS =	gui/callbacks.o      	gui/menus.o		gui/widgets.o			\
            gui/modify_text.o    	gui/mainWin.o   	gui/dialogs.o			\
    	gui/actions.o		gui/init.o		kernel/isfuncs.o		\
    	kernel/attributes.o	kernel/main.o		kernel/papyrus_output.o		\
    	kernel/container.o	kernel/ps_output.o	kernel/ascii_output.o		\
    	kernel/frame.o		kernel/cursor.o		kernel/display.o		\
    	kernel/events.o   	kernel/page.o  		kernel/paragraph.o   		\
    	kernel/document.o   	kernel/line.o     	kernel/word.o			\
    	kernel/wordSegment.o	kernel/thePosition.o	kernel/image.o			\
    	kernel/util.o									\
    	kernel/FontManager/fontManager.o 	      	kernel/FontManager/fontFamily.o \
    	kernel/StyleManager/styleManager.o		kernel/StyleManager/styleItem.o \
    	tcl/tclMain.o		tcl/tclInit.o		tcl/tclGet.o			\
    	tcl/commandsAM.o	tcl/commandsNZ.o					\
    	misc/shortcuts.o	misc/parseAFM.o		misc/env.o

    Несоответствие путей?
    Более того, финальная линковка происходит по команде:

    gcc -o bin/papyrus  -L/usr/X11R6/lib -lXm -L/usr/X11R6/lib -L/usr/X11R6/lib              -lXmu -lXt -lSM -lICE -lXext

    И где, спрашивается, все эти объектные файлы, куда они делись при оной?
    Вот, кажется, где собака зарыта. Буду проверять.
  • olegus 10.10.2023
    Я же только позавчера к ним заходил, 7.3 было...
  • AkhmedSatajaAkhmedSataja 10.10.2023
    А, Вы мне эту ссылку, ЕМНИП, эту и дали)
  • AkhmedSatajaAkhmedSataja 10.10.2023
    Вон:
    http://ftp.eu.openbsd.org/pub/OpenBSD/7.4/packages/amd64/
    Пока только для amd64, как я понял.
  • olegus 10.10.2023
    AkhmedSataja:
    А вот это уже интересно. Я стал закапываться в Makefile и то, что после команд make all остается из объектных файлов нашел следующее:

    ./callbacks.o
    ./menus.o
    ./widgets.o
    ./modify_text.o
    ./mainWin.o
    ./dialogs.o
    ./actions.o
    ./init.o
    ./isfuncs.o
    ./attributes.o
    ./main.o
    ./papyrus_output.o
    ./container.o
    ./ps_output.o
    ./ascii_output.o
    ./frame.o
    ./cursor.o
    ./display.o
    ./events.o
    ./page.o
    ./paragraph.o
    ./document.o
    ./line.o
    ./word.o
    ./wordSegment.o
    ./thePosition.o
    ./image.o
    ./util.o
    ./fontManager.o
    ./fontFamily.o
    ./styleManager.o
    ./styleItem.o
    ./tclMain.o
    ./tclInit.o
    ./tclGet.o
    ./commandsAM.o
    ./commandsNZ.o
    ./shortcuts.o
    ./parseAFM.o
    ./env.o
    ./clan.o

    И это при том. что в самом Makefile:

    OBJS =	gui/callbacks.o      	gui/menus.o		gui/widgets.o			\
            gui/modify_text.o    	gui/mainWin.o   	gui/dialogs.o			\
    	gui/actions.o		gui/init.o		kernel/isfuncs.o		\
    	kernel/attributes.o	kernel/main.o		kernel/papyrus_output.o		\
    	kernel/container.o	kernel/ps_output.o	kernel/ascii_output.o		\
    	kernel/frame.o		kernel/cursor.o		kernel/display.o		\
    	kernel/events.o   	kernel/page.o  		kernel/paragraph.o   		\
    	kernel/document.o   	kernel/line.o     	kernel/word.o			\
    	kernel/wordSegment.o	kernel/thePosition.o	kernel/image.o			\
    	kernel/util.o									\
    	kernel/FontManager/fontManager.o 	      	kernel/FontManager/fontFamily.o \
    	kernel/StyleManager/styleManager.o		kernel/StyleManager/styleItem.o \
    	tcl/tclMain.o		tcl/tclInit.o		tcl/tclGet.o			\
    	tcl/commandsAM.o	tcl/commandsNZ.o					\
    	misc/shortcuts.o	misc/parseAFM.o		misc/env.o

    Несоответствие путей?
    Более того, финальная линковка происходит по команде:

    gcc -o bin/papyrus  -L/usr/X11R6/lib -lXm -L/usr/X11R6/lib -L/usr/X11R6/lib              -lXmu -lXt -lSM -lICE -lXext

    И где, спрашивается, все эти объектные файлы, куда они делись при оной?
    Вот, кажется, где собака зарыта. Буду проверять.

    Так это Makefile виноват? Никогда бы не подумал что в нем есть ошибки. :O
  • AkhmedSatajaAkhmedSataja 10.10.2023
    Ага, доисправлялся. Теперь такой ужас:
    kernel/FontManager/fontFamily.o: In function `FontFamily::~FontFamily()':
    fontFamily.cc:(.text+0x71): undefined reference to `operator delete(void*)'
    fontFamily.cc:(.text+0x7c): undefined reference to `operator delete(void*)'
    kernel/FontManager/fontFamily.o: In function `FontFamily::~FontFamily()':
    fontFamily.cc:(.text+0xb1): undefined reference to `operator delete(void*)'
    fontFamily.cc:(.text+0xbc): undefined reference to `operator delete(void*)'
    kernel/FontManager/fontFamily.o: In function `FontFamily::del_item(int)':
    fontFamily.cc:(.text+0x140): undefined reference to `operator delete(void*)'
    kernel/FontManager/fontFamily.o: In function `FontFamily::add_item(_XDisplay*, int)':
    fontFamily.cc:(.text+0x19c): undefined reference to `operator new(unsigned long)'
    kernel/StyleManager/styleManager.o: In function `StyleManager::add_style(char*, StyleItem*)':
    styleManager.cc:(.text+0x109): undefined reference to `operator new(unsigned long)'
    styleManager.cc:(.text+0x369): undefined reference to `operator delete(void*)'
    kernel/StyleManager/styleManager.o: In function `StyleManager::del_style(char*)':
    styleManager.cc:(.text+0x3d4): undefined reference to `operator delete(void*)'
    kernel/StyleManager/styleItem.o: In function `StyleItem::set_attr(StyleAttrType, void*)':
    styleItem.cc:(.text+0x166): undefined reference to `operator delete(void*)'
    styleItem.cc:(.text+0x208): undefined reference to `operator delete(void*)'
    tcl/tclMain.o: In function `Tcl_MyEval':
    tclMain.c:(.text+0x27): undefined reference to `Tcl_DStringInit'
    tclMain.c:(.text+0x3b): undefined reference to `Tcl_DStringAppend'
    tclMain.c:(.text+0x43): undefined reference to `Tcl_CommandComplete'
    tclMain.c:(.text+0x61): undefined reference to `Tcl_RecordAndEval'
    tclMain.c:(.text+0x6b): undefined reference to `Tcl_DStringFree'
    tclMain.c:(.text+0x95): undefined reference to `Tcl_Eval'
    tclMain.c:(.text+0xb4): undefined reference to `Tcl_GetStringResult'
    tcl/tclMain.o: In function `My_Tcl_Main':
    tclMain.c:(.text+0xff): undefined reference to `Tcl_CreateInterp'
    tclMain.c:(.text+0x14f): undefined reference to `Tcl_Merge'
    tclMain.c:(.text+0x17f): undefined reference to `Tcl_SetVar2'
    tclMain.c:(.text+0x18d): undefined reference to `Tcl_Free'
    tclMain.c:(.text+0x1d1): undefined reference to `Tcl_SetVar2'
    tclMain.c:(.text+0x213): undefined reference to `Tcl_SetVar2'
    tclMain.c:(.text+0x25a): undefined reference to `Tcl_SetVar2'
    tclMain.c:(.text+0x29a): undefined reference to `Tcl_EvalFile'
    tclMain.c:(.text+0x2e1): undefined reference to `Tcl_Merge'
    tclMain.c:(.text+0x311): undefined reference to `Tcl_SetVar2'
    tclMain.c:(.text+0x31f): undefined reference to `Tcl_Free'
    tclMain.c:(.text+0x363): undefined reference to `Tcl_SetVar2'
    tclMain.c:(.text+0x3af): undefined reference to `Tcl_SetVar2'
    tclMain.c:(.text+0x3e4): undefined reference to `Tcl_GetStringResult'
    tclMain.c:(.text+0x401): undefined reference to `Tcl_GetStringResult'
    tclMain.c:(.text+0x446): undefined reference to `Tcl_GetVar2'
    tclMain.c:(.text+0x46e): undefined reference to `Tcl_TranslateFileName'
    tclMain.c:(.text+0x4a4): undefined reference to `Tcl_EvalFile'
    tclMain.c:(.text+0x4be): undefined reference to `Tcl_DStringFree'
    tclMain.c:(.text+0x4ea): undefined reference to `Tcl_LinkVar'
    tclMain.c:(.text+0x505): undefined reference to `Tcl_GetStringResult'
    tclMain.c:(.text+0x51f): undefined reference to `Tcl_GetStringResult'
    tcl/tclInit.o: In function `Tcl_AppInit':
    tclInit.cc:(.text+0x29): undefined reference to `Tcl_Init'
    tclInit.cc:(.text+0x65): undefined reference to `Tcl_CreateCommand'
    tclInit.cc:(.text+0x8b): undefined reference to `Tcl_CreateCommand'
    tclInit.cc:(.text+0xc6): undefined reference to `Tcl_SetVar2'
    tclInit.cc:(.text+0xf0): undefined reference to `Tcl_EvalFile'
    tclInit.cc:(.text+0x14d): undefined reference to `Tcl_TraceVar2'
    tclInit.cc:(.text+0x183): undefined reference to `Tcl_TraceVar2'
    tclInit.cc:(.text+0x1b3): undefined reference to `Tcl_TraceVar2'
    tclInit.cc:(.text+0x1e3): undefined reference to `Tcl_TraceVar2'
    tclInit.cc:(.text+0x213): undefined reference to `Tcl_TraceVar2'
    tcl/tclInit.o:tclInit.cc:(.text+0x243): more undefined references to `Tcl_TraceVar2' follow
    tcl/tclInit.o: In function `alive_TraceProc(void*, Tcl_Interp*, char*, char*, int)':
    tclInit.cc:(.text+0x2a0): undefined reference to `Tcl_GetVar2'
    tclInit.cc:(.text+0x2b3): undefined reference to `Tcl_GetBoolean'
    tcl/tclInit.o: In function `toolBar_TraceProc(void*, Tcl_Interp*, char*, char*, int)':
    tclInit.cc:(.text+0x78b): undefined reference to `Tcl_GetVar2'
    tclInit.cc:(.text+0x7ae): undefined reference to `Tcl_GetVar2'
  • AkhmedSatajaAkhmedSataja 10.10.2023
    Короче, после компиляции куча объектных файлов по непонятной мне причине валяются в директории с Makefile'ом, вместно того, чтобы быть распределенными по нужным директориям. Когда я ручками отвез их по нужным местам и вновь запустил make all он выдал мне тот треш, что написан выше. С линковкой проблема.
  • olegus 10.10.2023
    Поберегите нервы лучше, Вы похоже всем функциям сделали несуществующие ссылки.
  • AkhmedSatajaAkhmedSataja 10.10.2023
    Так, вроде, пожар немного удалось локализовать путем добавления в LDFLAGS опции -lstdc++, :
    LDFLAGS = -lpcap -lpthread -lstdc++

    Теперь проблема с TCL, ибо он не находит с чем слинковаться, но хоть ошибка "Undefined reference to 'operator delete(void*)'", внезапно появившаяся, ушла. Надеюсь, надолго.

    Script started on Tue Oct 10 15:36:15 2023
    $ make all
    
    gcc -o bin/papyrus   gui/callbacks.o            gui/menus.o             gui/widgets.o                    gui/modify_text.o      gui/mainWin.o           gui/dialogs.o                    gui/actions.o          gui/init.o              kernel/isfuncs.o                 kernel/attributes.o    kernel/main.o           kernel/papyrus_output.o          kernel/container.o     kernel/ps_output.o      kernel/ascii_output.o            kernel/frame.o         kernel/cursor.o         kernel/display.o                 kernel/events.o        kernel/page.o           kernel/paragraph.o               kernel/document.o      kernel/line.o           kernel/word.o                    kernel/wordSegment.o   kernel/thePosition.o    kernel/image.o                   kernel/util.o                                                                   kernel/FontManager/fontManager.o               kernel/FontManager/fontFamily.o  kernel/StyleManager/styleManager.o             kernel/StyleManager/styleItem.o  tcl/tclMain.o          tcl/tclInit.o           tcl/tclGet.o                     tcl/commandsAM.o       tcl/commandsNZ.o                                         misc/shortcuts.o       misc/parseAFM.o         misc/env.o -L/usr/X11R6/lib -lXm -L/usr/X11R6/lib -L/usr/X11R6/lib               -lXmu -lXt -lSM -lICE -lXext                            -L/usr/X11R6/lib -lXpm -lX11 -L/usr/local/lib/tcl/tcl8.6             -L/usr/local/lib -L/usr/dt/lib/ -L/usr/X11R6/lib/        -lX11 -L/usr/local/lib/tcl/  -lpcap -lpthread -lstdc++ 
    kernel/ps_output.o:(.data+0x0): multiple definition of `list_c'
    kernel/main.o:(.data+0x0): first defined here
    /usr/bin/ld: Warning: size of symbol `list_c' changed from 128 in kernel/main.o to 1024 in kernel/ps_output.o
    kernel/paragraph.o:(.data+0x0): multiple definition of `list_c'
    kernel/main.o:(.data+0x0): first defined here
    /usr/bin/ld: Warning: size of symbol `list_c' changed from 1024 in kernel/main.o to 384 in kernel/paragraph.o
    kernel/util.o:(.data+0x0): multiple definition of `list_c'
    kernel/main.o:(.data+0x0): first defined here
    /usr/bin/ld: Warning: size of symbol `list_c' changed from 384 in kernel/main.o to 1024 in kernel/util.o
    tcl/tclInit.o:(.data+0x0): multiple definition of `list_c'
    kernel/main.o:(.data+0x0): first defined here
    /usr/bin/ld: Warning: size of symbol `list_c' changed from 1024 in kernel/main.o to 9728 in tcl/tclInit.o
    /usr/local/lib/libXm.so.6.1: warning: warning: wcscat() is almost always misused, please use wcslcat()
    /usr/local/lib/libXm.so.6.1: warning: warning: wcscpy() is almost always misused, please use wcslcpy()
    gui/widgets.o: In function `GUI_Add_OptionMenuEntry':
    gui/widgets.c:1187: warning: warning: strcat() is almost always misused, please use strlcat()
    gui/callbacks.o: In function `fontSelect_CB':
    gui/callbacks.c:1482: warning: warning: strcpy() is almost always misused, please use strlcpy()
    gui/callbacks.o: In function `specialChars_insert_CB':
    gui/callbacks.c:1641: warning: warning: sprintf() is often misused, please use snprintf()
    gui/callbacks.o: In function `menu_p0_b1_CB':
    gui/callbacks.c:258: undefined reference to `Tcl_GetStringResult'
    gui/callbacks.o: In function `ispell_CB':
    gui/callbacks.c:259: undefined reference to `Tcl_SplitList'
    gui/callbacks.o: In function `params_CB':
    gui/callbacks.c:1154: undefined reference to `Tcl_SetVar2'
    gui/callbacks.c:1025: undefined reference to `Tcl_SetVar2'
    gui/callbacks.c:1040: undefined reference to `Tcl_SetVar2'
    gui/callbacks.c:1048: undefined reference to `Tcl_SetVar2'
    gui/callbacks.c:1067: undefined reference to `Tcl_SetVar2'
    gui/callbacks.o:gui/callbacks.c:801: more undefined references to `Tcl_SetVar2' follow
    gui/callbacks.o: In function `menu_p4_b3_CB':
    gui/callbacks.c:639: undefined reference to `Tcl_GetVar2'
    gui/callbacks.c:653: undefined reference to `Tcl_SetVar2'
    gui/callbacks.c:653: undefined reference to `Tcl_GetVar2'
    gui/callbacks.c:659: undefined reference to `Tcl_SetVar2'
    gui/callbacks.o: In function `menu_p4_b1_CB':
    gui/callbacks.c:594: undefined reference to `Tcl_SetVar2'
    gui/callbacks.c:608: undefined reference to `Tcl_SetVar2'
  • AkhmedSatajaAkhmedSataja 10.10.2023
    gui/callbacks.c:587: undefined reference to `Tcl_GetVar2'
    gui/callbacks.c:595: undefined reference to `Tcl_GetVar2'
    gui/callbacks.o: In function `menu_p4_b0_CB':
    gui/callbacks.c:519: undefined reference to `Tcl_GetVar2'
    gui/callbacks.c:553: undefined reference to `Tcl_GetVar2'
    gui/callbacks.c:526: undefined reference to `Tcl_GetVar2'
    gui/callbacks.o:gui/callbacks.c:681: more undefined references to `Tcl_GetVar2' follow
    gui/callbacks.o: In function `search_CB':
    callbacks.c:(.text+0x1faf): undefined reference to `Tcl_SetVar2'
    gui/callbacks.o: In function `optionMenu_CB':
    callbacks.c:(.text+0x2dac): undefined reference to `Tcl_GetInt'
    gui/actions.o: In function `Toggle_Activate':
    gui/actions.c:152: undefined reference to `Tcl_Eval'
    gui/init.o: In function `GUI_InitInfosDialog':
    gui/init.c:161: undefined reference to `Tcl_GetVar2'
    gui/init.c:164: undefined reference to `Tcl_GetVar2'
    gui/init.o: In function `GUI_InitParamsDialog':
    gui/init.c:129: undefined reference to `Tcl_GetVar2'
    gui/init.c:132: undefined reference to `Tcl_GetVar2'
    gui/init.c:135: undefined reference to `Tcl_GetVar2'
    gui/init.o:gui/init.c:138: more undefined references to `Tcl_GetVar2' follow
    kernel/main.o: In function `Init_Papyrus()':
    main.cc:(.text+0x23f): undefined reference to `Tcl_LinkVar'
    kernel/papyrus_output.o: In function `Line::output_papyrus()':
    kernel/papyrus_output.cc:183: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.o: In function `Image::output_papyrus()':
    kernel/papyrus_output.cc:150: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:150: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:150: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:150: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:150: undefined reference to `Tcl_DStringSetLength'
    kernel/papyrus_output.cc:151: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:152: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:153: undefined reference to `Tcl_Write'
    kernel/papyrus_output.o: In function `WordSegment::output_papyrus()':
    kernel/papyrus_output.cc:91: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:92: undefined reference to `Tcl_DStringAppendElement'
    kernel/papyrus_output.cc:109: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:109: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:109: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:109: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:109: undefined reference to `Tcl_DStringSetLength'
    kernel/papyrus_output.cc:110: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:111: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:111: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:111: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:112: undefined reference to `Tcl_DStringSetLength'
    kernel/papyrus_output.cc:122: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:121: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:86: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:87: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:97: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:98: undefined reference to `Tcl_DStringAppendElement'
    kernel/papyrus_output.o: In function `Paragraph::output_papyrus()':
    kernel/papyrus_output.cc:365: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:365: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:365: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:365: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:365: undefined reference to `Tcl_DStringSetLength'
    kernel/papyrus_output.cc:350: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:351: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:355: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:359: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:341: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:342: undefined reference to `Tcl_DStringAppendElement'
    kernel/papyrus_output.cc:331: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:332: undefined reference to `Tcl_DStringAppendElement'
    kernel/papyrus_output.cc:362: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:363: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:358: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:357: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:356: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.o: In function `Document::output_papyrus()':
    kernel/papyrus_output.cc:222: undefined reference to `Tcl_DStringInit'
    kernel/papyrus_output.cc:223: undefined reference to `Tcl_DStringInit'
    kernel/papyrus_output.cc:224: undefined reference to `Tcl_DStringInit'
    kernel/papyrus_output.cc:228: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:229: undefined reference to `Tcl_DStringAppendElement'
    kernel/papyrus_output.cc:232: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:233: undefined reference to `Tcl_DStringAppendElement'
    kernel/papyrus_output.cc:235: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:235: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:235: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:235: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:235: undefined reference to `Tcl_DStringSetLength'
    kernel/papyrus_output.cc:257: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:257: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:257: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:257: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:257: undefined reference to `Tcl_DStringSetLength'
    kernel/papyrus_output.cc:258: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:263: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:267: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:267: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:267: undefined reference to `Tcl_DStringAppend'
    kernel/papyrus_output.cc:267: undefined reference to `Tcl_Write'
    kernel/papyrus_output.cc:267: undefined reference to `Tcl_DStringSetLength'
    kernel/papyrus_output.cc:269: undefined reference to `Tcl_DStringFree'
    kernel/ps_output.o: In function `PS_Page_Footer()':
    ps_output.cc:(.text+0x255): undefined reference to `Tcl_Write'
    ps_output.cc:(.text+0x271): undefined reference to `Tcl_Write'
    kernel/ps_output.o: In function `PS_Document_Footer()':
    ps_output.cc:(.text+0x2b5): undefined reference to `Tcl_Write'