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 *