Bug 2222671

Summary: vim-9.0.1671-1.fc39 FTBFS: in function `DictionaryUpdate.lto_priv.0': /usr/include/python3.12/object.h:215: undefined reference to `PyLong_Type'
Product: [Fedora] Fedora Reporter: Petr Pisar <ppisar>
Component: vimAssignee: Karsten <karsten>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: gchamoul, jplesnik, karsten, zdohnal
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://koschei.fedoraproject.org/package/vim
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-07-14 11:53:39 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2168842    

Description Petr Pisar 2023-07-13 12:39:42 UTC
vim-9.0.1671-1.fc39 fails to build in Fedora 39:

link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -Wl,--enable-new-dtags -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1   -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes  -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/gui.o objects/gui_gtk.o objects/gui_gtk_x11.o objects/gui_gtk_f.o objects/gui_beval.o objects/gui_gtk_gresources.o objects/vterm_encoding.o objects/vterm_keyboard.o objects/vterm_mouse.o objects/vterm_parser.o objects/vterm_pen.o objects/vterm_screen.o objects/vterm_state.o objects/vterm_unicode.o objects/vterm_vterm.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o  objects/if_ruby.o  objects/netbeans.o objects/job.o objects/channel.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   -lgtk-3 -lgdk-3 -lz -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lglib-2.0 -lgobject-2.0 -lSM -lICE -lXpm -lXt -lX11 -lSM -lICE  -lm  -lselinux  -lncurses -lcanberra -lsodium -lacl -lattr -lgpm   -Wl,--enable-new-dtags -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1  -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib64/perl5/CORE -lperl -lpthread -lresolv -ldl -lm -lcrypt -lutil -lc        
/usr/bin/ld: /tmp/ccW7snOJ.ltrans64.ltrans.o: warning: relocation against `PyLong_Type' in read-only section `.text'
/usr/bin/ld: /tmp/ccW7snOJ.ltrans64.ltrans.o: in function `DictionaryUpdate.lto_priv.0':
/usr/include/python3.12/object.h:215: undefined reference to `PyLong_Type'
/usr/bin/ld: /usr/include/python3.12/object.h:216: undefined reference to `PyBool_Type'
/usr/bin/ld: /usr/include/python3.12/object.h:216: undefined reference to `PyBool_Type'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
link.sh: Linking failed

A difference between passing and failing build root is at <https://koschei.fedoraproject.org/build/15779921>. This is probably triggered by upgrading python-devel from 3.11.4-1.fc39 to 3.12.0~b3-2.fc39.

Please note that after rabasing perl from 5.36.1 to 5.38.0, additional failures piled up:

/usr/bin/ld: /tmp/ccHaAevn.ltrans63.ltrans.o: in function `ex_perl':
/builddir/build/BUILD/vim90/src/if_perl.xs:745: undefined reference to `Perl_SvGETMAGIC'
/usr/bin/ld: /builddir/build/BUILD/vim90/src/if_perl.xs:1108: undefined reference to `Perl_SvPV_helper'
/usr/bin/ld: /builddir/build/BUILD/vim90/src/if_perl.xs:724: undefined reference to `Perl_SvPVXtrue'
/usr/bin/ld: /tmp/ccHaAevn.ltrans63.ltrans.o: in function `perl_to_vim.lto_priv.0':
/builddir/build/BUILD/vim90/src/if_perl.xs:1210: undefined reference to `Perl_SvPV_helper'
/usr/bin/ld: /builddir/build/BUILD/vim90/src/if_perl.xs:1323: undefined reference to `Perl_SvPV_helper'
/usr/bin/ld: /builddir/build/BUILD/vim90/src/if_perl.xs:1199: undefined reference to `Perl_SvNV'
/usr/bin/ld: /builddir/build/BUILD/vim90/src/if_perl.xs:1203: undefined reference to `Perl_SvIV'

Comment 1 Zdenek Dohnal 2023-07-13 13:58:23 UTC
Hi Petr,

thank you for filing the bug!

I have presented Python fix upstream https://github.com/vim/vim/pull/12660 and Perl fix is there as well - https://github.com/vim/vim/pull/12575 .

I'll apply the fixes downstream for now.

Comment 2 Zdenek Dohnal 2023-07-13 14:56:14 UTC
Built for rawhide https://koji.fedoraproject.org/koji/buildinfo?buildID=2232219

Comment 3 Petr Pisar 2023-07-13 15:25:46 UTC
Thanks. Some Bodhi tests are expected to fail and will need waiving:

fedora-ci.koji-build./plans/public.functional failure is a bug in Fedora CI <https://pagure.io/fedora-ci/general/issue/419>.
fedora-ci.koji-build.rpminspect.static-analysis	crash is probably a new bug in rpminspect tool.

Comment 4 Zdenek Dohnal 2023-07-14 11:53:39 UTC
The fixed build got into rawhide https://bodhi.fedoraproject.org/updates/FEDORA-2023-353bcf9f68 .