aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias C. Berner <tcberner@FreeBSD.org>2017-06-12 17:29:04 +0000
committerTobias C. Berner <tcberner@FreeBSD.org>2017-06-12 17:29:04 +0000
commit89c91a12ed13c5c8767f1780ef99d72065417ba9 (patch)
tree0e700e383dbc39fb7439a3367be8c833a70d11da
parent3cabfa983e1a96e19bba3a202bb80dee980a4689 (diff)
downloadports-89c91a12ed13c5c8767f1780ef99d72065417ba9.tar.gz
ports-89c91a12ed13c5c8767f1780ef99d72065417ba9.zip
MFH: r442460
Do not use gold linker for Qt5 ports. gold linker from binutils 2.28 may produce duplicate library symbols, which makes shared libraries created with it not usable with conventional ld linker. PR: 218187 Submitted by: amdmi3 Approved by: ports-secteam (miwi)
Notes
Notes: svn path=/branches/2017Q2/; revision=443455
-rw-r--r--Mk/bsd.qt.mk4
-rw-r--r--UPDATING21
-rw-r--r--devel/qt5-core/Makefile1
-rw-r--r--devel/qt5-qmake/Makefile2
4 files changed, 26 insertions, 2 deletions
diff --git a/Mk/bsd.qt.mk b/Mk/bsd.qt.mk
index 60e5b0ec6b5a..f1b2e2f44b0e 100644
--- a/Mk/bsd.qt.mk
+++ b/Mk/bsd.qt.mk
@@ -147,7 +147,9 @@ CONFIGURE_ARGS+=-nomake examples -nomake tests \
. if ${ARCH} == i386 && empty(MACHINE_CPU:Msse2)
CONFIGURE_ARGS+=-no-sse2
. endif
-
+# Work around a bug in current binutils, where the gold linker creates
+# duplicate symbols. See pr 218187. Disable the gold-linker for Qt5 ports.
+CONFIGURE_ARGS+= -no-use-gold-linker
. endif
. if defined(WANT_QT_DEBUG) || defined(WITH_DEBUG)
diff --git a/UPDATING b/UPDATING
index 8fa88f0fce6f..ebe15fa7db4e 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,27 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.
+20170602:
+ AFFECTS: users of Qt 5 in presence of binutils
+ AUTHOR: amdmi3@FreeBSD.org
+
+ gold linker from binutils 2.28 may produce duplicate library
+ symbols, which makes shared libraries created with it not usable
+ with conventional ld linker.
+
+ This affects Qt, as qt5-qmake will detect gold and use it to build
+ Qt libraries. Broken libQt5Core will be produced and ports which
+ depend on it will then fail to link with the following errors:
+
+ ...lib/libQt5Core.so:(.dynamic+0x27ac8): multiple definition of `__bss_start at Qt_5'
+ ...lib/libQt5Core.so:(.dynamic+0x27ac8): first defined here
+ ...lib/libQt5Core.so:(.dynamic+0x27ac8): multiple definition of `_edata at Qt_5'
+ ...lib/libQt5Core.so:(.dynamic+0x27ac8): first defined here
+ ...lib/libQt5Core.so:(.dynamic+0x2b2d0): multiple definition of `_end at Qt_5'
+
+ Qt5 was fixed to ignore gold. If you see these errors, you
+ need to rebuild qt5-qmake, then all qt5-* ports.
+
20170411:
AFFECTS: www/firefox
AUTHOR: gecko@FreeBSD.org
diff --git a/devel/qt5-core/Makefile b/devel/qt5-core/Makefile
index d20c921df4b6..a75d4394b943 100644
--- a/devel/qt5-core/Makefile
+++ b/devel/qt5-core/Makefile
@@ -2,6 +2,7 @@
PORTNAME= core
DISTVERSION= ${QT5_VERSION}
+PORTREVISION= 1
CATEGORIES= devel
PKGNAMEPREFIX= qt5-
diff --git a/devel/qt5-qmake/Makefile b/devel/qt5-qmake/Makefile
index 6a2e73aa3d31..a65004ffa371 100644
--- a/devel/qt5-qmake/Makefile
+++ b/devel/qt5-qmake/Makefile
@@ -2,7 +2,7 @@
PORTNAME= qmake
DISTVERSION= ${QT5_VERSION}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= devel
PKGNAMEPREFIX= qt5-