git: ff46b0fb8d1d - main - x11-toolkits/wxgtk30: fix build with lld 17

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Thu, 09 Nov 2023 19:32:50 UTC
The branch main has been updated by dim:

URL: https://cgit.FreeBSD.org/ports/commit/?id=ff46b0fb8d1d41ebdec82818d6d12327edb5374b

commit ff46b0fb8d1d41ebdec82818d6d12327edb5374b
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-11-09 19:24:08 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-11-09 19:31:58 +0000

    x11-toolkits/wxgtk30: fix build with lld 17
    
    Building x11-toolkits/wxgtk30 with lld 17 results in the following link
    errors:
    
      ld: error: version script assignment of 'WXU_3.0.5' to symbol 'wxSVGFileDCImpl::DoDrawPolyPolygon(int, int const*, wxPoint const*, int, int, wxPolygonFillMode)' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.5' to symbol 'wxSVGFileDCImpl::SetAxisOrientation(bool, bool)' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.5' to symbol 'wxSVGFileDCImpl::SetDeviceOrigin(int, int)' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.5' to symbol 'wxSVGFileDCImpl::SetLogicalOrigin(int, int)' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.5' to symbol 'wxWindow::GetContentScaleFactor() const' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.4' to symbol 'wxDirButton::DoApplyWidgetStyle(_GtkRcStyle*)' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.4' to symbol 'wxFileButton::DoApplyWidgetStyle(_GtkRcStyle*)' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.4' to symbol 'wxRibbonPage::ShowScrollButtons1()' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.4' to symbol 'wxWindow::GTKApplyCssStyle(char const*)' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.3' to symbol 'wxDataViewRenderer::FinishEditing()' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.3' to symbol 'wxFloatProperty::DoGetAttribute(wxString const&) const' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.2' to symbol 'wxGenericListCtrl::EndEditLabel(bool)' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.1' to symbol 'wxDataViewListCtrl::ClearColumns()' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.1' to symbol 'wxDataViewListStore::ClearColumns()' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.1' to symbol 'wxInfoBarGeneric::SetForegroundColour(wxColour const&)' failed: symbol not defined
      ld: error: version script assignment of 'WXU_3.0.1' to symbol 'wxTDIChildFrame::DoMoveWindow(int, int, int, int)' failed: symbol not defined
    
    Add -Wl,--undefined-version to LDFLAGS to suppress these errors, since
    wxWidgets reuses the same linker version script for all its shared
    libraries.
    
    PR:             273753
    Approved by:    blanket (desktop)
    MFH:            2023Q4
---
 x11-toolkits/wxgtk30/Makefile | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/x11-toolkits/wxgtk30/Makefile b/x11-toolkits/wxgtk30/Makefile
index f75b0a1116c6..ebe1594f3670 100644
--- a/x11-toolkits/wxgtk30/Makefile
+++ b/x11-toolkits/wxgtk30/Makefile
@@ -102,6 +102,11 @@ CONFIGURE_ARGS+=--disable-tls
 CONFIGURE_ARGS+=--disable-precomp-headers
 .endif
 
+# wxWidgets uses the same linker version script for all its shared libraries, so
+# some symbols are expectedly undefined. Suppress errors with lld >= 17 due to
+# these undefined symbols.
+LDFLAGS+=	-Wl,--undefined-version
+
 post-build-NLS-on:
 	@${DO_MAKE_BUILD} allmo -C ${BUILD_WRKSRC}/locale