discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] I can't get my gsl to link


From: Alan Corey
Subject: Re: [Discuss-gnuradio] I can't get my gsl to link
Date: Sat, 7 Sep 2019 00:14:33 -0400

My initial problem with linking to gsl was because I had symlinked ld
-> gold a month or so ago and forgotten about it.  This is the first
time I've had a problem with it.  The makefile must feed something on
the command line that ld accepts but gold doesn't.  Gold also works
differently with --verbose, it has a slightly different meaning so the
test for SEARCH_DIR bombed.  --verbose in gold expects an argument and
I wasn't providing one.  Anyway ls is searching:
SEARCH_DIR("=/usr/local/lib/aarch64-linux-gnu")
SEARCH_DIR("=/lib/aarch64-linux-gnu")
SEARCH_DIR("=/usr/lib/aarch64-linux-gnu")
SEARCH_DIR("=/usr/local/lib")
SEARCH_DIR("=/lib")
SEARCH_DIR("=/usr/lib")
SEARCH_DIR("=/usr/aarch64-linux-gnu/lib")
which is fine.

But since you're using gr-osmosdr, how is the location of the gnuradio
runtime specified in your CMakeCache.txt file?  I don't know what
variable to set.  I'm trying to use an rtl2932 dongle so librtlsdr,
which is found, but every cmake run so far ends with "GnuRadio Runtime
required to build gr-osmosdr".  This is right after it checks for
libhackrf, libairspy, libbladeRF which I don't have.


On 9/6/19, Cinaed Simson <address@hidden> wrote:
> Hi - I have gnuradio-3.7.13.4, gsl-2.5, and the latest git version of
> gr-osmosdr installed under stretch (patched) on the Odroid N2.
>
> No problems building. I'm sing the next to the last git version of
> rtl-sdr with hackrf-2017.02.1.
>
> Check the ./gnuradio/cmake/Modules/FindGSL.cmake - maybe cmake can't
> find the headers?
>
> I installed gsl in the same directory as gnuradio.
>
> Check your pkgconfig directory for the file gsl.pc and examine it to
> ensure the information is correct.
>
> Type
>
>    gsl-config --version
>
> - make sure it's in your path.
>
> This was my cmake command:
>
> cmake -Wno-dev -DCMAKE_INSTALL_PREFIX="${PREFIX}"
> -DCMAKE_PREFIX_PATH="${PREFIX}" ../
>
> where PREFIX="/opt/gnuradio".
>
> -- Cinaed
>
>
> On 9/6/19 9:18 AM, Alan Corey wrote:
>> It might help if I had more idea what's supposed to happen.  Was I
>> supposed to define SEARCH_DIR?  Or replace it?  Is that 1 line or 2?
>>
>> Just running
>>  ld --verbose | grep SEARCH_DIR | tr -s ' ;' \\012
>> ld: fatal error: no input files
>>
>> Trying as 1 line:
>> ld --verbose | grep SEARCH_DIR | tr -s ' ;' \\012 make VERBOSE=1
>> tr: extra operand ‘make’
>> Try 'tr --help' for more information.
>> ld: fatal error: no input files
>>
>> From the stackoverflow example, if I put "-Wl,--verbose" in my
>> CMakeCache.txt as part of the string that gets passed to the C
>> compiler would that do it?  If I could use a more normal -L and -l I'd
>> be more comfortable but I'm working through the full cmake process.  I
>> don't know how to extract what I need to try to link this manually.
>>
>> Yup, aarch64 on an Odroid N2:
>> Linux odroid 4.9.177+ #1 SMP PREEMPT Sat May 18 09:49:10 CEST 2019
>> aarch64 GNU/Linux
>>
>> Debian from meveric's image, still Stretch so far.  Some dependencies
>> I built from source, some are from the debs if they were new enough.
>>
>> I disabled GR-WAVELET, FEC and GR-DTV, got it to build.  Ran
>> volk_profile, it picked up the neon correctly.  I don't have an RF
>> source driver so far.  Using an RTL2832 dongle, trying to build
>> Osmocom.  There's a ton of obsolete documentation out there.
>>
>> Probably doesn't matter but my LD_LIBRARY_PATH is
>> /usr/local/lib:/lib:/lib/aarch64-linux-gnu:/usr/lib:/usr/lib/aarch64-linux-gnu
>>
>>
>>
>>
>>
>> On 9/6/19, Vasil Velichkov <address@hidden> wrote:
>>> Hi Alen,
>>>
>>> On 06/09/2019 00.45, Alan Corey wrote:
>>>> I think this is a low level problem, it gets through cmake and all
>>>> that, but when it gets down to make and ld I get:
>>>>
>>>> [ 49%] Built target fft_qa_fft_shift
>>>> [ 49%] Linking CXX shared library libgnuradio-filter.so
>>>> /usr/bin/ld: error: cannot find -lgsl
>>>> /usr/bin/ld: error: cannot find -lgslcblas
>>>> collect2: error: ld returned 1 exit status
>>>> gr-fec/lib/CMakeFiles/gnuradio-fec.dir/build.make:824: recipe for target
>>>> 'gr-fec
>>>> /lib/libgnuradio-fec.so.3.9.0.0-git' failed
>>>> make[2]: *** [gr-fec/lib/libgnuradio-fec.so.3.9.0.0-git] Error 1
>>>> CMakeFiles/Makefile2:4691: recipe for target
>>>> 'gr-fec/lib/CMakeFiles/gnuradio-fec
>>>> .dir/all' failed
>>>> make[1]: *** [gr-fec/lib/CMakeFiles/gnuradio-fec.dir/all] Error 2
>>>> make[1]: *** Waiting for unfinished jobs....
>>>> [ 52%] Built target gnuradio-filter
>>>> Makefile:140: recipe for target 'all' failed
>>>> make: *** [all] Error 2
>>>
>>> Post the output of
>>>
>>>     ld --verbose | grep SEARCH_DIR | tr -s ' ;' \\012
>>>     make VERBOSE=1
>>>
>>>> Yet ldconfig -p | grep gsl says
>>>>    libgslcblas.so.0 (libc6,AArch64) => /usr/local/lib/libgslcblas.so.0
>>>>    libgslcblas.so (libc6,AArch64) => /usr/local/lib/libgslcblas.so
>>>>    libgsl.so.25 (libc6,AArch64) => /usr/local/lib/libgsl.so.25
>>>>    libgsl.so (libc6,AArch64) => /usr/local/lib/libgsl.so
>>>
>>> The ldconfig cache is used only by the runtime linker and is not used
>>> when
>>> you build a program or library, e.g. not used by /usr/bin/ld.
>>> https://stackoverflow.com/a/21610523/2315085
>>>
>>>> What's maybe odd is that ls -al | grep gsl in /usr/local/lib looks like
>>>> this:
>>>> -rw-r--r--  1 root staff 22783350 Sep  3 21:19 libgsl.a
>>>> -rw-r--r--  1 root staff  1885346 Sep  3 21:19 libgslcblas.a
>>>> -rwxr-xr-x  1 root staff      949 Sep  3 21:19 libgslcblas.la
>>>> lrwxrwxrwx  1 root staff       20 Sep  3 21:19 libgslcblas.so ->
>>>> libgslcblas.so.0.0.0
>>>> lrwxrwxrwx  1 root staff       20 Sep  3 21:19 libgslcblas.so.0 ->
>>>> libgslcblas.so.0.0.0
>>>> -rwxr-xr-x  1 root staff  1121320 Sep  3 21:19 libgslcblas.so.0.0.0
>>>> -rwxr-xr-x  1 root staff      918 Sep  3 21:19 libgsl.la
>>>> lrwxrwxrwx  1 root staff       16 Sep  3 21:19 libgsl.so ->
>>>> libgsl.so.25.0.0
>>>> lrwxrwxrwx  1 root staff       16 Sep  3 21:19 libgsl.so.25 ->
>>>> libgsl.so.25.0.0
>>>> -rwxr-xr-x  1 root staff 12949992 Sep  3 21:19 libgsl.so.25.0.0
>>>>
>>>> Only the symlinks to the real files end up in the ld.so cache,
>>>> ldfonfig doesn't pick up the actual files (libgsl.so.25.0.0 and
>>>> libgslcblas.so.0.0.0) at all.  That may not be important.
>>>
>>> That is normal.
>>>
>>>> Are the permissions wrong?  They installed this way.
>>>>
>>>> I installed gsl 2.6 from a tarball from http://ftp.gnu.org/gnu/gsl/, I
>>>> fetched Gnuradio by doing git clone --recursive
>>>> https://github.com/gnuradio/gnuradio.git
>>>
>>> From the ldconfig output it looks like you are building it on an 64bit
>>> ARM
>>> platform (AArch64). What device do you use and which Linux distribution?
>>>
>>> Regards,
>>> Vasil
>>>
>>
>>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>


-- 
-------------
No, I won't  call it "climate change", do you have a "reality problem"? - AB1JX
Cities are cages built to contain excess people and keep them from
cluttering up nature.
Impeach  Impeach  Impeach  Impeach  Impeach  Impeach  Impeach  Impeach



reply via email to

[Prev in Thread] Current Thread [Next in Thread]