These are chat archives for highfidelity/hifi

28th
Mar 2017
Flame Soulis
@FlameSoulis
Mar 28 2017 00:53

Okay, this is the second time I've run into this error when linking libtbb:

[100%] Linking CXX executable assignment-client
/usr/bin/ld: skipping incompatible /home/hifi/hifi/build/ext/makefiles/tbb/project/src/tbb/lib/ia32/gcc4.4/libtbb.so.2 when searching for libtbb.so.2
/usr/bin/ld: cannot find libtbb.so.2
/usr/bin/ld: skipping incompatible /home/hifi/hifi/build/ext/makefiles/tbb/project/src/tbb/lib/ia32/gcc4.4/libtbbmalloc.so.2 when searching for libtbbmalloc.so.2
/usr/bin/ld: cannot find libtbbmalloc.so.2

I know this is the Raspberry Pi build, but now I'm scratching my head as to why this is happening since libtbb is being compiled as part of the same process

the only extra step I had to do was add -std=c++11 manually since quazip would refuse to compile, even though the cmake tests show the compiler has both cxx11 and cxx0x support
Clément Brisset
@Atlante45
Mar 28 2017 01:26
I'm confused, are you compiling tbb yourself? since libtbb is being compiled as part of the same process
what version of gcc are you using?
Flame Soulis
@FlameSoulis
Mar 28 2017 01:29
in the past, I attempted to self compile, but had issues getting cmake to find it. In this case, I ran the usual Linux compiling steps, with the exception to the =sdt=c++11 to make quazip happy
gcc version 5.4.0 20160609
gcc version of successful older builds: 4.9.4
Clément Brisset
@Atlante45
Mar 28 2017 01:31
During the build process we dowload the external dependencies.
We can see here that it found what we dowloaded build/ext/makefiles/tbb/project/src/tbb/lib/ia32/gcc4.4/libtbb.so.2 but is skipping it due to incompatibilities.
Flame Soulis
@FlameSoulis
Mar 28 2017 01:31
I can upload a pastebin of the make_output and cmake_output if needed. I was attempting to build the assignment-client
Clément Brisset
@Atlante45
Mar 28 2017 01:32
It's possible the gcc 4.4 and gcc 5.4 ABIs are not compatible here.
Flame Soulis
@FlameSoulis
Mar 28 2017 01:33
hmm... interesting. I never thought about that. I know this is also the first time I've had to pass "export CXXFLAGS="-std=c++11"", but I don't think the older successful build had to deal with quazip. I'll have to take a look in its build log
Clément Brisset
@Atlante45
Mar 28 2017 01:34
The quazip dependency was added ~6 months ago if my memory is correct. It's possible it wasn't there on your old builds.
Flame Soulis
@FlameSoulis
Mar 28 2017 01:36
interesting... nope, I see quazip in the older build's ext directory. And that build required no extra setup
EDIT: Last built Feb 16
Clément Brisset
@Atlante45
Mar 28 2017 01:36
Did you update your compiler since then?
Try to override those flags for the build: CXX=g++-4.4 CC=gcc-4.4
Flame Soulis
@FlameSoulis
Mar 28 2017 01:37
the new build is attempting to be built on Ubuntu 16.04, where as the older is still on 14.04, as the 14.04 Pi is a Pi2, and 16.04 is a Pi3
Clément Brisset
@Atlante45
Mar 28 2017 01:37
(You'll need then installed.)
Oh I see
Hmmm, are you building in 32bit?
Flame Soulis
@FlameSoulis
Mar 28 2017 01:39
I believe so. I did an objdump to check that, if that means anything, on libBulletDynamics.so, which both result with 'arm' on both builds
however, I'm not sure if this is helpful, as both report libtbb.so.2 as UNKNOWN!
Clément Brisset
@Atlante45
Mar 28 2017 01:40
Weird
Flame Soulis
@FlameSoulis
Mar 28 2017 01:41
yep. Like I said, bizarre. Reason I'm building on 16.04 RPI3 is because the Pi2 (14.04) is using Qt 5.6.1 if I remember straight, which I think is no longer recommended with the server builds
Clément Brisset
@Atlante45
Mar 28 2017 01:43
No it's the opposite, we're officially on Qt 5.6.1 since it's an LTS.
But I know one of our devs made a couple changes so that we could unofficially support up to Qt 5.8 on the servers.
Flame Soulis
@FlameSoulis
Mar 28 2017 01:44
hmm. Also, just checked, 5.6.0. My bad. Also interesting
Clément Brisset
@Atlante45
Mar 28 2017 01:44
5.6.0 should be fine too.
As well as 5.6.2
Flame Soulis
@FlameSoulis
Mar 28 2017 01:45
Ah, okay. Reason I thought about updating qt was due to a VERY strange bug that occurs only on the 'Pi' builds, where you can make an object, but it won't actually update the server with said object (just visually create it to the user, though it does perm checks)
Let me go ahead and backup the current build on my older RPI2 and see if it still builds the latest stable just fine
Clément Brisset
@Atlante45
Mar 28 2017 01:47
I doubt that's a bug with Qt. Sounds to me like a networking issue.
Or maybe a permission issue.
Sorry I have to run, I'll try to check back a bit later tonight.
Otherwise don't hesitate to ping me tomorrow.
Flame Soulis
@FlameSoulis
Mar 28 2017 01:48
sure
I'll try swapping GCC versions and report any updates
Clément Brisset
@Atlante45
Mar 28 2017 01:49
Either way, if that's a bug on linux we should try to find it. Even though we don't officially support a Pi build, that could give us insights into a more subtle bug that happens on all releases.
Flame Soulis
@FlameSoulis
Mar 28 2017 01:50
Works on x64 Ubuntu 14.04 (I have a dedicated server for that). Pi builds always have had that issue. Something about some object handler not wanting to address something proper. I can poke back about that once I have the RPI3 builds working
(then again, the Pi builds also helped me spot other tiny bugs)
many thanks for your help, either way. I'll definatly report back the results of the GCC version change
Clément Brisset
@Atlante45
Mar 28 2017 01:52
Yup, what I meant, is that we try to be able to build and run on it as much as possible, but it's not actively integrated into our build system.
Thanks, ttyl.
Flame Soulis
@FlameSoulis
Mar 28 2017 01:52
Welp, thankfully when testing everything else (audio, kinematics, etc), all is good. And Likewise
Trent Polack
@mittens
Mar 28 2017 22:18
blob
NAILED IT.
Clément Brisset
@Atlante45
Mar 28 2017 22:19
Nice!
Looks like you're clipping into an eyeball though...
xD
Trent Polack
@mittens
Mar 28 2017 22:19
eye-clipping is the new hotness