Discussion:
recent build; symbol lookup error in libqtgeoservices_googlemaps.so
Cristian Ionescu-Idbohrn
2018-05-11 08:46:35 UTC
Permalink
Any ideas?

$ ./subsurface/build/subsurface -vvv
Subsurface v4.7.8-124-g2c29cc96a34a,
built with libdivecomputer v0.7.0-devel-Subsurface-NG
(e97a47cca55973199715df0f818b4955e60d3a31)
built with Qt Version 5.10.1, runtime from Qt Version 5.10.1
built with libgit2 0.26.0
"validateGL(): created OpenGLContext."
"validateGL(): obtained QOpenGLFunctions."
"validateGL(): detected OpenGL version 3.0."
Plugins Directory: QDir( "...E/subsurface/build" ,
nameFilters = { "*" }, QDir::SortFlags( Name | IgnoreCase ) ,
QDir::Filters( Dirs|Files|Drives|AllEntries ) )
./subsurface/build/subsurface: symbol lookup error:
.../install-root/usr/lib/x86_64-linux-gnu/qt5/plugins/geoservices/libqtgeoservices_googlemaps.so:
undefined symbol:
_ZN11QGeoMapTypeC1ENS_8MapStyleERK7QStringS3_bbi10QByteArray


Cheers,
--
Cristian
Jan Iversen
2018-05-11 10:43:52 UTC
Permalink
On 11 May 2018 at 11:46, Cristian Ionescu-Idbohrn
Post by Cristian Ionescu-Idbohrn
Any ideas?
$ ./subsurface/build/subsurface -vvv
Subsurface v4.7.8-124-g2c29cc96a34a,
built with libdivecomputer v0.7.0-devel-Subsurface-NG
(e97a47cca55973199715df0f818b4955e60d3a31)
built with Qt Version 5.10.1, runtime from Qt Version 5.10.1
built with libgit2 0.26.0
"validateGL(): created OpenGLContext."
"validateGL(): obtained QOpenGLFunctions."
"validateGL(): detected OpenGL version 3.0."
Plugins Directory: QDir( "...E/subsurface/build" ,
nameFilters = { "*" }, QDir::SortFlags( Name | IgnoreCase ) ,
QDir::Filters( Dirs|Files|Drives|AllEntries ) )
_ZN11QGeoMapTypeC1ENS_8MapStyleERK7QStringS3_bbi10QByteArray
did you bump Qt versons to 5.10.x
the constructor for QGeoMapType in the private header changed between
https://github.com/qt/qtlocation/blob/5.10/src/location/maps/qgeomaptype.cpp#L48
i guess this needs a patch for the Gmaps plugin.
i was under the impression that we were already building against Qt 5.10.x…
I used 5.10.1 un MacOS high Sierra and are building master without problems.

rgds
Jan I.
lubomir
--
_______________________________________________
subsurface mailing list
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Cristian Ionescu-Idbohrn
2018-05-11 19:28:04 UTC
Permalink
We don't use cmake rules to trigger re-builds of dependencies.
The idea is that "unless you know what you are doing, please
start from a clean build using the build script".
i think the script to download the private headers for QtLocation
doesn't handle sudden Qt version changes in regard to the already
present objects code in the build folder.
that aside, it's possible to get other build problems after bumping Qt
so the clean build is really the way to go.
Please, tell me what a "clean build" is.
If anything fails, "wipe out the build dir"? Which one? There's at
least:

./googlemaps/
./install-root/
./subsurface/build/

seen from the:

./subsurface/scripts/build.sh

perspective. Is that it? Are there more or less?
Is that documented and I just missed it?


Cheers,
--
Cristian
Lubomir I. Ivanov
2018-05-11 19:58:54 UTC
Permalink
On 11 May 2018 at 22:28, Cristian Ionescu-Idbohrn
Post by Cristian Ionescu-Idbohrn
We don't use cmake rules to trigger re-builds of dependencies.
The idea is that "unless you know what you are doing, please
start from a clean build using the build script".
i think the script to download the private headers for QtLocation
doesn't handle sudden Qt version changes in regard to the already
present objects code in the build folder.
that aside, it's possible to get other build problems after bumping Qt
so the clean build is really the way to go.
Please, tell me what a "clean build" is.
If anything fails, "wipe out the build dir"? Which one? There's at
./googlemaps/
./install-root/
./subsurface/build/
./subsurface/scripts/build.sh
perspective. Is that it? Are there more or less?
Is that documented and I just missed it?
so for a Qt bump, removing everything that is built using Qt might be
the thing to do.
that would mean:
./googlemaps/
./subsurface/build/

and possibly certain things in ./install-root/.

i don't remember if we had a "clean" script for that or if it's documented.
possibly not.

lubomir
--
Cristian Ionescu-Idbohrn
2018-05-12 16:36:00 UTC
Permalink
CMake probably struggles with the detection of such changes.
safest bet is to clean the build dir manually.
We don't use cmake rules to trigger re-builds of dependencies.
FWIW, there may be ways to do that. Looking at what's going on in
scripts/build.sh:

1. keep the clone:

git clone --branch v$QT_VERSION git://code.qt.io/qt/qtlocation.git --depth=1 ./qtlocation_git

between builds, instead of wiping it out

2. detect the current QT_VERSION with:

$ qmake -query QT_VERSION

3. compare it with what `git describe' returns in latest clone, to
detect changes and trigger rebuild of relevant parts
The idea is that "unless you know what you are doing, please
start from a clean build using the build script".
That's an unattractive idea to me.


Cheers,
--
Cristian
j***@apache.org
2018-05-11 10:47:56 UTC
Permalink
On 11 May 2018 at 11:46, Cristian Ionescu-Idbohrn
Post by Cristian Ionescu-Idbohrn
Any ideas?
$ ./subsurface/build/subsurface -vvv
Subsurface v4.7.8-124-g2c29cc96a34a,
built with libdivecomputer v0.7.0-devel-Subsurface-NG
(e97a47cca55973199715df0f818b4955e60d3a31)
built with Qt Version 5.10.1, runtime from Qt Version 5.10.1
built with libgit2 0.26.0
"validateGL(): created OpenGLContext."
"validateGL(): obtained QOpenGLFunctions."
"validateGL(): detected OpenGL version 3.0."
Plugins Directory: QDir( "...E/subsurface/build" ,
nameFilters = { "*" }, QDir::SortFlags( Name | IgnoreCase ) ,
QDir::Filters( Dirs|Files|Drives|AllEntries ) )
_ZN11QGeoMapTypeC1ENS_8MapStyleERK7QStringS3_bbi10QByteArray
did you bump Qt versons to 5.10.x
the constructor for QGeoMapType in the private header changed between
https://github.com/qt/qtlocation/blob/5.10/src/location/maps/qgeomaptype.cpp#L48
i guess this needs a patch for the Gmaps plugin.
i was under the impression that we were already building against Qt 5.10.x…
I used 5.10.1 un MacOS high Sierra and are building master without problems.

rgds
Jan I.
lubomir
--
_______________________________________________
subsurface mailing list
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
Loading...