Am Sonntag, den 28.05.2017, 09:04 -0700 schrieb Khem Raj:
> On Sun, May 28, 2017 at 4:10 AM, Max Krummenacher <[email protected]> 
> wrote:
> > When linking with gold libgps and libgpsd error out with:
> >  | ./libgpsd.so: error: undefined reference to 'atan2'
> >  | ./libgpsd.so: error: undefined reference to 'pow'
> >  | ./libgpsd.so: error: undefined reference to 'sqrt'
> >  | ./libgpsd.so: error: undefined reference to 'sin'
> >  | ./libgpsd.so: error: undefined reference to 'cos'
> >  | collect2: error: ld returned 1 exit status
> > 
> > Using the bfd linker fixes the issue.
> 
> It seems packages dont have proper linker rules.
> perhaps a better fix is to add -lm to linker cmdline.
-lm is part of the linker cmdline.

 | arm-angstrom-linux-gnueabi-gcc -march=armv7-a -mthumb -mfpu=neon 
-mfloat-abi=hard -
-sysroot=/home/res/develop/oe-core/build/tmp-glibc/sysroots/apalis-imx6 -o gpsd 
-Wl,-O1 -Wl,--hash
-style=gnu -Wl,--as-needed 
--sysroot=/home/res/develop/oe-core/build/tmp-glibc/sysroots/apalis-imx6 
-pthread 
-Wl,-rpath=/home/res/develop/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux
-gnueabi/gpsd/3.14-r0/gpsd-3.14 gpsd.o timehint.o shmexport.o dbusexport.o 
sd_socket.o -L. 
-L/home/res/develop/oe-core/build/tmp-glibc/sysroots/apalis-imx6/usr/lib -lrt 
-lbluetooth -ldbus-1 
-lgpsd -lusb-1.0 -lbluetooth -lgps -lm -ldbus-1

One can get this link by linking the two shared objects '-lgps -lm' swapped 
'-lm -lgps', however I
do not understand why that order matters.
It does not help to add -lm when linking libgps.so.

gpsd 3.16 seems do not be affected, the scons file however has been given quite 
same change.

So, IMHO I'd rather use the linker which we now produces working binaries than 
to add yet one more
patch to the scons file. That gives a commit we can use to backport for pyro 
and morty.
Going forward we can use the update to 3.16 which allows to drop the majority 
of the patches we have
now and builds also with gold.

Max

> > 
> > Signed-off-by: Max Krummenacher <[email protected]>
> > ---
> >  meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb b/meta-oe/recipes
> > -navigation/gpsd/gpsd_3.14.bb
> > index 4d00fea6d..fb02f9598 100644
> > --- a/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb
> > +++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb
> > @@ -36,6 +36,8 @@ SYSTEMD_OESCONS = 
> > "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true',
> > 'f
> >  export STAGING_INCDIR
> >  export STAGING_LIBDIR
> > 
> > +LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' 
> > -fuse-ld=bfd ', '',
> > d)}"
> > +
> >  PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 
> > 'bluez', '', d)}"
> >  PACKAGECONFIG[bluez] = "bluez='true',bluez='false',${BLUEZ}"
> >  PACKAGECONFIG[qt] = "qt='yes',qt='no',qt4-x11-free"
> > --
> > 2.12.0
> > 
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > [email protected]
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
-- 
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to