Hello,

>From other ports I arrived to x11/qt5/qtbase.

The first broken dependency of qtbase is from pulseaudio:

  audio/pulseaudio
    sysutils/consolekit2
      sysutils/polkit
        devel/spidermonkey68 *

In Makefile it reads:

=================================
# Nothing in qtbase links to pulseaudio, but configure checks
# are recorded.
# The atspi is checked at configure time and used via D-Bus.
BUILD_DEPENDS =                audio/pulseaudio \
=================================

This means that qt5 will not support pulse audio if it's not
installed before compilation?

If that is the case, as it is broken for now on arm, it wouldn't
be better to make a port flavor, or remove the dependency for arm
until pulseaudio is fixed?

I don't want to mess with mozilla for now, so I just removed the
pulseaudio dependency.

Now, the problem with qtbase is that clang is not implementing
some neon intrinsics on arm, e.g. vcvt_f16_f32.

I had problems in the past with neon in ports on arm, so I just
disabled all neon support:

===============================================================
--- Makefile.orig       Tue Oct 13 23:24:26 2020
+++ Makefile    Tue Oct 13 23:24:13 2020
@@ -116,8 +116,8 @@
 # Nothing in qtbase links to pulseaudio, but configure checks
 # are recorded.
 # The atspi is checked at configure time and used via D-Bus.
-BUILD_DEPENDS =                audio/pulseaudio \
-                       geo/geoclue \
+#BUILD_DEPENDS =               audio/pulseaudio \
+BUILD_DEPENDS =                geo/geoclue \
                        x11/gnome/at-spi2-core
 
 RUN_DEPENDS-main =     ${RUN_DEPENDS} \
@@ -256,8 +256,19 @@
 
 post-extract:
        mkdir -p ${WRKDIST}/mkspecs/openbsd-clang
+# Some FP16 instrinsics aren't available on arm.
+.if ${MACHINE_ARCH} == "arm"
+       grep -v 'load(qt_config)' ${FILESDIR}/clang-qmake.conf \
+               > ${WRKDIST}/mkspecs/openbsd-clang/qmake.conf
+       echo QMAKE_CFLAGS = -U__ARM_NEON__ -U__ARM_NEON -DPNG_ARM_NEON_OPT=0 \
+               >> ${WRKDIST}/mkspecs/openbsd-clang/qmake.conf
+       echo QMAKE_CXXFLAGS = '$$$$QMAKE_CFLAGS' \
+               >> ${WRKDIST}/mkspecs/openbsd-clang/qmake.conf
+       echo 'load(qt_config)' >> ${WRKDIST}/mkspecs/openbsd-clang/qmake.conf
+.else
        cp ${FILESDIR}/clang-qmake.conf \
                ${WRKDIST}/mkspecs/openbsd-clang/qmake.conf
+.endif
        cp ${WRKDIST}/mkspecs/openbsd-g++/qplatformdefs.h \
                ${WRKDIST}/mkspecs/openbsd-clang/
===============================================================

I used an orange pi one, so I had to add 2G of swap.

The data size limit has to be increased. I used

ulimit -d 1048576

but maybe just around 600M will be sufficient.

I had to shave twice before it finished, but it compiled.

I will try in the future disabling just FP16 intrinsics with

-U__ARM_FP16_FORMAT_IEEE

Regards,
adr.

Reply via email to