sys-devel/gdb: Apply Flatcar modifications

- Fix cross build issues with configuring gmp libs

  As gdb 11 or newer requires gmp libs as dependency, a cross build of
  gdb 11.2 started to fail when its configure scripts try to detect if
  gmp exists.  The failure occurs mainly because the build still
  passes '-L/usr/lib64` to LDFLAGS. Let's say, for example, host
  toolchains outside of sysroot have amd64 libs, while the target
  inside of sysroot should have arm64 libs. However, configure scripts
  of gdb 11.2 still try to find its libs outside of sysroot,
  /usr/lib64, although it should find its libs inside of sysroot,
  e.g. /build/arm64/usr/lib64.

  To fix the cross build issues, pass --with-sysroot as well as
  --libdir, correctly with ${ESYSROOT}.

  As a side note, for some reason, upstream gdb configure scripts are
  not able to correctly make use of its gmp-specific options like
  --with-gmp or --with-gmp-lib. Passing those options does not bring
  anything.  Also configure must have both --with-sysroot and
  --libdir, to make the build work.

- Replace dependency on virtual/yacc with app-alternatives/yacc

  The former is gone in favor of the latter in Gentoo. This change
  will be dropped when we sync the package with Gentoo again.
This commit is contained in:
Dongsu Park 2022-06-13 14:39:19 +02:00 committed by Krzesimir Nowak
parent 1f88c934c0
commit eec5d85328

View File

@ -87,7 +87,7 @@ DEPEND="${RDEPEND}"
BDEPEND="
app-arch/xz-utils
sys-apps/texinfo
virtual/yacc
app-alternatives/yacc
nls? ( sys-devel/gettext )
source-highlight? ( virtual/pkgconfig )
test? ( dev-util/dejagnu )
@ -154,6 +154,15 @@ src_configure() {
# Ideally we would like automagic-or-disabled here.
# But the check does not quite work on i686: bug #760926.
$(use_enable cet)
# Flatcar: we need to set both configure options, --with-sysroot
# and --libdir, to fix cross build issues that happen when
# configuring gmp. We explicitly need --libdir. Having only
# --with-sysroot without --libdir would not fix the build issues.
# For some reason, it is not enough to set only --with-sysroot,
# also not enough to pass --with-gmp-xxx options.
--with-sysroot="${ESYSROOT}"
--libdir="${ESYSROOT}/usr/$(get_libdir)"
)
local sysroot="${EPREFIX}/usr/${CTARGET}"