gpsd-users
[Top][All Lists]
Advanced

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

Re: Cross compile gpsd-3.20.1~dev for arm with buildroot


From: Florian Kiera
Subject: Re: Cross compile gpsd-3.20.1~dev for arm with buildroot
Date: Mon, 8 Jun 2020 14:20:46 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0

Hey Gary!

Please unpack buildroot-logs.tar.gz for the 3 files "compile-3.18_success.txt", "compile-3.19_success.txt" and "compile-3.20_fail.txt".

Am 05.06.20 um 19:03 schrieb Gary E. Miller:
Yo Florian!

On Fri, 5 Jun 2020 16:39:37 +0200
Florian Kiera <florian.kiera@logicway.de> wrote:

I am trying to update the gpsd version for our buildroot and keep 
running into an error:
3.18 is too old to support.

You have reported this as before.  Exact same problem as before:

    unrecognized option '-Wl,-Bsymbolic'

As before, that is not in gpsd:
    $ fgrep Bsymbol * -r
    $

It is coming from somewhere else in your system, not from gpsd.

Why does gpsd want to use "/home/florian/Desktop/buildroot-2019.02.8.2/output/host/bin/arm-buildroot-linux-uclibcgnueabihf-ld"? Why/Where does it "import" it from LD?

With g++ the flag '-Wl,-Bsymbolic' would cause no trouble (see line 132 in compile-3.18_success.txt, line 126 in compile-3.19_success.txt and compare to line 204 of compile-3.20_fail.txt)

I already know buildroot can be tricky sometimes. But how it comes
that scons/gpsd is using the arm-buildroot-linux-uclibcgnueabihf-ld
to compile the libgps.so while on x86_64 it uses the g++?
You specified the CC and LD yourself, not scons/gpsd:

CC="/home/florian/Desktop/buildroot-2019.02.8.2/output/host/bin/arm-buildroot-linux-uclibcgnueabihf-gcc" 
GCC="/home/florian/Desktop/buildroot-2019.02.8.2/output/host/bin/arm-buildroot-linux-uclibcgnueabihf-gcc" 
CPP="/home/florian/Desktop/buildroot-2019.02.8.2/output/host/bin/arm-buildroot-linux-uclibcgnueabihf-cpp" 
CXX="/home/florian/Desktop/buildroot-2019.02.8.2/output/host/bin/arm-buildroot-linux-uclibcgnueabihf-g++" 
LD="/home/florian/Desktop/buildroot-2019.02.8.2/output/host/bin/arm-buildroot-linux-uclibcgnueabihf-ld" 

I see nowhere in your bulid log the ld is used to compile.

On the 3.20 "compile-3.20_fail.txt" it does use LD (which causes the fail; line 204) on the 3.18 it uses the g++ as intented (line 132, compile-3.18_success.txt; line 126, compile-3.19_success.txt). All are compiling for arm, all got the same options/flags which are set by default from buildroot.

What I was up to is: The input is the same, the output is different.

The .mk file is for all versions the same (except the python version needs to be updated) since it just runs scons with all the ld/cc/cxx flags and options (line 12 of the both success files and line 2 of compile-3.20_fail.txt). The only thing that changed is gpsd (SConstruct) which imports the LD even tho its not needed at all. LD is never supposed to be used in the whole compile process; neither on the normal computer nor on arm. Thought you might know where it loads the variable LD.

Another proof is compiling gpsd-3.19. I use the same gpsd.mk file and just installed gpsd 3.19 instead of 3.18 which works perfectly fine. Just 3.20+ runs into the thought of using LD (ld) instead of CXX (g++) and I cannot tell where and why yet.

Regards Florian

Attachment: buildroot-logs.tar.gz
Description: application/gzip


reply via email to

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