eclipse / upm

UPM is a high level repository that provides software drivers for a wide variety of commonly used sensors and actuators. These software drivers interact with the underlying hardware platform through calls to MRAA APIs.
MIT License
661 stars 410 forks source link

building on RPI 3: undefined reference to symbol 'pthread_getspecific@@GLIBC_2.4' #686

Open chrisovergaauw opened 5 years ago

chrisovergaauw commented 5 years ago

Hi,

On my rpi 3 I run into issues when building upm (after building and installing rmaa).

pi@mark2:~/upm/build $ make
Scanning dependencies of target 2jciebu01_usb
[  0%] Building CXX object src/2jciebu01_usb/CMakeFiles/2jciebu01_usb.dir/2jciebu01_usb.cxx.o
[  0%] Building CXX object src/2jciebu01_usb/CMakeFiles/2jciebu01_usb.dir/2jciebu01.cxx.o
[  0%] Linking CXX shared library libupm-2jciebu01_usb.so
[  0%] Built target 2jciebu01_usb
[  0%] Swig source
Scanning dependencies of target _pyupm_2jciebu01_usb-python2
[  0%] Building CXX object src/2jciebu01_usb/CMakeFiles/_pyupm_2jciebu01_usb-python2.dir/python2.7/2jciebu01_usbPYTHON_wrap.cxx.o
[  0%] Linking CXX shared module python2.7/_pyupm_2jciebu01_usb.so
[  0%] Built target _pyupm_2jciebu01_usb-python2
[  0%] Swig source
Scanning dependencies of target _pyupm_2jciebu01_usb-python3
[  0%] Building CXX object src/2jciebu01_usb/CMakeFiles/_pyupm_2jciebu01_usb-python3.dir/python3.7/2jciebu01_usbPYTHON_wrap.cxx.o
[  0%] Linking CXX shared module python3.7/_pyupm_2jciebu01_usb.so
/usr/bin/ld: /usr/local/lib/libpython3.7m.a(thread.o): undefined reference to symbol 'pthread_getspecific@@GLIBC_2.4'
//lib/arm-linux-gnueabihf/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
src/2jciebu01_usb/CMakeFiles/_pyupm_2jciebu01_usb-python3.dir/build.make:105: recipe for target 'src/2jciebu01_usb/python3.7/_pyupm_2jciebu01_usb.so' failed
make[2]: *** [src/2jciebu01_usb/python3.7/_pyupm_2jciebu01_usb.so] Error 1
CMakeFiles/Makefile2:829: recipe for target 'src/2jciebu01_usb/CMakeFiles/_pyupm_2jciebu01_usb-python3.dir/all' failed
make[1]: *** [src/2jciebu01_usb/CMakeFiles/_pyupm_2jciebu01_usb-python3.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
pi@mark2:~/upm/build $ uname -a
Linux mark2 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux
pi@mark2:~/upm/build $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.8 (stretch)
Release:    9.8
Codename:   stretch

I tried cmake with several options so far (none worked obviously ^^): cmake .. cmake .. -DBUILDSWIGNODE=OFF cmake .. -DBUILDSWIGNODE=OFF -DBUILDARCH=arm -DCMAKE_C_FLAGS='-pthread'

I build rmaa without nodejs stuff as I ran into issues there and I do not need it.

Any tips on how to resolve this issue?

Kind regards, Chris