[Buildroot] gdb/binutils - two versions of libbfd installed
Peter Seiderer
ps.report at gmx.net
Thu Sep 14 09:31:39 UTC 2017
Hello Arnout,
> Gesendet: Mittwoch, 13. September 2017 um 23:28 Uhr
> Von: "Arnout Vandecappelle" <arnout at mind.be>
> An: "Peter Seiderer" <ps.report at gmx.net>, buildroot at buildroot.org
> Betreff: Re: [Buildroot] gdb/binutils - two versions of libbfd installed
>
>
>
> On 13-09-17 13:28, Peter Seiderer wrote:
> > BR2_BINUTILS_VERSION_2_29_X=y
> > BR2_BINUTILS_VERSION="2.29"
> > BR2_BINUTILS_EXTRA_CONFIG_OPTIONS=""
> > BR2_PACKAGE_BINUTILS=y
> >
> > BR2_GDB_VERSION_8_0=y
> > BR2_GDB_VERSION="8.0"
> > BR2_PACKAGE_GDB_ARCH_SUPPORTS=y
> > BR2_PACKAGE_GDB=y
> > BR2_PACKAGE_GDB_SERVER=y
> > BR2_PACKAGE_GDB_DEBUGGER=y
> >
> > two versions of libbfd are installed into the target directory:
> >
> > ./target/usr/lib/libbfd-2.28.51.so
> > ./target/usr/lib/libbfd-2.29.so
> > ./target/usr/lib/libbfd.so -> libbfd-2.28.51.so
> >
> > one from gdb-8.0 (2.28.51) and one from the binutils-2.29 package (and
> > I believe the link from libbfd.so points to the wrong one).
> >
> > With the following patch (inspired by [1] found by search for
> > 'gdb disable dynamic libbfd build'):
> >
> > diff --git a/package/gdb/gdb.mk b/package/gdb/gdb.mk
> > index 7e86ba0..8c4188b 100644
> > --- a/package/gdb/gdb.mk
> > +++ b/package/gdb/gdb.mk
> > @@ -111,7 +111,7 @@ GDB_CONF_OPTS = \
> > --with-curses \
> > --without-included-gettext \
> > --disable-werror \
> > - --enable-static
> > + --enable-static --disable-shared
> >
> > # When gdb is built as C++ application for ARC it segfaults at runtime
> > # So we pass --disable-build-with-cxx config option to force gdb not to
> >
> > the installation of the gdb libbfd version is prevented...
>
> The usual approach would be something like
>
> ifeq ($(BR2_PACKAGE_BINUTILS),y)
> GDB_DEPENDENCIES += binutils
> GDB_CONF_OPTS += ... whatever is needed to make sure it uses binutils libbfd
> endif
>
> Is that an option?
>
No, I think gdb uses the bundled libbfd to avoid version problems (and I did
not find a option for using the system version).
So to get the right libbfd.so link binutils should depend on gdb, not a very
nice option...
Additional gdb/gdbserver link against the static libbfd.a, I believe the installation
of the dynamic libbfd.so version is by mistake/unneeded and I would like to avoid it,
see the ld output without my patch:
$ LD_TRACE_LOADED_OBJECTS=1 gdb
linux-vdso.so.1 (0x7ed0f000)
libdl.so.2 => /lib/libdl.so.2 (0x76f65000)
libncurses.so.6 => /usr/lib/libncurses.so.6 (0x76f16000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0x76ede000)
libm.so.6 => /lib/libm.so.6 (0x76e5b000)
libc.so.6 => /lib/libc.so.6 (0x76d1e000)
/lib/ld-linux-armhf.so.3 (0x76f78000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x76cf1000)
$ LD_TRACE_LOADED_OBJECTS=1 gdbserver
linux-vdso.so.1 (0x7edec000)
libdl.so.2 => /lib/libdl.so.2 (0x76f8d000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x76e35000)
libm.so.6 => /lib/libm.so.6 (0x76db2000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x76d85000)
libc.so.6 => /lib/libc.so.6 (0x76c48000)
/lib/ld-linux-armhf.so.3 (0x76fa0000)
Regards,
Peter
> Regards,
> Arnout
>
>
> --
> Arnout Vandecappelle arnout at mind be
> Senior Embedded Software Architect +32-16-286500
> Essensium/Mind http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
More information about the buildroot
mailing list