aws-samples / aws-iot-securetunneling-localproxy

AWS Iot Secure Tunneling local proxy reference C++ implementation
https://docs.aws.amazon.com/iot/latest/developerguide/what-is-secure-tunneling.html
Apache License 2.0
74 stars 71 forks source link

protobuf 3.6.1 doesn't build on Raspberry Pi 4 #30

Closed RealHandy closed 3 years ago

RealHandy commented 3 years ago

Building the protobuf step of the install instructions results in this error: undefined reference to `__atomic_fetch_add_8'

You can google a number of instances of this error over time with linking 'atomic' on various platforms and versions, and some of the fixes suggested in them (like editing CMakeLists.txt) don't work.

I updated your install to use protobuf 3.13.0 and that built correctly without the atomic linking error.

dave-malone commented 3 years ago

@RealHandy I had to install a newer version of protobuf on the Raspberry Pi v4. This worked with the rest of the build process:

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.13.0/protobuf-all-3.13.0.tar.gz -O /tmp/protobuf-all-3.13.0.tar.gz
tar xzvf /tmp/protobuf-all-3.13.0.tar.gz
cd protobuf-3.13.0
mkdir builddir
cd builddir
cmake ../cmake
make
sudo make install
RealHandy commented 3 years ago

@RealHandy I had to install a newer version of protobuf on the Raspberry Pi v4. This worked with the rest of the build process:

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.13.0/protobuf-all-3.13.0.tar.gz -O /tmp/protobuf-all-3.13.0.tar.gz
tar xzvf /tmp/protobuf-all-3.13.0.tar.gz
cd protobuf-3.13.0
mkdir builddir
cd builddir
cmake ../cmake
make
sudo make install

@dave-malone Yep, that's what I reported to them in the issue as the workaround I used.

I updated your install to use protobuf 3.13.0 and that built correctly without the atomic linking error.

kareali commented 3 years ago

@RealHandy The error suggests that libatomic is not available on the raspberry pi OS. This could be either a problem with the OS (maybe it's not installed), or it could be the case that GCC can't generate it directly for ARM. This was fixed by simply upgrading because protobuf stopped linking against libatomic starting 3.7.1

Closing this issue since dave's suggestion fixed the issue.