LinuxQuestions.org
Help answer threads with 0 replies.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - ARM
User Name
Password
Slackware - ARM This forum is for the discussion of Slackware ARM.

Notices


Reply
  Search this Thread
Old 02-21-2018, 12:46 PM   #1
stormtracknole
Senior Member
 
Registered: Aug 2005
Distribution: Slackware, RHEL
Posts: 1,042

Rep: Reputation: 149Reputation: 149
Building qt5 on slackwarearm-current


Been trying to build Alien's latest -current KDE packages on my Orange Pi. I'm hitting a snag on building qt5 (version 5.9.4).

Code:
qsimd.cpp:(.text+0x1f8): undefined reference to `__atomic_store_8'                                            
.obj/qsimd.o: In function `qDumpCPUFeatures()':                                                               
qsimd.cpp:(.text+0x2b4): undefined reference to `__atomic_load_8'                                             
qsimd.cpp:(.text+0x35c): undefined reference to `__atomic_load_8'                                             
collect2: error: ld returned 1 exit status                                                                    
make[3]: *** [Makefile:1134: ../../lib/libQt5Core.so.5.9.4] Error 1                                           
make[3]: Leaving directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/src/corelib'                       
make[2]: *** [Makefile:170: sub-corelib-make_first] Error 2                                                   
make[2]: Leaving directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/src'                               
make[1]: *** [Makefile:49: sub-src-make_first] Error 2                                                        
make[1]: Leaving directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase'                                   
make: *** [Makefile:83: module-qtbase-make_first] Error 2                                                     
cd qtbase/ && ( test -e Makefile || /tmp/qt-everywhere-opensource-src-5.9.4/qtbase/bin/qmake -o Makefile /tmp/
qt-everywhere-opensource-src-5.9.4/qtbase/qtbase.pro ) && make -f Makefile                                    
make[1]: Entering directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase'                                  
cd src/ && ( test -e Makefile || /tmp/qt-everywhere-opensource-src-5.9.4/qtbase/bin/qmake -o Makefile /tmp/qt-
everywhere-opensource-src-5.9.4/qtbase/src/src.pro ) && make -f Makefile                                      
cd qmake/ && ( test -e Makefile.qmake-aux || /tmp/qt-everywhere-opensource-src-5.9.4/qtbase/bin/qmake -o Makef
ile.qmake-aux /tmp/qt-everywhere-opensource-src-5.9.4/qtbase/qmake/qmake-aux.pro ) && make -f Makefile.qmake-a
ux                                                                                                            
cd doc/ && ( test -e Makefile || /tmp/qt-everywhere-opensource-src-5.9.4/qtbase/bin/qmake -o Makefile /tmp/qt-
everywhere-opensource-src-5.9.4/qtbase/doc/doc.pro ) && make -f Makefile                                      
make[2]: Entering directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/doc'                              
make[2]: Nothing to be done for 'first'.                                                                      
make[2]: Leaving directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/doc'                               
make[2]: Entering directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/qmake'                            
make binary                                                                                                   
make[2]: Entering directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/src'                              
cd tools/bootstrap/ && ( test -e Makefile || /tmp/qt-everywhere-opensource-src-5.9.4/qtbase/bin/qmake -o Makef
ile /tmp/qt-everywhere-opensource-src-5.9.4/qtbase/src/tools/bootstrap/bootstrap.pro ) && make -f Makefile    
make[3]: Entering directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/src/tools/bootstrap'              
make[3]: Nothing to be done for 'first'.                                                                      
make[3]: Leaving directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/src/tools/bootstrap'               
cd tools/moc/ && ( test -e Makefile || /tmp/qt-everywhere-opensource-src-5.9.4/qtbase/bin/qmake -o Makefile /t
mp/qt-everywhere-opensource-src-5.9.4/qtbase/src/tools/moc/moc.pro ) && make -f Makefile                      
cd tools/rcc/ && ( test -e Makefile || /tmp/qt-everywhere-opensource-src-5.9.4/qtbase/bin/qmake -o Makefile /t
mp/qt-everywhere-opensource-src-5.9.4/qtbase/src/tools/rcc/rcc.pro ) && make -f Makefile                      
cd tools/qfloat16-tables/ && ( test -e Makefile || /tmp/qt-everywhere-opensource-src-5.9.4/qtbase/bin/qmake -o
 Makefile /tmp/qt-everywhere-opensource-src-5.9.4/qtbase/src/tools/qfloat16-tables/qfloat16-tables.pro ) && ma
ke -f Makefile                                                                                                
make[3]: Entering directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/qmake'                            
make[3]: Nothing to be done for 'binary'.                                                                     
make[3]: Leaving directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/qmake'                             
make[2]: Leaving directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/qmake'                             
make[3]: Entering directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/src/tools/qfloat16-tables'        
make[3]: Nothing to be done for 'first'.
...
      qsimd.cpp:(.text+0x1f8): undefined reference to `__atomic_store_8'
.obj/qsimd.o: In function `qDumpCPUFeatures()':
qsimd.cpp:(.text+0x2b4): undefined reference to `__atomic_load_8'
qsimd.cpp:(.text+0x35c): undefined reference to `__atomic_load_8'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:1134: ../../lib/libQt5Core.so.5.9.4] Error 1
make[3]: Leaving directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/src/corelib'
make[2]: *** [Makefile:170: sub-corelib-make_first] Error 2
make[2]: Leaving directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase/src'
make[1]: *** [Makefile:49: sub-src-make_first] Error 2
make[1]: Leaving directory '/tmp/qt-everywhere-opensource-src-5.9.4/qtbase'
make: *** [Makefile:83: module-qtbase-make_first] Error 2
qt5 failed to build.
I could try an earlier version just in case this one doesn't like arm. I do see in the SlackBuild that some patches are being applied, but I wonder if those are the source of the failed compilation. Before I did much deeper into this, was wondering if anyone already has a modified qt5.SlackBuild. Thanks!
 
Old 02-21-2018, 03:21 PM   #2
abga
Member
 
Registered: Jul 2017
Location: EU
Distribution: Slackware
Posts: 518

Rep: Reputation: 276Reputation: 276Reputation: 276
It looks like there is a workaround (manual editing):
https://github.com/PurpleI2P/i2pd/issues/897
"Same here on Arch Linux ARM running on arvm6h. Adding -latomic to CMakeLists.txt as suggested by @v2e resolved the issue for me. "
or:
https://github.com/alexa/avs-device-sdk/issues/380
 
1 members found this post helpful.
Old 02-22-2018, 01:21 PM   #3
stormtracknole
Senior Member
 
Registered: Aug 2005
Distribution: Slackware, RHEL
Posts: 1,042

Original Poster
Rep: Reputation: 149Reputation: 149
Quote:
Originally Posted by abga View Post
It looks like there is a workaround (manual editing):
https://github.com/PurpleI2P/i2pd/issues/897
"Same here on Arch Linux ARM running on arvm6h. Adding -latomic to CMakeLists.txt as suggested by @v2e resolved the issue for me. "
or:
https://github.com/alexa/avs-device-sdk/issues/380
There are multiple CMakeLists.txt. I could make the edit (although not exactly sure where to put it), but not guarantees that it won't fail further down the line. I'm building the 5.7 series and that one hasn't failed yet. Maybe I'll have better luck with that one.
 
Old 02-22-2018, 02:12 PM   #4
abga
Member
 
Registered: Jul 2017
Location: EU
Distribution: Slackware
Posts: 518

Rep: Reputation: 276Reputation: 276Reputation: 276
Quote:
Originally Posted by stormtracknole View Post
There are multiple CMakeLists.txt. I could make the edit (although not exactly sure where to put it), but not guarantees that it won't fail further down the line. I'm building the 5.7 series and that one hasn't failed yet. Maybe I'll have better luck with that one.
Try the CMakelists.txt in the root of your source directory first and if still failing move to the one corresponding to qsimd.cpp (your log output section in your original post is rather short).
 
Old 02-22-2018, 03:25 PM   #5
stormtracknole
Senior Member
 
Registered: Aug 2005
Distribution: Slackware, RHEL
Posts: 1,042

Original Poster
Rep: Reputation: 149Reputation: 149
Quote:
Originally Posted by abga View Post
Try the CMakelists.txt in the root of your source directory first and if still failing move to the one corresponding to qsimd.cpp (your log output section in your original post is rather short).
There wasn't one in the root directory. There were CMake files in every other sub-directory though. As for my log, I had to shorten it. Version 5.7 is still chugging along. Probably going to need another 24 hours of compiling at least.
 
Old 02-23-2018, 11:11 AM   #6
stormtracknole
Senior Member
 
Registered: Aug 2005
Distribution: Slackware, RHEL
Posts: 1,042

Original Poster
Rep: Reputation: 149Reputation: 149
After a little over 24 hours, qt-5.7.1 finally compiled. I would have to explore more why the 5.9 series was failing to build. I'll look at ARM distros to see if they are providing some patches.
 
Old 02-23-2018, 02:50 PM   #7
abga
Member
 
Registered: Jul 2017
Location: EU
Distribution: Slackware
Posts: 518

Rep: Reputation: 276Reputation: 276Reputation: 276
Quote:
Originally Posted by stormtracknole View Post
After a little over 24 hours, qt-5.7.1 finally compiled. I would have to explore more why the 5.9 series was failing to build. I'll look at ARM distros to see if they are providing some patches.
Given that you have the entire compilation log (failure), you can try to identify which CMakeLists.txt is responsible for building qsimd.cpp and add the -latomic to it.
Code:
qsimd.cpp:(.text+0x1f8): undefined reference to `__atomic_store_8'
 
1 members found this post helpful.
Old 02-23-2018, 05:21 PM   #8
stormtracknole
Senior Member
 
Registered: Aug 2005
Distribution: Slackware, RHEL
Posts: 1,042

Original Poster
Rep: Reputation: 149Reputation: 149
Quote:
Originally Posted by abga View Post
Given that you have the entire compilation log (failure), you can try to identify which CMakeLists.txt is responsible for building qsimd.cpp and add the -latomic to it.
Code:
qsimd.cpp:(.text+0x1f8): undefined reference to `__atomic_store_8'
I'll give it another try this weekend or next week. I appreciate your help with this.
 
Old 03-06-2018, 04:03 PM   #9
Dunc.
LQ Newbie
 
Registered: Jul 2012
Location: Cumbria UK
Distribution: Slackware
Posts: 7

Rep: Reputation: Disabled
I have compiled qt5 for slackwarearm to get mythtv going.

Quote:
qsimd.cpp.text+0x1f8): undefined reference to `__atomic_store_8'
This is an error because it tried to compile for a 64 bit system and you are on an 32.
My modified slackbuild is below.

I used distcc to speed things up a bit which you might want to take out. There is some google stuff in there which uses ninja to build stuff. It must be the slowest fattest ninja ever to waddle on the face of the planet. It will not use distcc for that.

I added a directory with the configs needed. I called it arm-slackware-linux-gnueabi-g++ and the script will copy it to the right place.

Quote:
#!/bin/sh

# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Merged some ideas from Alex Sarmardzic's script for qt4 at SlackBuilds.org
# ^^ Modified by Robby Workman <rworkman@slackware.com> for QT4 & KDE4

# We're using qt-copy instead of a released qt version, as this git release
# has at least one bugfix strongly recommended by the kde developers.

# Obtained from:
# git clone git://gitorious.org/+kde-developers/qt/kde-qt.git
# git checkout origin/4.5.3-patched
# git checkout origin/4.6.0-stable-patched
# git checkout origin/4.6.1-patched
# git checkout origin/4.7.0-patched
#
# Alternate method (we don't use this):
# wget http://qt.gitorious.org/qt/kde-qt/ar.../4.6.2-patched
#
# Modifications 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Eric Hameleers, Eindhoven, NL
# qt 4.7.3, 4.7.4, 4.8.0, 4.8.1, 4.8.2, 4.8.4, are built from original nokia sources.
#
# Modifications for qt 5.2.0 2013 by Michael James, AU
# Modifications for qt 5.2.1 2014 by Eric Hameleers, Eindhoven, NL
# Modifications for qt 5.3.1 2014 by Eric Hameleers, Eindhoven, NL
# Modifications for qt 5.4.0 2015 by Eric Hameleers, Eindhoven, NL
# Modifications for qt 5.4.1 2015 by Eric Hameleers, Eindhoven, NL
# Modifications for qt 5.5.1 2015,2016 by Eric Hameleers, Eindhoven, NL
# Modifications for qt 5.6.0 2016 by Eric Hameleers, Eindhoven, NL
# Modifications for qt 5.6.1 2016 by Eric Hameleers, Eindhoven, NL
# Modifications for qt 5.7.0 2016 by Eric Hameleers, Eindhoven, NL
# Modifications for qt 5.7.1 2017 by Eric Hameleers, Eindhoven, NL
# Modifications for qt 5.9.0 2017 by Eric Hameleers, Eindhoven, NL
# Modifications for qt 5.9.1 2017 by Eric Hameleers, Eindhoven, NL

PKGNAM=qt5
VERSION=${VERSION:-5.9.1}
PKGSRC=$(echo $VERSION |cut -d- -f1)
PKGVER=$(echo $VERSION |tr - _)
BUILD=${BUILD:-1}
export DISTCC_HOSTS="192.168.1.127,lzo,cpp 127.0.01"
export DISTCC_VERBOSE=0
NUMJOBS=${NUMJOBS:--j8}

# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
i?86) ARCH=i586 ;;
arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
esac
export ARCH
fi

if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
SLKLDFLAGS=""
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
SLKLDFLAGS=""
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
SLKLDFLAGS=""
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
SLKLDFLAGS=""
SLKLDFLAGS="-L/usr/lib64"
LIBDIRSUFFIX="64"
elif [ "$ARCH" = "armv7hl" ]; then
# To prevent "qatomic_armv6.h error: output number 2 not directly addressable"
# More permanent solution is to patch gcc:
# http://bazaar.launchpad.net/~linaro-...evision/106731
SLKCFLAGS="-O2 -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 "
SLKLDFLAGS="-latomic"
LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
SLKLDFLAGS=""
LIBDIRSUFFIX=""
fi

case "$ARCH" in
arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
*) TARGET=$ARCH-slackware-linux ;;
esac

CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}

rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf qt-everywhere-opensource-src-$VERSION
echo "Extracting qt-everywhere-opensource-src-$VERSION.tar.xz"
tar xf $CWD/qt-everywhere-opensource-src-$VERSION.tar.xz || exit 1
cd qt-everywhere-opensource-src-$PKGSRC || exit 1
cp -R $CWD/arm-slackware-linux-gnueabi-g++ qtbase/mkspecs/
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;

# Use -reduce-relocations only on i?86 and x86_64 architextures.
# https://bugreports.qt-project.org/browse/QTBUG-36129
if echo $ARCH | grep -q '\(i.86\|x86_64\)' 2>/dev/null; then
RELOCATIONS="-reduce-relocations"
else
RELOCATIONS=""
fi

# Fix path to mysql header:
cat $CWD/patches/qt5.mysql.h.diff | patch -p1 --verbose || exit 1

# Fix missing private includes: QTBUG-37417
sed -e '/CMAKE_NO_PRIVATE_INCLUDES\ \=\ true/d' \
-i qtbase/mkspecs/features/create_cmake.prf

if ! pkg-config --exists libpulse 2>/dev/null ; then
# Forcibly disable pulseaudio in qtwebengine:
cat $CWD/patches/qt5.pulseaudio.diff | patch -p1 --verbose || exit 1
# Disable pulseaudio in Qt5:
PACONF="-no-pulseaudio"
else
PACONF=" "
fi

sed -i -e "s/-O2/$SLKCFLAGS/" qtbase/mkspecs/common/g++-base.conf || exit 1
sed -i -e "s/-O2/$SLKCFLAGS/" qtbase/mkspecs/common/gcc-base.conf || exit 1
sed -i -e "/^QMAKE_LFLAGS\s/s,+=,+= $SLKLDFLAGS,g" qtbase/mkspecs/common/gcc-base.conf || exit 1

# Enable h.264 codec support:
echo "WEBENGINE_CONFIG += use_proprietary_codecs" >> qtwebengine/.qmake.conf

# Enable all languages in the virtual keyboard (required by Plasma 5.11):
echo "CONFIG += lang-all" >> qtvirtualkeyboard/.qmake.conf
echo "$TARGET\n"
echo "$SLKCFLAGS\n"
pump --startup
export CC="distcc"
export TARGET
export CFLAGS="$SLKCFLAGS"
export CXXFLAGS="$SLKCFLAGS"
export OPENSOURCE_CXXFLAGS="$SLKCFLAGS"
export QTDIR="${TMP}/qt-everywhere-opensource-src-${PKGSRC}"
export LD_LIBRARY_PATH="${QTDIR}/qtbase/lib:${QTDIR}/qttools/lib:${LD_LIBRARY_PATH}"
export QT_PLUGIN_PATH="${QTDIR}/qtbase/plugins"
./configure \
-platform arm-slackware-linux-gnueabi-g++\
-confirm-license \
-opensource \
-prefix /usr \
-libdir /usr/lib${LIBDIRSUFFIX} \
-bindir /usr/lib${LIBDIRSUFFIX}/qt5/bin \
-sysconfdir /etc/xdg \
-headerdir /usr/include/qt5 \
-datadir /usr/share/qt5 \
-archdatadir /usr/lib${LIBDIRSUFFIX}/qt5 \
-docdir /usr/doc/qt5-$PKGVER \
-examplesdir /usr/doc/qt5-$PKGVER/examples \
-system-libpng \
-system-libjpeg \
-system-sqlite \
-system-zlib \
-plugin-sql-mysql \
-plugin-sql-sqlite \
-accessibility \
-alsa \
-dbus \
-glib \
-icu \
-opengl es2\
-openssl \
-optimized-qmake \
-qpa xcb \
-qt-harfbuzz \
-verbose \
-xcb \
-nomake examples \
-nomake tests \
-no-separate-debug-info \
-no-strip \
-no-use-gold-linker \
${PACONF} \
${RELOCATIONS} \
-no-pch
# No-precompiled-headers is ccache-friendly.
#cp $CWD/qmodule.pri qtbase/mkspecs/
#read -p "Press enter to continue"
# Sometimes a failure happens when parallelizing make. Try again if make fails,
# but make a failure the second time around (single threaded) a fatal error:
make $NUMJOBS CC=distcc CXX=distcc || make CC=distcc CXX=distcc ||exit 1
make install INSTALL_ROOT=$PKG || exit 1
pump --shutdown
# Strip binaries the Slackware way:
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null

# Fix internal linking for Qt5WebEngineCore.pc ,
# thanks to Larry Hajali's SBo script:
sed -i \
-e 's|-Wl,--start-group.* -Wl,--end-group||' \
-e "s|-L${PWD}/qtwebengine/src/core/api/Release||" \
$PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/Qt5WebEngineCore.pc

# Fix the path in prl files:
find "$PKG/usr/lib${LIBDIRSUFFIX}" -type f -name '*.prl' \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;

# Fix the qmake path in pri file:
sed -i "s,${QTDIR}/qtbase,/usr/lib${LIBDIRSUFFIX}/qt5," \
$PKG/usr/lib${LIBDIRSUFFIX}/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri

# Install symlinks to the Qt5 binaries in the $PATH:
mkdir -p $PKG/usr/bin
for FILE in $PKG/usr/lib${LIBDIRSUFFIX}/qt5/bin/* ; do
ln -s ../lib${LIBDIRSUFFIX}/qt5/bin/$(basename $FILE) $PKG/usr/bin/$(basename $FILE)-qt5
done

# Set the QT5DIR variable in the environment:
mkdir -p $PKG/etc/profile.d
sed -e "s,@LIBDIRSUFFIX@,${LIBDIRSUFFIX},g" $CWD/profile.d/$PKGNAM.sh \
> $PKG/etc/profile.d/$PKGNAM.sh
sed -e "s,@LIBDIRSUFFIX@,${LIBDIRSUFFIX},g" $CWD/profile.d/$PKGNAM.csh \
> $PKG/etc/profile.d/$PKGNAM.csh
chmod 0755 $PKG/etc/profile.d/*

# Add menu entries for all those hidden but great Qt applications:
# Qt5 logo:
mkdir -p $PKG/usr/share/icons/hicolor/48x48/apps
convert qtdoc/doc/src/images/qt-logo.png -resize 48x48 $PKG/usr/share/icons/hicolor/48x48/apps/qt5-logo.png
# Assistant icons
install -p -m644 -D qttools/src/assistant/assistant/images/assistant.png $PKG/usr/share/icons/hicolor/32x32/apps/qt5-assistant.png
install -p -m644 -D qttools/src/assistant/assistant/images/assistant-128.png $PKG/usr/share/icons/hicolor/128x128/apps/qt5-assistant.png
# Designer icon
install -p -m644 -D qttools/src/designer/src/designer/images/designer.png $PKG/usr/share/icons/hicolor/128x128/apps/qt5-designer.png
# QDbusViewer icons
install -p -m644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer.png $PKG/usr/share/icons/hicolor/32x32/apps/qt5-qdbusviewer.png
install -p -m644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png $PKG/usr/share/icons/hicolor/128x128/apps/qt5-qdbusviewer.png
# Linguist icons
for icon in qttools/src/linguist/linguist/images/icons/linguist-*-32.png ; do
size=$(echo $(basename ${icon}) | cut -d- -f2)
install -p -m644 -D ${icon} $PKG/usr/share/icons/hicolor/${size}x${size}/apps/qt5-linguist.png
done

# And the .desktop files too:
mkdir -p $PKG/usr/share/applications
cat <<EOF > $PKG/usr/share/applications/qt5-designer.desktop
[Desktop Entry]
Name=Qt5 Designer
GenericName=Interface Designer
Comment=Design GUIs for Qt5 applications
Exec=designer-qt5 -qt=5
Icon=qt5-designer
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;
EOF
cat <<EOF > $PKG/usr/share/applications/qt5-assistant.desktop
[Desktop Entry]
Name=Qt5 Assistant
Comment=Shows Qt5 documentation and examples
Exec=assistant-qt5 -qt=5
Icon=qt5-assistant
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Documentation;
EOF
cat <<EOF > $PKG/usr/share/applications/qt5-linguist.desktop
[Desktop Entry]
Name=Qt5 Linguist
Comment=Add translations to Qt5 applications
Exec=linguist-qt5 -qt=5
Icon=qt5-linguist
MimeType=text/vnd.trolltech.linguist;application/x-linguist;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;
EOF
cat <<EOF > $PKG/usr/share/applications/qt5-qdbusviewer.desktop
[Desktop Entry]
Name=Qt5 QDbusViewer
GenericName=Qt5 D-Bus Debugger
Comment=Debug D-Bus applications
Exec=qdbusviewer-qt5
Icon=qt5-qdbusviewer
Terminal=false
Type=Application
Categories=Qt;Development;Debugger;
EOF

# Add a documentation directory:
mkdir -p $PKG/usr/doc/$PKGNAM-$PKGVER
cp -a \
README qtbase/{header*,LGPL_EXCEPTION.txt,LICENSE*} \
$PKG/usr/doc/$PKGNAM-$PKGVER
if [ -d $PKG/usr/lib${LIBDIRSUFFIX}/qt5/doc/html ]; then
( cd $PKG/usr/doc/$PKGNAM-$PKGVER
ln -sf /usr/lib${LIBDIRSUFFIX}/qt5/doc/html .
)
fi

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

cd $PKG
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$PKGVER-$ARCH-$BUILD.txz

Last edited by Dunc.; 03-06-2018 at 04:05 PM.
 
2 members found this post helpful.
Old 03-06-2018, 07:14 PM   #10
stormtracknole
Senior Member
 
Registered: Aug 2005
Distribution: Slackware, RHEL
Posts: 1,042

Original Poster
Rep: Reputation: 149Reputation: 149
Quote:
Originally Posted by Dunc. View Post
I have compiled qt5 for slackwarearm to get mythtv going.



This is an error because it tried to compile for a 64 bit system and you are on an 32.
My modified slackbuild is below.

I used distcc to speed things up a bit which you might want to take out. There is some google stuff in there which uses ninja to build stuff. It must be the slowest fattest ninja ever to waddle on the face of the planet. It will not use distcc for that.

I added a directory with the configs needed. I called it arm-slackware-linux-gnueabi-g++ and the script will copy it to the right place.
Thank you very much for this!!
 
  


Reply

Tags
arm, qt5


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Building Qt5 from source fails rbob Slackware 9 11-13-2017 09:09 AM
problem building qt5 itsgregman Slackware 42 01-18-2017 06:57 AM
building wiringPi gpio utility on slackwarearm louigi600 Slackware - ARM 7 09-26-2016 12:24 PM
[SOLVED] building ffmpeg 2.8.7 on slackwarearm current slackartist Slackware - ARM 9 09-14-2016 01:56 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - ARM

All times are GMT -5. The time now is 11:24 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration