Linker unable to find external .so files in R9

Compiling for WP7601 with Dev Studio. I’ve been working with Release 8. I wanted to go to release 9 as it’s the latest and according to our Sierra Wireless Rep, release 10 is due out soon. However, compiling the app is no problem, but when it tries to link the files, it says it can’t find them. I have the directive in the component.def in the cxxflags: section for the path to the libraries which are all .so as:
-L./ComponentName/lib/

If I go back to Release 8, it still compiles fine.
I’ve tried various things, including looking at the folder in the ds/workspace and pointing to that, but it still doesn’t find them. Any clues to why this isn’t working?

Hi @EvetsMostel

May I ask you to help us for a faster diagnostic of this, and provide a simple HelloWorld based project that reproduces this problem?

Thanks!

@daav,
OK, but please as soon as you pull it down, Let me know so I can delete it as I am not sure I can do this legally since it includes 3rd party software. I will have to give you a link as the project is just slightly too big to upload here (by 900 kbytes). Here’s a link to the zip file of the project:
https://fwbox.feeneywireless.com/public.php?service=files&t=cbdaac370bfa7785465ab555112e63b4

oops, I guess I was too long to have a look at it, the link doesn’t work anymore…

@daav,
Let’s try a different place.
https://drive.google.com/file/d/1qReENqBSoACtK11eyrmBMtF7YpZWNVCA/view?usp=sharing

ok, got it.
will keep you updated about our investigations.

Thanks @daav. I appreciate it.

So, we’re able to reproduce the behavior where:

  • with R8, the project builds fine
  • with R9, the project doesn’t link since it misses gnutls, nettle and hogweed libraries

I don’t have an explanation why it is working in R8.
But my observations are that in the lib folder, there are different versions of all the missing libraries (e.g. libgnutls.so.30 and libgnutls.so.28), but no simple .so file (e.g. libgnutls.so is missing)

If I add .so files (by copying one of the .so.xx files), the linker goes a bit further, just complaining it’s missing libidn.so.11

Then I add the “-Wl,-rpath=$CURDIR/lib” line to the ldflags section, and now I can link the project again.

I still have the feeling of blindly playing with black magic here, but hope this will help…

@daav,
Interestingly enough if I just add the “-Wl,-rpath=$CURDIR/lib” line to the ldflags section, it balks and says:
error: Invalid character ‘,’ in argument.

If I split the line in to two and removed the comma, it tries to compile, but then gives two errors:
unrecognized command line option ‘-Wl’; did you mean ‘-W’?
error: unrecognized command line option ‘-rpath=C:\Repository\Legato\CuTest/CuTestComponent/lib’

How is it you are able to use those flags and I am not? I AM using the IDE in Windows. I’ve not tried it in Linux.

Ah, I see the problem. I apparently needed to add the Quotes. I can compile now.

Thanks!

yeah, that’s it.
Good news :wink: