Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 May 2019 17:15:34 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        ports-list freebsd <freebsd-ports@freebsd.org>, tcberner@freebsd.org
Subject:   Re: FYI: Unable to build -r501994 ports' devel/qt5-core on clang 8 based powerpc64 system: "Q_ATOMIC_INT64_IS_SUPPORTED must be defined on a 64-bit platform"
Message-ID:  <3CD3FC58-C0FB-4E5A-9FE8-6A64D8E7BA82@yahoo.com>
In-Reply-To: <3B8E25C1-1EB4-4D18-A45F-72555C3AC13D@yahoo.com>
References:  <2E1BCA58-8420-4B74-A0CB-FBDC744BDDA6@yahoo.com> <3B8E25C1-1EB4-4D18-A45F-72555C3AC13D@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help


On 2019-May-21, at 16:20, Mark Millard <marklmi at yahoo.com> wrote:

> I'm top posting because the problem originally reported seems to be
> a later consequence of a much earlier problem. Looking in the logs
> showed lots of use of -I%%LOCALBASE%%/lib/gcc8/include/c++ and looking =
in:
>=20
> =
/wrkdirs/usr/ports/devel/qt5-core/work/qtbase-everywhere-src-5.12.2/mkspec=
s/freebsd-g++/qmake.conf
>=20
> shows:
>=20
> EXTRA_INCLUDEPATH       +=3D /usr/local/lib/gcc8/include =
%%LOCALBASE%%/lib/gcc8/include/c++
>=20
>=20
> That seems to drive from the qmake.conf.bak:
>=20
> EXTRA_INCLUDEPATH       +=3D /usr/local/lib/gcc%%GCC_DEFAULT%%/include =
%%LOCALBASE%%/lib/gcc%%GCC_DEFAULT%%/include/c++
>=20
> So %%GCC_DEFAULT%% managed to be replaced corrctly.
>=20
> Notably qmake.conf.orig does not have the line at all:
>=20
> #
> # qmake configuration for freebsd-g++
> #
>=20
> MAKEFILE_GENERATOR      =3D UNIX
> QMAKE_PLATFORM          =3D freebsd
>=20
> include(../common/bsd/bsd.conf)
>=20
> # Addon software goes into /usr/local on FreeBSD, by default we will =
look there
> QMAKE_INCDIR_POST       =3D /usr/local/include
> QMAKE_LIBDIR_POST       =3D /usr/local/lib
>=20
> include(../common/gcc-base-unix.conf)
> include(../common/g++-unix.conf)
> load(qt_config)
>=20
>=20
>=20
> /usr/ports/Mk/Uses/qt-dist.mk has:
>=20
> post-patch: gcc-post-patch
> gcc-post-patch:
>        ${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' \
>                ${WRKSRC}/mkspecs/common/gcc-base.conf \
>                ${WRKSRC}/mkspecs/freebsd-g++/qmake.conf
>        ${REINPLACE_CMD} 's|%%GCC_DEFAULT%%|${GCC_DEFAULT}|g' \
>                ${WRKSRC}/mkspecs/common/gcc-base.conf \
>                ${WRKSRC}/mkspecs/common/g++-base.conf \
>                ${WRKSRC}/mkspecs/common/bsd/bsd.conf \
>                ${WRKSRC}/mkspecs/freebsd-g++/qmake.conf
>=20
> and:
>=20
> post-patch: qtbase-post-patch
> qtbase-post-patch:
>        ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
>                ${WRKSRC}/mkspecs/common/bsd/bsd.conf \
>                ${WRKSRC}/mkspecs/freebsd-clang/qmake.conf
>=20
>=20
> My guess here is that back in gcc-post-patch:
>=20
> gcc-post-patch:
>        ${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' \
>                ${WRKSRC}/mkspecs/common/gcc-base.conf \
>                ${WRKSRC}/mkspecs/freebsd-g++/qmake.conf
> . . .
>=20
> it needs -e and a g in order to do more than one substitution:

Actually the -e would be optional and appears to not be
needed in qtbase-post-patch as well --or could be added
to the %%GCC_DEFAULT%% replacement.

The "g" is the important part.

> gcc-post-patch:
>        ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
>                ${WRKSRC}/mkspecs/common/gcc-base.conf \
>                ${WRKSRC}/mkspecs/freebsd-g++/qmake.conf
> . . .
>=20
> On 2019-May-19, at 07:40, Mark Millard <marklmi at yahoo.com> wrote:
>=20
>> This was in a poudriere bulk build on a head -r347549 based powerpc64
>> system with system clang 8 for cc and c++ and base/binutils
>> for the likes of ld. But the build of qt5-core uses g++8.
>>=20
>> The log shows:
>>=20
>> --- .obj/qatomic.o ---
>> g++8 -c -O2 -pipe -g -fstack-protector-strong =
-Wl,-rpath=3D/usr/local/lib/gcc8 -Wl,-rpath=3D/usr/local/lib/gcc8 -Og =
-std=3Dc++1z -fvisibility=3Dhidden -fvisibility-inlines-hidden -Wall -W =
-pthread -fPIC -DQT_GLIB -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH =
-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_CORE_LIB =
-DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS =
-DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS =
-DQT_DISABLE_DEPRECATED_BEFORE=3D0x050000 -D_LARGEFILE64_SOURCE =
-D_LARGEFILE_SOURCE -I. -Iglobal -I../3rdparty/harfbuzz/src =
-I../3rdparty/md5 -I../3rdparty/md4 -I../3rdparty/sha3 -I../3rdparty =
-I../3rdparty/double-conversion/include =
-I../3rdparty/double-conversion/include/double-conversion =
-I../3rdparty/forkfd -I../3rdparty/tinycbor/src -I../../include =
-I../../include/QtCore -I../../include/QtCore/5.12.2 =
-I../../include/QtCore/5.12.2/QtCore -I.moc -I.tracegen -isystem =
/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include =
-I/usr/local/lib/gcc8/include -I%%LOCALBASE%%/lib/gcc8/include/c++ =
-isystem /usr/local/include -I/usr/local/lib/qt5/mkspecs/freebsd-g++ -o =
.obj/qatomic.o thread/qatomic.cpp
>> thread/qatomic.cpp:1624:4: error: #error "Q_ATOMIC_INT64_IS_SUPPORTED =
must be defined on a 64-bit platform"
>> #  error "Q_ATOMIC_INT64_IS_SUPPORTED must be defined on a 64-bit =
platform"
>>   ^~~~~
>> In file included from ../../include/QtCore/qglobal.h:1,
>>                from thread/qatomic.h:41,
>>                from thread/qatomic.cpp:41:
>> ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h: In =
instantiation of 'class QBasicAtomicInteger<long int>':
>> ../../include/QtCore/../../src/corelib/thread/qatomic.h:55:7:   =
required from 'class QAtomicInteger<long int>'
>> thread/qatomic.cpp:1631:1:   required from here
>> ../../include/QtCore/../../src/corelib/global/qglobal.h:121:63: =
error: static assertion failed: template parameter is an integral of a =
size not supported on this platform
>> #  define Q_STATIC_ASSERT_X(Condition, Message) =
static_assert(bool(Condition), Message)
>>                                                              =
^~~~~~~~~~~~~~~
>> ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:97:5: =
note: in expansion of macro 'Q_STATIC_ASSERT_X'
>>    Q_STATIC_ASSERT_X(QAtomicOpsSupport<sizeof(T)>::IsSupported, =
"template parameter is an integral of a size not supported on this =
platform");
>>    ^~~~~~~~~~~~~~~~~
>> ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h: In =
instantiation of 'class QBasicAtomicInteger<long unsigned int>':
>> ../../include/QtCore/../../src/corelib/thread/qatomic.h:55:7:   =
required from 'class QAtomicInteger<long unsigned int>'
>> thread/qatomic.cpp:1632:1:   required from here
>> ../../include/QtCore/../../src/corelib/global/qglobal.h:121:63: =
error: static assertion failed: template parameter is an integral of a =
size not supported on this platform
>> #  define Q_STATIC_ASSERT_X(Condition, Message) =
static_assert(bool(Condition), Message)
>>                                                              =
^~~~~~~~~~~~~~~
>> ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:97:5: =
note: in expansion of macro 'Q_STATIC_ASSERT_X'
>>    Q_STATIC_ASSERT_X(QAtomicOpsSupport<sizeof(T)>::IsSupported, =
"template parameter is an integral of a size not supported on this =
platform");
>>    ^~~~~~~~~~~~~~~~~
>> ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h: In =
instantiation of 'class QBasicAtomicInteger<long long unsigned int>':
>> ../../include/QtCore/../../src/corelib/thread/qatomic.h:55:7:   =
required from 'class QAtomicInteger<long long unsigned int>'
>> thread/qatomic.cpp:1633:1:   required from here
>> ../../include/QtCore/../../src/corelib/global/qglobal.h:121:63: =
error: static assertion failed: template parameter is an integral of a =
size not supported on this platform
>> #  define Q_STATIC_ASSERT_X(Condition, Message) =
static_assert(bool(Condition), Message)
>>                                                              =
^~~~~~~~~~~~~~~
>> ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:97:5: =
note: in expansion of macro 'Q_STATIC_ASSERT_X'
>>    Q_STATIC_ASSERT_X(QAtomicOpsSupport<sizeof(T)>::IsSupported, =
"template parameter is an integral of a size not supported on this =
platform");
>>    ^~~~~~~~~~~~~~~~~
>> ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h: In =
instantiation of 'class QBasicAtomicInteger<long long int>':
>> ../../include/QtCore/../../src/corelib/thread/qatomic.h:55:7:   =
required from 'class QAtomicInteger<long long int>'
>> thread/qatomic.cpp:1634:1:   required from here
>> ../../include/QtCore/../../src/corelib/global/qglobal.h:121:63: =
error: static assertion failed: template parameter is an integral of a =
size not supported on this platform
>> #  define Q_STATIC_ASSERT_X(Condition, Message) =
static_assert(bool(Condition), Message)
>>                                                              =
^~~~~~~~~~~~~~~
>> ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:97:5: =
note: in expansion of macro 'Q_STATIC_ASSERT_X'
>>    Q_STATIC_ASSERT_X(QAtomicOpsSupport<sizeof(T)>::IsSupported, =
"template parameter is an integral of a size not supported on this =
platform");
>>    ^~~~~~~~~~~~~~~~~
>> *** [.obj/qatomic.o] Error code 1
>>=20
>> make[1]: stopped in =
/wrkdirs/usr/ports/devel/qt5-core/work/qtbase-everywhere-src-5.12.2/src/co=
relib
>> 1 error
>>=20
>> make[1]: stopped in =
/wrkdirs/usr/ports/devel/qt5-core/work/qtbase-everywhere-src-5.12.2/src/co=
relib
>> *** Error code 2
>>=20
>> Stop.
>> make: stopped in /usr/ports/devel/qt5-core
>> =3D>> Cleaning up wrkdir
>> =3D=3D=3D>  Cleaning for qt5-core-5.12.2_1
>> build of devel/qt5-core | qt5-core-5.12.2_1 ended at Sun May 19 =
02:49:31 PDT 2019
>> build time: 00:26:21
>> !!! build failure encountered !!!
>>=20
>>=20
>> For reference:
>>=20
>> Configure summary:
>>=20
>> Build type: freebsd-g++ (power64, CPU features: <none>)
>> Compiler: unknown (gcc8)
>> Configuration: compile_examples largefile optimize_debug shared rpath =
debug c++11 c++14 c++1z concurrent no-gui reduce_exports release_tools =
separate_debug_info stl no-widgets
>> Build options:
>> Mode ................................... debug; optimized tools
>> Optimize debug build ................... yes
>> Building shared libraries .............. yes
>> Using C standard ....................... C11
>> Using C++ standard ..................... C++1z
>> Using ccache ........................... no
>> Using gold linker ...................... no
>> Using precompiled headers .............. no
>> Using LTCG ............................. no
>> Target compiler supports:
>> Build parts ............................ libs tools
>> Qt modules and options:
>> Qt Concurrent .......................... yes
>> Qt D-Bus ............................... no
>> Qt D-Bus directly linked to libdbus .... no
>> Qt Gui ................................. no
>> Qt Network ............................. yes
>> Qt Sql ................................. yes
>> Qt Testlib ............................. yes
>> Qt Widgets ............................. no
>> Qt Xml ................................. yes
>> Support enabled for:
>> Using pkg-config ....................... yes
>> udev ................................... no
>> Using system zlib ...................... yes
>> Qt Core:
>> DoubleConversion ....................... yes
>>   Using system DoubleConversion ........ no
>> GLib ................................... yes
>> iconv .................................. no
>> ICU .................................... yes
>> Tracing backend ........................ <none>
>> Logging backends:
>>   journald ............................. no
>>   syslog ............................... no
>>   slog2 ................................ no
>> Using system PCRE2 ..................... yes
>> Qt Network:
>> getifaddrs() ........................... yes
>> IPv6 ifname ............................ yes
>> libproxy ............................... no
>> OpenSSL ................................ no
>>   Qt directly linked to OpenSSL ........ no
>> OpenSSL 1.1 ............................ no
>> DTLS ................................... no
>> SCTP ................................... no
>> Use system proxies ..................... yes
>> Qt Gui:
>> Accessibility .......................... no
>> FreeType ............................... no
>>   Using system FreeType ................ no
>> HarfBuzz ............................... no
>>   Using system HarfBuzz ................ no
>> Fontconfig ............................. no
>> Image formats:
>>   GIF .................................. no
>>   ICO .................................. yes
>>   JPEG ................................. no
>>     Using system libjpeg ............... no
>>   PNG .................................. no
>>     Using system libpng ................ no
>> EGL .................................... no
>> OpenVG ................................. no
>> OpenGL:
>>   Desktop OpenGL ....................... no
>>   OpenGL ES 2.0 ........................ no
>>   OpenGL ES 3.0 ........................ no
>>   OpenGL ES 3.1 ........................ no
>>   OpenGL ES 3.2 ........................ no
>> Vulkan ................................. no
>> Session Management ..................... yes
>> Features used by QPA backends:
>> evdev .................................. no
>> libinput ............................... no
>> INTEGRITY HID .......................... no
>> mtdev .................................. no
>> tslib .................................. no
>> xkbcommon .............................. no
>> X11 specific:
>>   XLib ................................. no
>>   XCB Xlib ............................. no
>>   EGL on X11 ........................... no
>> QPA backends:
>> DirectFB ............................... no
>> EGLFS .................................. no
>> LinuxFB ................................ no
>> VNC .................................... yes
>> Mir client ............................. no
>> Qt Sql:
>> SQL item models ........................ yes
>> Qt Widgets:
>> GTK+ ................................... no
>> Styles ................................. Fusion Windows
>> Qt PrintSupport:
>> CUPS ................................... no
>> Qt Sql Drivers:
>> DB2 (IBM) .............................. no
>> InterBase .............................. no
>> MySql .................................. no
>> OCI (Oracle) ........................... no
>> ODBC ................................... no
>> PostgreSQL ............................. no
>> SQLite2 ................................ no
>> SQLite ................................. yes
>>   Using system provided SQLite ......... no
>> TDS (Sybase) ........................... no
>> Qt Testlib:
>> Tester for item models ................. yes
>>=20
>> WARNING: Feature xkb is insignificant in this configuration, ignoring =
related command line option(s).
>>=20
>> WARNING: Accessibility disabled. This configuration of Qt is =
unsupported.
>>=20
>>=20
>>=20
>> # svnlite diff /usr/ports/devel/qt5-core/ | more
>> #
>>=20
>> (So no differences.)




=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3CD3FC58-C0FB-4E5A-9FE8-6A64D8E7BA82>