[Home]

Summary:ASTERISK-01659: [PATCH] Ncurses/gcc problems without termcap. One Liner fix
Reporter:raiden (raiden)Labels:
Date Opened:2004-05-19 21:57:11Date Closed:2008-01-15 14:55:35.000-0600
Priority:BlockerRegression?No
Status:Closed/CompleteComponents:Core/Configuration
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) ncurses2.diff
Description:I have noticed some people with problems with ncurses if you dont have termcap installed. If I remove ncurses and installed termcap, it compiles properly. I found a simple 1 line fix which I hope shouldn't break anything and would like to get this included in the main * cvs. Here is what happens.

if [ -d CVS ] && ! [ -f .version ]; then echo CVS-HEAD-05/19/04-20:52:55 > .version; fi
gcc -g  -o asterisk -Wl,-E  io.o sched.o logger.o frame.o loader.o config.o channel.o translate.o file.o say.o pbx.o cli.o md5.o term.o ulaw.o alaw.o callerid.o fskmodem.o image.o app.o cdr.o tdd.o acl.o rtp.o manager.o asterisk.o ast_expr.o dsp.o chanvars.o indications.o autoservice.o db.o privacy.o astmm.o enum.o srv.o dns.o aescrypt.o aestab.o aeskey.o utils.o  -ldl -lpthread -lncurses -lm -lresolv   editline/libedit.a db1-ast/libdb1.a stdtime/libtime.a
editline/libedit.a(editline.o_a)(.text+0x75bc): In function `term_move_to_line':
/root/asterisk/editline/term.c:554: undefined reference to `tgoto'
editline/libedit.a(editline.o_a)(.text+0x75c5):/root/asterisk/editline/term.c:554: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x7647):/root/asterisk/editline/term.c:567: undefined reference to `tgoto'
editline/libedit.a(editline.o_a)(.text+0x7650):/root/asterisk/editline/term.c:567: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x767f):/root/asterisk/editline/term.c:572: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x77d5): In function `term_move_to_char':
/root/asterisk/editline/term.c:643: undefined reference to `tgoto'
editline/libedit.a(editline.o_a)(.text+0x77de):/root/asterisk/editline/term.c:643: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x794c): In function `term_deletechars':
/root/asterisk/editline/term.c:734: undefined reference to `tgoto'
editline/libedit.a(editline.o_a)(.text+0x7955):/root/asterisk/editline/term.c:734: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x797d):/root/asterisk/editline/term.c:739: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x79ac):/root/asterisk/editline/term.c:743: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x79d8):/root/asterisk/editline/term.c:746: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x7a55): In function `term_insertwrite':
/root/asterisk/editline/term.c:775: undefined reference to `tgoto'
editline/libedit.a(editline.o_a)(.text+0x7a5e):/root/asterisk/editline/term.c:775: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x7a9f):/root/asterisk/editline/term.c:782: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x7adb):/root/asterisk/editline/term.c:790: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x7af3):/root/asterisk/editline/term.c:792: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x7b18):/root/asterisk/editline/term.c:797: undefined reference to `tputs'
editline/libedit.a(editline.o_a)(.text+0x7b51):/root/asterisk/editline/term.c:805: more undefined references to `tputs' follow
editline/libedit.a(editline.o_a)(.text+0x7d58): In function `term_set':
/root/asterisk/editline/term.c:911: undefined reference to `tgetent'
editline/libedit.a(editline.o_a)(.text+0x7e28):/root/asterisk/editline/term.c:929: undefined reference to `tgetflag'
editline/libedit.a(editline.o_a)(.text+0x7e3c):/root/asterisk/editline/term.c:930: undefined reference to `tgetflag'
editline/libedit.a(editline.o_a)(.text+0x7e4e):/root/asterisk/editline/term.c:932: undefined reference to `tgetflag'
editline/libedit.a(editline.o_a)(.text+0x7e60):/root/asterisk/editline/term.c:933: undefined reference to `tgetflag'
editline/libedit.a(editline.o_a)(.text+0x7e72):/root/asterisk/editline/term.c:935: undefined reference to `tgetflag'
editline/libedit.a(editline.o_a)(.text+0x7e84):/root/asterisk/editline/term.c:936: more undefined references to `tgetflag' follow
editline/libedit.a(editline.o_a)(.text+0x7e96): In function `term_set':
/root/asterisk/editline/term.c:938: undefined reference to `tgetnum'
editline/libedit.a(editline.o_a)(.text+0x7ea8):/root/asterisk/editline/term.c:939: undefined reference to `tgetnum'
editline/libedit.a(editline.o_a)(.text+0x7ed0):/root/asterisk/editline/term.c:941: undefined reference to `tgetstr'
editline/libedit.a(editline.o_a)(.text+0x8b78): In function `term_echotc':
/root/asterisk/editline/term.c:1439: undefined reference to `tgetstr'
editline/libedit.a(editline.o_a)(.text+0x8e43):/root/asterisk/editline/term.c:1574: undefined reference to `tgoto'
editline/libedit.a(editline.o_a)(.text+0x8e4c):/root/asterisk/editline/term.c:1574: undefined reference to `tputs'
collect2: ld returned 1 exit status
make: *** [asterisk] Error 1

If I edit line 253 in Makefile, change the line from
$(CC) $(DEBUG) -o asterisk $(ASTLINK) $(OBJS) $(LIBS) $(LIBEDIT) db1-ast/libdb1.a stdtime/libtime.a

to

$(CC) $(DEBUG) -o asterisk $(ASTLINK) $(OBJS) $(LIBEDIT) db1-ast/libdb1.a stdtime/libtime.a $(LIBS)

And thats it, it now compiles properly. I tried it on gcc 3.3.2 and gcc 3.4




****** ADDITIONAL INFORMATION ******

Simply apply the patch in the main tree.
Comments:By: Mark Spencer (markster) 2004-05-20 02:55:56

Fixed in CVS

By: Digium Subversion (svnbot) 2008-01-15 14:55:35.000-0600

Repository: asterisk
Revision: 3024

U   trunk/Makefile

------------------------------------------------------------------------
r3024 | markster | 2008-01-15 14:55:35 -0600 (Tue, 15 Jan 2008) | 2 lines

Fix compile order (bug ASTERISK-1659)

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=3024