[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Duplicate symbols due to <emacs dir>/src/termcap.c
From: |
Glenn Morris |
Subject: |
Re: Duplicate symbols due to <emacs dir>/src/termcap.c |
Date: |
Fri, 05 Jan 2018 22:15:52 -0500 |
User-agent: |
Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
Jeffrey Walton wrote:
> /usr/local/lib64/libtermcap.a(tparam.o): In function `tparam':
> /home/scripts/termcap-1.3.1/tparam.c:101: multiple definition of `tparam'
> terminfo.o:terminfo.c:(.text+0x0): first defined here
> terminfo.o: In function `tparam':
> terminfo.c:(.text+0x4a): undefined reference to `tparm'
> collect2: error: ld returned 1 exit status
>
> It looks like it is due to a local copy of termcap.c:
>
> $ find . -name termcap.c
> ./emacs-24.5/src/termcap.c
I think your conclusion about the cause of this issue is incorrect.
Emacs does not use its file src/termcap.c, except on MS-DOS.
> gcc -Demacs -I. -I. -I../lib -I./../lib -MMD -MF deps/.d -MP -m64
> -march=native -fPIC -Wl,-znocombreloc -L/usr/local/lib64 -m64
> -Wl,-R,/usr/local/lib64 -Wl,--enable-new-dtags \
> -o temacs vm-limit.o dispnew.o frame.o scroll.o xdisp.o menu.o
> window.o charset.o coding.o category.o ccl.o character.o chartab.o
> bidi.o cm.o term.o terminal.o xfaces.o emacs.o keyboard.o macros.o
> keymap.o sysdep.o buffer.o filelock.o insdel.o marker.o minibuf.o
> fileio.o dired.o cmds.o casetab.o casefiddle.o indent.o search.o
> regex.o undo.o alloc.o data.o doc.o editfns.o callint.o eval.o
> floatfns.o fns.o font.o print.o lread.o syntax.o unexelf.o bytecode.o
> process.o gnutls.o callproc.o region-cache.o sound.o atimer.o doprnt.o
> intervals.o textprop.o composite.o xml.o inotify.o profiler.o
> decompress.o terminfo.o lastfile.o gmalloc.o ralloc.o
> ../lib/libgnu.a -lrt -ltermcap
> -lpthread -lm -lz
Note lack of "termcap.o" in the above.
> /usr/local/lib64/libtermcap.a(tparam.o): In function `tparam':
> /home/scripts/termcap-1.3.1/tparam.c:101: multiple definition of `tparam'
> terminfo.o:terminfo.c:(.text+0x0): first defined here
> terminfo.o: In function `tparam':
> terminfo.c:(.text+0x4a): undefined reference to `tparm'
So it looks like you have a hand-compiled, static version of libtermcap,
which is rather unusual. I think the problem is internal to your
libtermcap installation.
Emacs's configure script will use any of libtinfo, libncurses,
libterminfo in preference to libtermcap. So you might try installing one
of those, preferably the standard version from your (unspecified)
distribution, and retry with a clean build.
Note also that Emacs 25.3 is the latest release.