Link error in all builds after applying patches 8-1-1887 and -1888: undefined symbol get_arglist_name in cmdexpand.o

22 views
Skip to first unread message

Tony Mechelynck

unread,
Aug 18, 2019, 7:34:48 PM8/18/19
to Bram Moolenaar, vim_dev
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
gcc -L/usr/local/lib -Wl,--as-needed -o vi objects/arabic.o
objects/arglist.o objects/autocmd.o objects/beval.o objects/buffer.o
objects/change.o objects/blob.o objects/blowfish.o objects/cmdexpand.o
objects/cmdhist.o objects/crypt.o objects/crypt_zip.o
objects/debugger.o objects/dict.o objects/diff.o objects/digraph.o
objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o
objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o
objects/ex_getln.o objects/fileio.o objects/findfile.o objects/fold.o
objects/getchar.o objects/hardcopy.o objects/hashtab.o
objects/highlight.o objects/if_cscope.o objects/if_xcmdsrv.o
objects/indent.o objects/insexpand.o objects/list.o objects/map.o
objects/mark.o objects/memline.o objects/menu.o objects/misc1.o
objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o
objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o
objects/popupmnu.o objects/popupwin.o objects/profiler.o objects/pty.o
objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o
objects/session.o objects/sha256.o objects/sign.o objects/sound.o
objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o
objects/term.o objects/terminal.o objects/testing.o objects/textprop.o
objects/ui.o objects/undo.o objects/usercmd.o objects/userfunc.o
objects/version.o objects/viminfo.o objects/window.o
objects/xdiffi.o objects/xemit.o objects/xprepare.o objects/xutils.o
objects/xhistogram.o objects/xpatience.o objects/charset.o
objects/json.o objects/main.o objects/memfile.o objects/message.o
-lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lelf
-lgpm -ldl
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
objects/cmdexpand.o:(.rodata+0x1a0): undefined reference to
`get_arglist_name'
collect2: error: ld returned 1 exit status
link.sh: Linking failed
make: *** [Makefile:2045: vi] Error 1
exit status 2


Best regards,
Tony.

Bram Moolenaar

unread,
Aug 19, 2019, 7:55:55 AM8/19/19
to vim...@googlegroups.com, Tony Mechelynck
I don't see this problem. What features do you have enabled/disabled?

--
From "know your smileys":
O:-) Saint

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

Tony Mechelynck

unread,
Aug 19, 2019, 8:14:44 AM8/19/19
to Bram Moolenaar, vim_dev
All of the following fail; and my only feature.h change consists of
enabling +xterm_save by uncommenting line 773. This used to work
since, oh, version 6.x I think.

Huge:

export CONF_OPT_GUI='--enable-gui=gnome2'
export CONF_OPT_PERL='--enable-perlinterp'
export CONF_OPT_PYTHON='--enable-pythoninterp'
export CONF_OPT_PYTHON3='--disable-python3interp'
export CONF_OPT_TCL='--enable-tclinterp'
# /usr/bin/tclsh (softlink) is correctly set
export CONF_OPT_RUBY='--enable-rubyinterp'
export CONF_OPT_LUA='--enable-luainterp'
export CONF_OPT_MZSCHEME='--disable-mzschemeinterp'
export CONF_OPT_CSCOPE='--enable-cscope'
export CONF_OPT_MULTIBYTE='--enable-multibyte'
export CONF_OPT_TERMINAL='--enable-terminal'
export CONF_OPT_AUTOSERVE='--enable-autoservername'
export CONF_OPT_FEAT='--with-features=huge'
export CONF_ARGS2='--with-vim-name=vim-huge'
export CONF_OPT_COMPBY='"--with-compiledby=antoine.m...@gmail.com"'

Big:

export CONF_OPT_GUI='--enable-gui=gtk2'
export CONF_OPT_MULTIBYTE='--enable-multibyte'
export CONF_OPT_AUTOSERVE='--enable-autoservername'
export CONF_OPT_FEAT='--with-features=big'
export CONF_OPT_COMPBY='"--with-compiledby=antoine.m...@gmail.com"'

Normal:

export CONF_OPT_GUI='--enable-gui=gtk2'
export CONF_OPT_MULTIBYTE='--enable-multibyte'
export CONF_OPT_AUTOSERVE='--enable-autoservername'
export CONF_OPT_FEAT='--with-features=normal'
export CONF_ARGS2='--with-vim-name=vim-normal'
export CONF_OPT_COMPBY='"--with-compiledby=antoine.m...@gmail.com"'

Small:

export CONF_OPT_GUI='--enable-gui=motif'
export CONF_OPT_FEAT='--with-features=small'
export CONF_ARGS2='--with-vim-name=vim-small'
export CONF_OPT_COMPBY='"--with-compiledby=antoine.m...@gmail.com"'

Tiny:

export CONF_OPT_ACL='--disable-acl'
export CONF_OPT_GUI='--disable-gui'
export CONF_OPT_PERL='--disable-perlinterp'
export CONF_OPT_PYTHON='--disable-pythoninterp'
export CONF_OPT_PYTHON3='--disable-python3interp'
export CONF_OPT_TCL='--disable-tclinterp'
export CONF_OPT_RUBY='--disable-rubyinterp'
export CONF_OPT_LUA='--disable-luainterp'
export CONF_OPT_MZSCHEME='--disable-mzschemeinterp'
export CONF_OPT_CSCOPE='--disable-cscope'
export CONF_OPT_FEAT='--with-features=tiny'
export CONF_OPT_COMPBY='"--with-compiledby=antoine.m...@gmail.com"'
export CONF_ARGS2='--with-vim-name=vi'



Best regards,
Tony.

Bram Moolenaar

unread,
Aug 19, 2019, 9:25:54 AM8/19/19
to vim...@googlegroups.com, Tony Mechelynck
[...]

Please check if you are missing something, src/arglist.c contains
get_arglist_name() without "static" and it's not inside an #ifdef, thus
you should have it.


--
From "know your smileys":
:-O>-o Smiley American tourist (note big mouth and camera)

Tony Mechelynck

unread,
Aug 19, 2019, 2:04:23 PM8/19/19
to Bram Moolenaar, vim_dev
That's it!
src/shadow-big/arglist.c should be a link to ../arglist.c, but it is a
text file instead, and there get_arglist_name is breacketed between
"#if defined(FEAT_CMDL_COMPL) || defined(PROTO)" .. "#endif"


I must have made a false maneuver when arglist.c first appeared. I'll
make it a link instead, in all 5 shadow directories. Thanks Bram!


Best regards,
Tony.

Tony Mechelynck

unread,
Aug 19, 2019, 5:51:35 PM8/19/19
to Bram Moolenaar, vim_dev
On Mon, Aug 19, 2019 at 8:04 PM Tony Mechelynck
<antoine.m...@gmail.com> wrote:
> That's it!
> src/shadow-big/arglist.c should be a link to ../arglist.c, but it is a
> text file instead, and there get_arglist_name is breacketed between
> "#if defined(FEAT_CMDL_COMPL) || defined(PROTO)" .. "#endif"
>
>
> I must have made a false maneuver when arglist.c first appeared. I'll
> make it a link instead, in all 5 shadow directories. Thanks Bram!
>
>
> Best regards,
> Tony.

Then I got the same error again, but after "touch src/arglist.c" to
make the source "newer" than any of the shadow objects, everything got
right again.


Best regards,
Tony.
Reply all
Reply to author
Forward
0 new messages