Opened 14 months ago

Closed 10 months ago

Last modified 10 months ago

#67062 closed defect (fixed)

tk @8.6.13_0+quartz build fails when tk +x11 is installed

Reported by: murrayE Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc:
Port: tk

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Executing sudo port install tk +quartz gives build error. From log:

:info:build /usr/bin/clang -dynamiclib -O2 -pipe -Os -arch arm64 -pipe  -isystem/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk   -L/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_x11_tk/tk/work/tk8.6.13 -L/opt/local/lib -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -arch arm64 -headerpad_max_install_names -Wl,-search_paths_first  -Wl,-single_module -o libtk8.6.dylib tk3d.o tkArgv.o tkAtom.o tkBind.o tkBitmap.o tkBusy.o tkClipboard.o tkCmds.o tkColor.o tkConfig.o tkConsole.o tkCursor.o tkError.o tkEvent.o tkFocus.o tkFont.o tkGet.o tkGC.o tkGeometry.o tkGrab.o tkGrid.o tkMain.o tkObj.o tkOldConfig.o tkOption.o tkPack.o tkPlace.o tkSelect.o tkStyle.o tkUndo.o tkUtil.o tkVisual.o tkWindow.o tkButton.o tkEntry.o tkFrame.o tkListbox.o tkMenu.o tkMenubutton.o tkMenuDraw.o tkMessage.o tkPanedWindow.o tkScale.o tkScrollbar.o tkCanvas.o tkCanvArc.o tkCanvBmap.o tkCanvImg.o tkCanvLine.o tkCanvPoly.o tkCanvPs.o tkCanvText.o tkCanvUtil.o tkCanvWind.o tkRectOval.o tkTrig.o tkImage.o tkImgBmap.o tkImgGIF.o tkImgPNG.o tkImgPPM.o tkImgPhoto.o tkImgPhInstance.o tkText.o tkTextBTree.o tkTextDisp.o tkTextImage.o tkTextIndex.o tkTextMark.o tkTextTag.o tkTextWind.o tkStubInit.o ttkBlink.o ttkButton.o ttkCache.o ttkClamTheme.o ttkClassicTheme.o ttkDefaultTheme.o ttkElements.o ttkEntry.o ttkFrame.o ttkImage.o ttkInit.o ttkLabel.o ttkLayout.o ttkManager.o ttkNotebook.o ttkPanedwindow.o ttkProgress.o ttkScale.o ttkScrollbar.o ttkScroll.o ttkSeparator.o ttkSquare.o ttkState.o ttkTagSet.o ttkTheme.o ttkTrace.o ttkTrack.o ttkTreeview.o ttkWidget.o ttkStubInit.o tkMacOSXBitmap.o tkMacOSXButton.o tkMacOSXClipboard.o tkMacOSXColor.o tkMacOSXConfig.o tkMacOSXCursor.o tkMacOSXDebug.o tkMacOSXDialog.o tkMacOSXDraw.o tkMacOSXEmbed.o tkMacOSXEntry.o tkMacOSXEvent.o tkMacOSXFileTypes.o tkMacOSXFont.o tkMacOSXHLEvents.o tkMacOSXImage.o tkMacOSXInit.o tkMacOSXKeyboard.o tkMacOSXKeyEvent.o tkMacOSXMenu.o tkMacOSXMenubutton.o tkMacOSXMenus.o tkMacOSXMouseEvent.o tkMacOSXNotify.o tkMacOSXRegion.o tkMacOSXScrlbr.o tkMacOSXSend.o tkMacOSXServices.o tkMacOSXSubwindows.o tkMacOSXWindowEvent.o tkMacOSXWm.o tkMacOSXXStubs.o tkFileFilter.o tkMacWinMenu.o tkPointer.o tkUnix3d.o tkUnixScale.o xcolors.o xdraw.o xgc.o ximage.o xutil.o ttkMacOSXTheme.o   -L/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_x11_tk/tk/work/tk8.6.13 -L/opt/local/lib -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -arch arm64 -headerpad_max_install_names -Wl,-search_paths_first  -lpthread -framework CoreFoundation -framework Cocoa -framework Carbon -framework IOKit -framework QuartzCore -framework UniformTypeIdentifiers    -lz  -lpthread -framework CoreFoundation  -L/opt/local/lib -ltclstub8.6  -compatibility_version 8.6 -current_version 8.6.13 -install_name "/opt/local/lib/libtk8.6.dylib" -unexported_symbols_list $(f=libtk8.6.dylib.E && nm -gp tkMacOSX*.o 2>/dev/null | awk "/^[0-9a-f]+ . \.objc/ {print \$3}" > $f && nm -gjp "/opt/local/lib"/libtclstub8.6.a | grep ^_[^_] >> $f && echo $f) -sectcreate __TEXT __info_plist Tk-Info.plist 
:info:build /usr/bin/clang -O2 -pipe -Os -arch arm64 -pipe  -isystem/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk   -L/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_x11_tk/tk/work/tk8.6.13 -L/opt/local/lib -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -arch arm64 -headerpad_max_install_names -Wl,-search_paths_first  tkAppInit.o -L/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_x11_tk/tk/work/tk8.6.13/unix -ltk8.6 \
:info:build 		-L/opt/local/lib -ltcl8.6  -lpthread -framework CoreFoundation -framework Cocoa -framework Carbon -framework IOKit -framework QuartzCore -framework UniformTypeIdentifiers    -lz  -lpthread -framework CoreFoundation  -sectcreate __TEXT __info_plist Wish-Info.plist -sectcreate __TEXT __credits_html Credits.html  -o wish
:info:build Undefined symbols for architecture arm64:
:info:build   "_TkpExitProc", referenced from:
:info:build       _Tcl_AppInit in tkAppInit.o
:info:build   "_TkpWantsExitProc", referenced from:
:info:build       _Tcl_AppInit in tkAppInit.o
:info:build ld: symbol(s) not found for architecture arm64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)

Attachments (1)

main.log (379.3 KB) - added by murrayE 14 months ago.
main.log

Download all attachments as: .zip

Change History (6)

Changed 14 months ago by murrayE

Attachment: main.log added

main.log

comment:1 Changed 14 months ago by jmroot (Joshua Root)

Keywords: arm64 added; tk removed
Owner: set to MarcusCalhoun-Lopez
Status: newassigned
Summary: Build tk +quartz failstk @8.6.13_0+quartz build fails

comment:2 Changed 13 months ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Keywords: arm64 removed
Summary: tk @8.6.13_0+quartz build failstk @8.6.13_0+quartz build fails when tk +x11 is installed

I see this as well on Monterey on x86_64 if I already have tk installed with the +x11 variant and I do not use trace mode. The solution would be to use trace mode:

sudo port -t install tk +quartz

I guess the problem is that -L flags are in the wrong order: -L/opt/local/lib precedes -L/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_x11_tk/tk/work/tk8.6.13/unix on the link line, thus -ltk8.6 refers to the existing installed copy of libtk8.6.dylib, not the one that was just built.

/usr/bin/clang -O2 -pipe -Os -arch arm64 -pipe  -isystem/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk   -L/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_x11_tk/tk/work/tk8.6.13 -L/opt/local/lib -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -arch arm64 -headerpad_max_install_names -Wl,-search_paths_first  tkAppInit.o -L/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_x11_tk/tk/work/tk8.6.13/unix -ltk8.6 \
            -L/opt/local/lib -ltcl8.6  -lpthread -framework CoreFoundation -framework Cocoa -framework Carbon -framework IOKit -framework QuartzCore -framework UniformTypeIdentifiers    -lz  -lpthread -framework CoreFoundation  -sectcreate __TEXT __info_plist Wish-Info.plist -sectcreate __TEXT __credits_html Credits.html  -o wish

comment:3 in reply to:  2 Changed 13 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to ryandesign:

The solution would be to use trace mode:

...on macOS versions earlier than 13. But trace mode is broken on macOS 13 at the moment so the solution there would be to deactivate your existing tk first:

sudo port -f deactivate tk

comment:4 Changed 10 months ago by jmroot (Joshua Root)

Resolution: fixed
Status: assignedclosed

In e1464a91e21dfe082a239711dd1fb8bc3537f9c1/macports-ports (master):

tk: fix -L flag order issue

Closes: #67062

Note: See TracTickets for help on using tickets.