On 14-Aug-2023 02:15, Christian Brabandt wrote:
patch 9.0.1704: Cannot use positional arguments for printf()

Commit: 
https://github.com/vim/vim/commit/0c6181fec4c362eb9682d5af583341eb20cb1af5
Author: Christ van Willegen <cvwille...@gmail.com>
Date:   Sun Aug 13 18:03:14 2023 +0200

     patch 9.0.1704: Cannot use positional arguments for printf()
Problem: Cannot use positional arguments for printf()
     Solution: Support positional arguments in string formatting
closes: #12140 Signed-off-by: Christian Brabandt <c...@256bit.org>
     Co-authored-by: Christ van Willegen <cvwille...@gmail.com>


Hi All,

After this patch my HPUX build fails with this linker error:
<snip>
Starting make in the src directory.
If there are problems, cd to the src directory and run make there
    cd src && make first
    cc -c -I. -Iproto -DHAVE_CONFIG_H     -O2       -D_REENTRANT -o objects/strings.o strings.c     cc -c -I. -Iproto -DHAVE_CONFIG_H     -O2       -D_REENTRANT version.c -o objects/version.o
link.sh: The file 'auto/link.sed' exists, which is going to be used now.
link.sh: If linking fails, try deleting the auto/link.sed file.
link.sh: If this fails too, try creating an empty auto/link.sed file.
link.sh: Using auto/link.sed file to omit a few libraries
  cc   -L/usr/local/lib     -o vim objects/alloc.o  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/cindent.o  objects/clientserver.o  objects/clipboard.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/drawline.o  objects/drawscreen.o  objects/edit.o  objects/eval.o  objects/evalbuffer.o  objects/evalfunc.o  objects/evalvars.o  objects/evalwindow.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/filepath.o  objects/findfile.o  objects/float.o  objects/fold.o  objects/getchar.o  objects/gui_xim.o  objects/hardcopy.o  objects/hashtab.o  objects/help.o  objects/highlight.o  objects/if_cscope.o  objects/if_xcmdsrv.o  objects/indent.o  objects/insexpand.o  objects/list.o  objects/locale.o  objects/logfile.o  objects/map.o  objects/mark.o  objects/match.o  objects/mbyte.o  objects/memline.o  objects/menu.o  objects/misc1.o  objects/misc2.o  objects/mouse.o  objects/move.o  objects/normal.o  objects/ops.o  objects/option.o  objects/optionstr.o  objects/os_unix.o  objects/pathdef.o  objects/popupmenu.o  objects/popupwin.o  objects/profiler.o  objects/pty.o  objects/quickfix.o  objects/regexp.o  objects/register.o  objects/screen.o  objects/scriptfile.o  objects/search.o  objects/session.o  objects/sha256.o  objects/sign.o  objects/sound.o  objects/spell.o  objects/spellfile.o  objects/spellsuggest.o  objects/strings.o  objects/syntax.o  objects/tag.o  objects/term.o  objects/terminal.o  objects/testing.o  objects/textformat.o  objects/textobject.o  objects/textprop.o  objects/time.o  objects/typval.o  objects/ui.o  objects/undo.o  objects/usercmd.o  objects/userfunc.o  objects/version.o  objects/vim9class.o  objects/vim9cmds.o  objects/vim9compile.o  objects/vim9execute.o  objects/vim9expr.o  objects/vim9instr.o  objects/vim9script.o  objects/vim9type.o  objects/viminfo.o  objects/window.o  objects/bufwrite.o               objects/charset.o  objects/json.o  objects/main.o  objects/memfile.o  objects/message.o               -lm -ltermlib
/usr/ccs/bin/ld: Unsatisfied symbols:
   va_copy (first referenced in objects/strings.o) (code)
link.sh: Linking failed, making auto/link.sed empty and trying again
creating auto/pathdef.c
    cc -c -I. -Iproto -DHAVE_CONFIG_H     -O2       -D_REENTRANT -o objects/pathdef.o auto/pathdef.c
link.sh: Using unmodified link command
  cc   -L/usr/local/lib     -o vim objects/alloc.o  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/cindent.o  objects/clientserver.o  objects/clipboard.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/drawline.o  objects/drawscreen.o  objects/edit.o  objects/eval.o  objects/evalbuffer.o  objects/evalfunc.o  objects/evalvars.o  objects/evalwindow.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/filepath.o  objects/findfile.o  objects/float.o  objects/fold.o  objects/getchar.o  objects/gui_xim.o  objects/hardcopy.o  objects/hashtab.o  objects/help.o  objects/highlight.o  objects/if_cscope.o  objects/if_xcmdsrv.o  objects/indent.o  objects/insexpand.o  objects/list.o  objects/locale.o  objects/logfile.o  objects/map.o  objects/mark.o  objects/match.o  objects/mbyte.o  objects/memline.o  objects/menu.o  objects/misc1.o  objects/misc2.o  objects/mouse.o  objects/move.o  objects/normal.o  objects/ops.o  objects/option.o  objects/optionstr.o  objects/os_unix.o  objects/pathdef.o  objects/popupmenu.o  objects/popupwin.o  objects/profiler.o  objects/pty.o  objects/quickfix.o  objects/regexp.o  objects/register.o  objects/screen.o  objects/scriptfile.o  objects/search.o  objects/session.o  objects/sha256.o  objects/sign.o  objects/sound.o  objects/spell.o  objects/spellfile.o  objects/spellsuggest.o  objects/strings.o  objects/syntax.o  objects/tag.o  objects/term.o  objects/terminal.o  objects/testing.o  objects/textformat.o  objects/textobject.o  objects/textprop.o  objects/time.o  objects/typval.o  objects/ui.o  objects/undo.o  objects/usercmd.o  objects/userfunc.o  objects/version.o  objects/vim9class.o  objects/vim9cmds.o  objects/vim9compile.o  objects/vim9execute.o  objects/vim9expr.o  objects/vim9instr.o  objects/vim9script.o  objects/vim9type.o  objects/viminfo.o  objects/window.o  objects/bufwrite.o               objects/charset.o  objects/json.o  objects/main.o  objects/memfile.o  objects/message.o               -lm -ltermlib -lelf
/usr/ccs/bin/ld: Unsatisfied symbols:
   va_copy (first referenced in objects/strings.o) (code)
link.sh: Linking doesn't work at all, removing auto/link.sed
*** Error exit code 1

Stop.
*** Error exit code 1
</snip>

The attached patch seems to fix it.
Cheers
John

--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/d9f15bbd-26ff-753d-0adf-73fb5ee9d646%40internode.on.net.
--- strings.c.orig      2023-08-14 05:53:04.354544600 +1000
+++ strings.c   2023-08-16 05:26:50.169514700 +1000
@@ -15,6 +15,14 @@
 #include "vim.h"
 
 /*
+ * va_copy is the 'correct' way to copy a va_list but HP-UX doesn't have it.
+ * stolen from https://bytes.com/topic/c/answers/215169-va_copy-implementation
+ */
+#ifndef va_copy
+#define va_copy(dst, src) ((void)((dst) = (src)))
+#endif
+
+/*
  * Copy "string" into newly allocated memory.
  */
     char_u *

Raspunde prin e-mail lui