Hi,

My C++ knowledge is very basic and I'm running into something I do not understand.

I build the RPM for my Sailfish OS app in a Docker environment I made: https://git.sr.ht/~aerique/sfosbid#codeeql5-sfoscode

If I follow the steps in the "eql5-sfos" section on my home PC it works, but if I do the same on my PC at work (also in Docker) I get this failure:

    ;;; Loading "/home/erikw/projects/eql5-sfos-git/lisp/app.asd"
    ;;;
    ;;; Compiling /home/erikw/projects/eql5-sfos-git/lisp/qml.lisp.
    ;;; OPTIMIZE levels: Safety=3, Space=0, Speed=0, Debug=3
    ;;;
    ;;; End of Pass 1.
;;; Finished compiling /home/erikw/projects/eql5-sfos-git/lisp/qml.lisp.
    ;;;
;;; Loading "/home/erikw/.cache/common-lisp/ecl-20.4.24-unknown-linux-armv7l/home/erikw/projects/eql5-sfos-git/lisp/qml.fas"
    ;;;
    ;;; Compiling /home/erikw/projects/eql5-sfos-git/lisp/app.lisp.
    ;;; OPTIMIZE levels: Safety=3, Space=0, Speed=0, Debug=3
    ;;;
    ;;; End of Pass 1.
;;; Finished compiling /home/erikw/projects/eql5-sfos-git/lisp/app.lisp.
    ;;;
g++ -c -pipe -O2 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -isystem /usr/include/sailfishapp -isystem /usr/include/mdeclarativecache5 -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtQuick -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtQml -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -I. -I/usr/share/qt5/mkspecs/linux-g++ -o eql5-sfos.o src/eql5-sfos.cc g++ -Wl,-O1 -Wl,-rpath,/usr/share/eql5-sfos/lib -o eql5-sfos libapp.a eql5-sfos.o -lecl -leql5 -L. -lapp -lsailfishapp -pie -rdynamic -lmdeclarativecache5 -lQt5Quick -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -lGLESv2 -lpthread /srv/mer/toolings/SailfishOS-latest//opt/cross/bin/armv7hl-meego-linux-gnueabi-ld: eql5-sfos.o: in function `main': eql5-sfos.cc:(.text.startup+0x2c8): undefined reference to `init_lib_APP__ALL_SYSTEMS'
    collect2: error: ld returned 1 exit status
    make: *** [Makefile:170: eql5-sfos] Error 1

An `objdump libapp.a` shows not `init_lib_APP__ALL_SYSTEMS` but `init_lib__ECLAQZDC4E1_UK8FKC51` and if I replace the former with the latter in `src/eql5-sfos.cc` everything compiles as it should!

Anyone have any idea what might be causing this?

Regards,
Erik

Reply via email to