Bug 206348 - x11-toolkits/qt5-gui : clang++ used with -mcpu=cortex-a7 results in: undefined reference to qt_convert_rgb888_to_rgb32_neon( . . . ) and more
Summary: x11-toolkits/qt5-gui : clang++ used with -mcpu=cortex-a7 results in: undefine...
Status: Closed DUPLICATE of bug 216816
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: arm Any
: --- Affects Only Me
Assignee: freebsd-kde (group)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-01-17 22:44 UTC by Mark Millard
Modified: 2017-09-06 05:02 UTC (History)
5 users (show)

See Also:
tcberner: maintainer-feedback+


Attachments
Build's output of qt5-gui (13.87 KB, text/plain)
2017-06-04 14:00 UTC, Mikhail T.
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Millard 2016-01-17 22:44:50 UTC
For clang++ used with

-target armv6--freebsd11.0-gnueabi -march=armv7-a -mcpu=cortex-a7 -mfloat-abi=softfp

the eventual result of "portmaster -DK x11-toolkits/qt5-gui" is:

undefined reference to `qt_convert_rgb888_to_rgb32_neon(unsigned int*, unsigned char const*, int)'

Details follow. First the message generated during the attempted portmaster -DK :

--- ../../../../plugins/imageformats/libqjpeg.so ---
rm -f libqjpeg.so
/usr/bin/clang++ -target armv6--freebsd11.0-gnueabi -march=armv7-a -mcpu=cortex-a7 -mfloat-abi=softfp -mno-unaligned-access -Wl,--no-undefined -pthread -shared -o libqjpeg.so .obj/qjpeghandler.o  .obj/main.o  .obj/moc_main.o  -L/usr/obj/portswork/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.4.1/lib -L/usr/local/lib -ljpeg -lQt5Gui -lQt5Core -lGL 
.obj/qjpeghandler.o: In function `QJpegHandler::QJpegHandler()':
/usr/obj/portswork/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.4.1/src/plugins/imageformats/jpeg/../../../gui/image/qjpeghandler.cpp:1024: undefined reference to `qt_convert_rgb888_to_rgb32_neon(unsigned int*, unsigned char const*, int)'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
*** [../../../../plugins/imageformats/libqjpeg.so] Error code 1

make[2]: stopped in /usr/obj/portswork/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.4.1/src/plugins/imageformats/jpeg
1 error
. . .

That reference to the routine is compiled in because. . .

/usr/obj/portswork/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.4.1/src/plugins/imageformats/jpeg/../../../gui/image/qjpeghandler.cpp has:

Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_neon(quint32 *dst, const uchar *src, int len);
. . .
QJpegHandler::QJpegHandler()
    : d(new QJpegHandlerPrivate(this))
{
#if defined(__ARM_NEON__) && !defined(Q_PROCESSOR_ARM_64)
    // from qimage_neon.cpp

    if (qCpuHasFeature(NEON))
        rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_neon;
#endif
. . .

and. . .

/usr/obj/portswork/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.4.1/src/corelib/tools/qsimd_p.h has:

static const uint qCompilerCpuFeatures = 0
. . .
#if defined __ARM_NEON__
        | NEON
#endif
. . .
#define qCpuHasFeature(feature)  ((qCompilerCpuFeatures & (feature)) || (qCpuFeatures() & (feature)))

So qCpuHasFeature(NEON) also is doing auto-detection of NEON.

(The above is not the necessarily the only code to do such automatic detections.)

But the infrastructure that decides if it is going to compile the file that defines qt_covert_rgb888_to_rgb32_neon does not do automatic detection. In fact no command line option can enable such compilation: a file such as qtbase-opensource-src-5.4.1/configure has to be edited.

In other words: /usr/obj/portswork/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.4.1/configure has no way to add neon to QMAKE_CONFIG as things are: See below for the properties that CFG_CPUFEATURES is never modified after being initialized. Nor is CFG_NEON. So the only 'QMAKE_CONFIG="$QMAKE_CONFIG neon"' never happens as is.

QMAKE_CONFIG=
. . .
CFG_CPUFEATURES=

. . .
CFG_NEON=auto
. . .
# check Neon support
if [ "$CFG_NEON" = "auto" ]; then
    # no compile test, just check what the compiler has
    case "$CFG_CPUFEATURES" in
        *neon*)
            CFG_NEON=yes
            ;;
        *)
            CFG_NEON=no
            ;;
    esac
fi
. . .
[ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
. . .
elif [ "$CFG_ARCH" = "arm" ]; then
    echo "    Neon ................. ${CFG_NEON}"

There is even this note from 5.3.0:

/usr/obj/portswork/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.4.1/dist/changes-5.3.0, says:

   * [QTBUG-30440] Qt no longer checks for support for the Neon FPU on
     ARM platforms at runtime. Code optimized for Neon must be enabled
     unconditionally at compile time by ensuring the compiler supports
     Neon.  You may need to edit your mkspec for that.

Note the "edit your mkspec" part of that wording.

I'll report that

-target armv6--freebsd11.0-gnueabi -march=armv7-a -mcpu=cortex-a7 -mfloat-abi=softfp

is appropriate to a rpi2 (as one example). It is not an arbitrary combination.
Comment 1 Mark Millard 2016-01-18 01:00:41 UTC
I forgot to report the svnlite info:

# svnlite info /usr/ports/print/qt5-printsupport
Path: print/qt5-printsupport
Working Copy Root Path: /usr/ports
URL: svn://svn.freebsd.org/ports/head/print/qt5-printsupport
Relative URL: ^/head/print/qt5-printsupport
Repository Root: svn://svn.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 406513
Node Kind: directory
Schedule: normal
Last Changed Author: rakuco
Last Changed Rev: 406271
Last Changed Date: 2016-01-16 12:13:10 -0800 (Sat, 16 Jan 2016)
Comment 2 Tobias C. Berner freebsd_committer freebsd_triage 2016-10-13 13:50:11 UTC
Hi

Can you still reproduce this issue?


mfg Tobias
Comment 3 Mark Millard 2016-10-13 19:15:37 UTC
(In reply to Tobias C. Berner from comment #2)

I'm attempting a x11-toolkits/qt5-gui build but it is causing builds of 126 ports, llvm37 included. (None of these were installed at the start for this attempt.)

On the rpi2 this is going to take a while even if the rest of the ports involved build without problems.

-mfloat-abi=soft is no longer involved.

I'm omitting -march=armv7-a and using only -mcpu=cortext-a7 for that aspect. (Some non-clang compliers consider the two a conflict and reject the combination.)

I'm building from a stable/11 system vintage:

$ uname -apKU
FreeBSD rpi2 11.0-PRERELEASE FreeBSD 11.0-PRERELEASE #6 r306344M: Mon Sep 26 12:08:55 PDT 2016     markmi@FreeBSDx64:/usr/obj/clang/arm.armv6/usr/src/sys/RPI2-NODBG  arm armv6 1100503 1100503

I updated my /usr/ports first:

$ svnlite info /usr/ports/ | grep "Re[lv]"
Relative URL: ^/head
Revision: 423928
Last Changed Rev: 423928
Comment 4 Mark Millard 2016-10-14 08:43:10 UTC
(In reply to Tobias C. Berner from comment #2)

My attempt to build a modern x11-toolkits/qt5-gui still reproduces the notice about convert_RGB888_to_RGB32_neon being missing (see image/qimage_conversions.cpp:2968's error notice below), as well as producing other notices for undefined references:

Script started on Thu Oct 13 11:45:52 2016
Command: portmaster -DK x11-toolkits/qt5-gui
[. . . over 100 ports first then qt5-gui up to its .so link attempt. . .]

--- ../../lib/libQt5Gui.so.5.6.1 ---
rm -f libQt5Gui.so.5.6.1 libQt5Gui.so libQt5Gui.so.5 libQt5Gui.so.5.6
c++ -Wl,--as-needed -Wl,--no-undefined -Wl,--version-script,QtGui.version -fuse-ld=gold -Wl,--enable-new-dtags -pthread -Wl,-rpath,/usr/local/lib -shared -Wl,-soname,libQt5Gui.so.5 -o libQt5Gui.so.5.6
.1 .obj/qaccessible.o  .obj/qaccessiblecache.o  .obj/qaccessibleobject.o  .obj/qaccessibleplugin.o  .obj/qplatformaccessibility.o  .obj/qaccessiblebridge.o  .obj/qgenericpluginfactory.o  .obj/qgeneric [. . .]

../../include/QtGui/5.6.1/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:747: error: undefined reference to 'qt_memfill32(unsigned int*, unsigned int, int)'
image/qimage_conversions.cpp:2968: error: undefined reference to 'convert_RGB888_to_RGB32_neon(QImageData*, QImageData const*, QFlags<Qt::ImageConversionFlag>)'
../../include/QtGui/5.6.1/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:747: error: undefined reference to 'qt_memfill32(unsigned int*, unsigned int, int)'
painting/qdrawhelper_p.h:747: error: undefined reference to 'qt_memfill32(unsigned int*, unsigned int, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_blend_rgb32_on_rgb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_blend_argb32_on_argb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_blend_argb32_on_argb32_scanline_neon(unsigned int*, unsigned int const*, int, unsigned int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'comp_func_solid_SourceOver_neon(unsigned int*, int, unsigned int, unsigned int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'comp_func_Plus_neon(unsigned int*, unsigned int const*, int, unsigned int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_fetch_radial_gradient_neon(unsigned int*, Operator const*, QSpanData const*, int, int, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_blend_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_blend_rgb16_on_argb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_blend_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_scale_image_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_scale_image_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_transform_image_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, QTrans
form const&, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_transform_image_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, QTransf
orm const&, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_alphamapblit_quint16_neon(QRasterBuffer*, int, int, QRgba64 const&, unsigned char const*, int, int, int, QClipData const*)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_destFetchRGB16_neon(unsigned int*, QRasterBuffer*, int, int, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_destStoreRGB16_neon(QRasterBuffer*, int, int, unsigned int const*, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_memrotate90_16_neon(unsigned char const*, int, int, int, unsigned char*, int)'
painting/qdrawhelper.cpp:6526: error: undefined reference to 'qt_memrotate270_16_neon(unsigned char const*, int, int, int, unsigned char*, int)'
painting/qdrawhelper.cpp:3473: error: undefined reference to 'qt_memfill32(unsigned int*, unsigned int, int)'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
*** [../../lib/libQt5Gui.so.5.6.1] Error code 1
 
make[1]: stopped in /usr/obj/portswork/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.6.1/src/gui
1 error
 
make[1]: stopped in /usr/obj/portswork/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.6.1/src/gui
===> Compilation failed unexpectedly.



Other details:

# more /etc/make.conf
DEFAULT_VERSIONS+=perl5=5.22
WRKDIRPREFIX=/usr/obj/portswork
WITH_DEBUG=
WITH_DEBUG_FILES=
MALLOC_PRODUCTION=
CFLAGS+= -mcpu=cortex-a7
CXXFLAGS+= -mcpu=cortex-a7
CPPFLAGS+= -mcpu=cortex-a7

An example C++ compile from the typescript file so the compiler options can be seen.

--- .obj/moc_qopengltimerquery.o ---
c++ -c -pipe -mcpu=cortex-a7 -g -fno-strict-aliasing -mcpu=cortex-a7 -std=c++1z -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -pthread -D_THREAD_SAFE -fPIC -DQT_NO_MTDEV -DQ
T_NO_LIBUDEV -DQT_NO_EVDEV -DQT_NO_TSLIB -DQT_NO_LIBINPUT -DQT_ACCESSIBILITY -DQT_DBUS -DQT_FONTCONFIG -DQT_FREETYPE -DQT_GLIB -DQT_IMAGEFORMAT_PNG -DQT_OPENGL -DQT_SHAPE -DQT_XCB -DQT_XKB -DQT_XKBCOM
MON -DQT_XRENDER -DQT_NO_USING_NAMESPACE -DQT_ENABLE_HARFBUZZ_NG -DENABLE_PIXMAN_DRAWHELPERS -DQT_BUILD_GUI_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=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_CORE_LIB -I. -I../../include -I../../include/QtGui -I
../../include/QtGui/5.6.1 -I../../include/QtGui/5.6.1/QtGui -I/usr/local/include -I/usr/local/include/libdrm -I../../include/QtCore/5.6.1 -I../../include/QtCore/5.6.1/QtCore -I../../include/QtCore -I.
moc -I/usr/local/include -I/usr/local/lib/qt5/mkspecs/freebsd-clang -o .obj/moc_qopengltimerquery.o .moc/moc_qopengltimerquery.cpp



The configuration summary (from the typescript file):

   Configure summary
 
Build type:    /usr/local/lib/qt5/mkspecs/freebsd-clang (arm, CPU features: none detected)
 
Build options:
  Configuration .......... accessibility accessibility-atspi-bridge audio-backend c++11 c++14 c++1z clock-gettime clock-monotonic compile_examples concurrent dbus dbus-linked debug egl egl_x11 enable_
new_dtags fontconfig full-config gbm getaddrinfo getifaddrs glib icu ipv6ifname large-config largefile libproxy medium-config minimal-config opengl openssl png posix_fallocate qpa qpa reduce_exports r
path separate_debug_info shared small-config system-freetype system-harfbuzz system-jpeg system-png system-zlib threadsafe-cloexec use_gold_linker xcb xcb-glx xcb-plugin xcb-render xcb-sm xcb-xlib xin
put2 xkbcommon-evdev xlib xrender 
  Build parts ............ libs tools
  Mode ................... debug
  Using sanitizer(s)...... none
  Using C++ standard ..... c++1z
  Using gold linker....... yes
  Using new DTAGS ........ yes
  Using PCH .............. no
  Using LTCG ............. no
  Target compiler supports:
    Neon ................. no
 
Qt modules and options:
  Qt D-Bus ............... yes (linked to dbus-1)
  Qt Concurrent .......... yes
  Qt GUI ................. yes
  Qt Widgets ............. yes
  Large File ............. yes
  QML debugging .......... yes
  Use system proxies ..... no
 
Support enabled for:
  Accessibility .......... yes
  ALSA ................... no
  CUPS ................... no
  Evdev .................. no
  FontConfig ............. yes
  FreeType ............... yes (system library)
  Glib ................... yes
  GStreamer .............. no
  GTK theme .............. no
  HarfBuzz ............... yes (system library)
  Iconv .................. no
  ICU .................... yes
  Image formats: 
    GIF .................. yes (plugin, using bundled copy)
    JPEG ................. yes (plugin, using system library)
    PNG .................. yes (in QtGui, using system library)
  libinput................ no
  Logging backends: 
    journald ............... no
    syslog   ............... no
  mtdev .................. no
  Networking: 
    getaddrinfo .......... yes
    getifaddrs ........... yes
    IPv6 ifname .......... yes
    libproxy.............. yes
    OpenSSL .............. yes (loading libraries at run-time)
  NIS .................... no
  OpenGL / OpenVG: 
    EGL .................. yes
    OpenGL ............... desktop
    OpenVG ............... no
  PCRE ................... system
  pkg-config ............. yes 
  PulseAudio ............. no
  QPA backends: 
    DirectFB ............. no
    EGLFS ................ no
      EGLFS i.MX6 ........ no
      EGLFS i.MX6 Wayland. no
      EGLFS EGLDevice .... no
      EGLFS GBM .......... no
      EGLFS Mali ......... no
      EGLFS Raspberry Pi . no
      EGLFS X11 .......... yes
    LinuxFB .............. no
    Mir client............ no
    XCB .................. yes (system library)
      EGL on X ........... yes
      GLX ................ yes
      MIT-SHM ............ yes
      Xcb-Xlib ........... yes
      Xcursor ............ yes (loaded at runtime)
      Xfixes ............. yes (loaded at runtime)
      Xi ................. no
      Xi2 ................ yes
      Xinerama ........... yes (loaded at runtime)
      Xrandr ............. yes (loaded at runtime)
      Xrender ............ yes
      XKB ................ yes
      XShape ............. yes
      XSync .............. yes
      XVideo ............. yes
  Session management ..... yes
  SQL drivers: 
    DB2 .................. no
    InterBase ............ no
    MySQL ................ no
    OCI .................. no
    ODBC ................. no
    PostgreSQL ........... no
    SQLite 2 ............. no
    SQLite ............... yes (plugin, using bundled copy)
    TDS .................. no
  tslib .................. no
  udev ................... no
  xkbcommon-x11........... yes (system library)
  xkbcommon-evdev......... yes
  zlib ................... yes (system library)
Comment 5 Mikael Urankar freebsd_committer freebsd_triage 2017-06-03 12:03:35 UTC
I think it's a duplicate of bug #216816
Comment 6 Mark Millard 2017-06-03 14:29:42 UTC
(In reply to mikael.urankar from comment #5)

This being older (206348) that would make 216816 a duplicate
of this one.

But note that 206348 is old enough (2016-Jan-17) that
it involved "-mfloat-abi=softfp". FreeBSD these days
uses hardware floating point instead of softfloat.
(The error might be reported anyway: it may turn out
that -mfloat-abi=softfp was not important.)
Comment 7 Mikhail T. 2017-06-04 14:00:24 UTC
Created attachment 183201 [details]
Build's output of qt5-gui

I just had a problem build qt5-gui on a freshly-installed FreeBSD-11.1/i386. The first error is about qt_memfill32 being undefined (which is what brought me to this PR). See the attachment for other errors.

The CFLAGS here include -march=native, if that matters.
Comment 8 Mark Millard 2017-06-04 14:39:25 UTC
(In reply to Mikhail T. from comment #7)

The differences between armv6(/v7) and i386 likely mean
that your qt_memfill32-is-missing problem would better
be its own bugzilla submittal: Fixing the problem for one
context likely does nothing to help the other context.
Comment 9 Mikhail T. 2017-06-04 16:52:58 UTC
(In reply to Mark Millard from comment #8)

For what it is worth, after replacing "-march=native" with "-march=nehalem", the build succeeded...
Comment 10 Mark Millard 2017-06-04 18:57:52 UTC
(In reply to Mikhail T. from comment #9)

nehalem is an example of TARGET_ARCH=amd64 instead
of just TARGET_ARCH=i386 as I understand. In other
words: 64-bit instead of 32-bit addressing and
such. So (since you reference FreeBSD 11.1):

http://ftp1.freebsd.org/pub/FreeBSD/snapshots/amd64/amd64/ISO-IMAGES/11.1/
vs.
http://ftp1.freebsd.org/pub/FreeBSD/snapshots/i386/i386/ISO-IMAGES/11.1/

It may be possible that the i386 variant works too
(but limited to 32-bit addressing), much like
TARGET_ARCH=powerpc works on old 64-bit G5 PowerMacs.
But the more direct match for PowerMac G5's
is TARGET_ARCH=powerpc64 and the more direct match
for nehalem is TARGET_ARCH=amd64 .
Comment 11 Mark Millard 2017-09-06 01:37:23 UTC
(In reply to Mark Millard from comment #6)

An experiment with building based on
/usr/ports being from -r449313 shows that the
problem of undefined references still exists,
including for qt_convert_rgb888_to_rgb32_neon .
This test was via head (so 12) -r323147 .

The attempt listed:

.obj/qimage.o: In function `_ZL10qt_memfillIjEvPT_S0_i':
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/../../include/QtGui/5.7.1/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:803: undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/../../include/QtGui/5.7.1/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:803: undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)'
.obj/qimage_conversions.o:(.data+0x524): undefined reference to `convert_RGB888_to_RGB32_neon(QImageData*, QImageData const*, QFlags<Qt::ImageConversionFlag>)'
.obj/qimage_conversions.o:(.data+0x528): undefined reference to `convert_RGB888_to_RGB32_neon(QImageData*, QImageData const*, QFlags<Qt::ImageConversionFlag>)'
.obj/qimage_conversions.o:(.data+0x52c): undefined reference to `convert_RGB888_to_RGB32_neon(QImageData*, QImageData const*, QFlags<Qt::ImageConversionFlag>)'
.obj/qcompositionfunctions.o: In function `_ZL10qt_memfillIjEvPT_S0_i':
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/../../include/QtGui/5.7.1/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:803: undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/../../include/QtGui/5.7.1/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:803: undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/../../include/QtGui/5.7.1/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:803: undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/../../include/QtGui/5.7.1/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:803: undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/../../include/QtGui/5.7.1/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:803: undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)'
.obj/qdrawhelper.o:/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:3478: more undefined references to `qt_memfill32(unsigned int*, unsigned int, int)' follow
.obj/qdrawhelper.o: In function `_GLOBAL__sub_I_qdrawhelper.cpp':
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193c4): undefined reference to `qt_destFetchRGB16_neon(unsigned int*, QRasterBuffer*, int, int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193c8): undefined reference to `qt_memrotate270_16_neon(unsigned char const*, int, int, int, unsigned char*, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193cc): undefined reference to `qt_memrotate90_16_neon(unsigned char const*, int, int, int, unsigned char*, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193d0): undefined reference to `qt_blend_rgb32_on_rgb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193d4): undefined reference to `comp_func_solid_SourceOver_neon(unsigned int*, int, unsigned int, unsigned int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193d8): undefined reference to `qt_blend_argb32_on_argb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193dc): undefined reference to `qt_blend_argb32_on_argb32_scanline_neon(unsigned int*, unsigned int const*, int, unsigned int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193e0): undefined reference to `qt_destStoreRGB16_neon(QRasterBuffer*, int, int, unsigned int const*, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193e4): undefined reference to `comp_func_Plus_neon(unsigned int*, unsigned int const*, int, unsigned int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193e8): undefined reference to `qt_fetch_radial_gradient_neon(unsigned int*, Operator const*, QSpanData const*, int, int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193f0): undefined reference to `qt_transform_image_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, QTransform const&, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193f8): undefined reference to `qt_fetchUntransformed_888_neon(unsigned int*, Operator const*, QSpanData const*, int, int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x193fc): undefined reference to `qt_blend_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x19400): undefined reference to `qt_blend_rgb16_on_argb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x19408): undefined reference to `qt_blend_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x1940c): undefined reference to `qt_scale_image_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x19414): undefined reference to `qt_scale_image_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x19418): undefined reference to `qt_transform_image_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, QTransform const&, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qdrawhelper.cpp:(.text+0x19424): undefined reference to `qt_alphamapblit_quint16_neon(QRasterBuffer*, int, int, QRgba64 const&, unsigned char const*, int, int, int, QClipData const*)'
.obj/qimagescale.o: In function `qt_qimageScaleAARGBA(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)':
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qimagescale.cpp:378: undefined reference to `void qt_qimageScaleAARGBA_down_xy_neon<false>(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qimagescale.cpp:352: undefined reference to `void qt_qimageScaleAARGBA_up_x_down_y_neon<false>(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qimagescale.cpp:365: undefined reference to `void qt_qimageScaleAARGBA_down_x_up_y_neon<false>(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)'
.obj/qimagescale.o: In function `qt_qimageScaleAARGB(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)':
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qimagescale.cpp:557: undefined reference to `void qt_qimageScaleAARGBA_up_x_down_y_neon<true>(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qimagescale.cpp:570: undefined reference to `void qt_qimageScaleAARGBA_down_x_up_y_neon<true>(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)'
/wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.7.1/src/gui/painting/qimagescale.cpp:583: undefined reference to `void qt_qimageScaleAARGBA_down_xy_neon<true>(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
*** [../../lib/libQt5Gui.so.5.7.1] Error code 1
Comment 12 Michal Meloun freebsd_committer freebsd_triage 2017-09-06 05:02:21 UTC
Improper arch detection is caused by https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=216816

*** This bug has been marked as a duplicate of bug 216816 ***