public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug build/29372] New: slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'.  Stop.
@ 2022-07-15 21:07 orbea at riseup dot net
  2022-07-18 19:03 ` [Bug build/29372] " tromey at sourceware dot org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: orbea at riseup dot net @ 2022-07-15 21:07 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29372

            Bug ID: 29372
           Summary: slibtool build failure - make[2]: *** No rule to make
                    target '../bfd/libbfd.a', needed by 'gdb'.  Stop.
           Product: gdb
           Version: HEAD
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: build
          Assignee: unassigned at sourceware dot org
          Reporter: orbea at riseup dot net
  Target Milestone: ---

Created attachment 14213
  --> https://sourceware.org/bugzilla/attachment.cgi?id=14213&action=edit
Full Build Log

When building gdb with slibtool the build fails because '../bfd/libbfd.a' is
missing. This happens because of this earlier error.

  libtooldir=`rdlibtool --config | sed -n -e 's/^objdir=//p'`; \
  if [ -f $libtooldir/libopcodes.a ]; then \
    cp $libtooldir/libopcodes.a libopcodes.tmp; \
    x86_64-pc-linux-gnu-ranlib --plugin
/usr/libexec/gcc/x86_64-pc-linux-gnu/11.3.0/liblto_plugin.so libopcodes.tmp; \
    /bin/sh ./../move-if-change libopcodes.tmp libopcodes.a; \
  else true; fi
  rdlibtool: error: <compiler> is missing.

This is because of a hack as described in the code at 'bfd/Makefile.am'.

  # libtool will build .libs/libbfd.a.  We create libbfd.a in the build
  # directory so that we don't have to convert all the programs that use
  # libbfd.a simultaneously.  This is a hack which should be removed if
  # everything else starts using libtool.  FIXME.

https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=bfd/Makefile.am;h=670e0598f55f29f3d5db4ffa18e40dcbc390f977;hb=13c3e10f98ff9b89c12161e85bd576ea77460a83#l777

With slibtool --config works differently than with GNU libtool and peering into
the internal details for the libtool implementation is inherently not portable.
For example with slibtool I can get this output.

  $ slibtool --config gcc
  key             value                           annotation
  ---             -----                           ----------
  compiler        gcc                             
  target                                          
  host            x86_64-unknown-linux-gnu        native (cached in
ccenv/host.mk)
  flavor          linux                           derived from <host>
  ar              gcc-ar                          derived from <host>
  ranlib          x86_64-unknown-linux-gnu-ranlib derived from <host>
  windres                                         not applicable
  dlltool                                         not applicable
  mdso                                            not applicable

Is there anything that can be done to remove this hack so that both slibtool
and GNU libtool can be used to build gdb? This build system is intimidating for
someone not familiar with gdb.

Also please see this Gentoo issue where it was first reported:
https://bugs.gentoo.org/792969

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug build/29372] slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'.  Stop.
  2022-07-15 21:07 [Bug build/29372] New: slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'. Stop orbea at riseup dot net
@ 2022-07-18 19:03 ` tromey at sourceware dot org
  2022-07-20  2:38 ` orbea at riseup dot net
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: tromey at sourceware dot org @ 2022-07-18 19:03 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29372

Tom Tromey <tromey at sourceware dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tromey at sourceware dot org

--- Comment #1 from Tom Tromey <tromey at sourceware dot org> ---
I don't know anything about slibtool, but it sounds like
maybe the provided build system is being modified to work
with it?

gdb doesn't use libtool for linking but does seem to use
the workaround:

BFD_DIR = ../bfd
BFD = $(BFD_DIR)/libbfd.a

Changing gdb to use libtool for linking seems fine to me,
as long as it doesn't slow down the whole build somehow.
You may have to find all the subdirectories relying on this hack.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug build/29372] slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'.  Stop.
  2022-07-15 21:07 [Bug build/29372] New: slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'. Stop orbea at riseup dot net
  2022-07-18 19:03 ` [Bug build/29372] " tromey at sourceware dot org
@ 2022-07-20  2:38 ` orbea at riseup dot net
  2022-07-20  2:45 ` orbea at riseup dot net
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: orbea at riseup dot net @ 2022-07-20  2:38 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29372

--- Comment #2 from orbea <orbea at riseup dot net> ---
Created attachment 14223
  --> https://sourceware.org/bugzilla/attachment.cgi?id=14223&action=edit
Patch to fix the gdb build with slibtool

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug build/29372] slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'.  Stop.
  2022-07-15 21:07 [Bug build/29372] New: slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'. Stop orbea at riseup dot net
  2022-07-18 19:03 ` [Bug build/29372] " tromey at sourceware dot org
  2022-07-20  2:38 ` orbea at riseup dot net
@ 2022-07-20  2:45 ` orbea at riseup dot net
  2022-11-05  5:51 ` sam at gentoo dot org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: orbea at riseup dot net @ 2022-07-20  2:45 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29372

--- Comment #3 from orbea <orbea at riseup dot net> ---
> I don't know anything about slibtool, but it sounds like
> maybe the provided build system is being modified to work
> with it?
slibtool (https://dev.midipix.org/cross/slibtool) is an alternate libtool
implementation written in c99 which intends to be a minimal, readable and
maintainable code base. It has a few edge cases left, but it works almost
everywhere that libtool is used with the caveat that are numerous programs that
depend on one more GNU libtool bug. For example a common issue is where GNU
libtool silently ignores -no-undefined while slibtool does not do this which
will fail if there are hidden undefined references. However most issues are now
fixed in gentoo, see: https://bugs.gentoo.org/765709

It can be tested by exporting MAKEFLAGS and/or MAKE in the environment:

  export MAKEFLAGS='LIBTOOL=rlibtool'
  export MAKE='make LIBTOOL=rlibtool'

Most build systems just need MAKEFLAGS to be set, but some will drop MAKEFLAGS
during the build due to uses of recursive make(1). This is where setting MAKE
is also important.

> Changing gdb to use libtool for linking seems fine to me,
> as long as it doesn't slow down the whole build somehow.
> You may have to find all the subdirectories relying on this hack.
It actually might be that simple to just link with libtool, at least to get the
build to complete on my system. I attached a patch that does that for the gdb/
directory which seems to be the only place I need to modify.

I don't think it should make a huge impact on the build time, but fwiw slibtool
is significantly faster than GNU libtool.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug build/29372] slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'.  Stop.
  2022-07-15 21:07 [Bug build/29372] New: slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'. Stop orbea at riseup dot net
                   ` (2 preceding siblings ...)
  2022-07-20  2:45 ` orbea at riseup dot net
@ 2022-11-05  5:51 ` sam at gentoo dot org
  2022-11-05  8:26 ` vapier at gentoo dot org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: sam at gentoo dot org @ 2022-11-05  5:51 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29372

Sam James <sam at gentoo dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sam at gentoo dot org,
                   |                            |vapier at gentoo dot org

--- Comment #4 from Sam James <sam at gentoo dot org> ---
CCing vapier@ in case he's got any expertise to share here as one of the build
system folks.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug build/29372] slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'.  Stop.
  2022-07-15 21:07 [Bug build/29372] New: slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'. Stop orbea at riseup dot net
                   ` (3 preceding siblings ...)
  2022-11-05  5:51 ` sam at gentoo dot org
@ 2022-11-05  8:26 ` vapier at gentoo dot org
  2022-11-06  2:51 ` [Bug build/29372] build failure when using slibtool to replace libtool " vapier at gentoo dot org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: vapier at gentoo dot org @ 2022-11-05  8:26 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29372

--- Comment #5 from Mike Frysinger <vapier at gentoo dot org> ---
there's a discussion ongoing right now wrt libtoolizing gdb where i'm pushing
on people to do it preciously so they don't go snooping into libtool .lib/
state (although it's not about slibtool, just a general "that's not libtool
ABI").

however, we don't take patches via bugzilla.  you need to post them to the
gdb-patches@ mailing list for someone to review+approve.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug build/29372] build failure when using slibtool to replace libtool - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'.  Stop.
  2022-07-15 21:07 [Bug build/29372] New: slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'. Stop orbea at riseup dot net
                   ` (4 preceding siblings ...)
  2022-11-05  8:26 ` vapier at gentoo dot org
@ 2022-11-06  2:51 ` vapier at gentoo dot org
  2022-11-08 21:59 ` tromey at sourceware dot org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: vapier at gentoo dot org @ 2022-11-06  2:51 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29372

Mike Frysinger <vapier at gentoo dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|slibtool build failure -    |build failure when using
                   |make[2]: *** No rule to     |slibtool to replace libtool
                   |make target                 |- make[2]: *** No rule to
                   |'../bfd/libbfd.a', needed   |make target
                   |by 'gdb'.  Stop.            |'../bfd/libbfd.a', needed
                   |                            |by 'gdb'.  Stop.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug build/29372] build failure when using slibtool to replace libtool - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'.  Stop.
  2022-07-15 21:07 [Bug build/29372] New: slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'. Stop orbea at riseup dot net
                   ` (5 preceding siblings ...)
  2022-11-06  2:51 ` [Bug build/29372] build failure when using slibtool to replace libtool " vapier at gentoo dot org
@ 2022-11-08 21:59 ` tromey at sourceware dot org
  2022-11-08 22:45 ` orbea at riseup dot net
  2022-11-09  2:21 ` tromey at sourceware dot org
  8 siblings, 0 replies; 10+ messages in thread
From: tromey at sourceware dot org @ 2022-11-08 21:59 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29372

--- Comment #6 from Tom Tromey <tromey at sourceware dot org> ---
git master uses libtool to link gdb now, so can this bug be closed?

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug build/29372] build failure when using slibtool to replace libtool - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'.  Stop.
  2022-07-15 21:07 [Bug build/29372] New: slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'. Stop orbea at riseup dot net
                   ` (6 preceding siblings ...)
  2022-11-08 21:59 ` tromey at sourceware dot org
@ 2022-11-08 22:45 ` orbea at riseup dot net
  2022-11-09  2:21 ` tromey at sourceware dot org
  8 siblings, 0 replies; 10+ messages in thread
From: orbea at riseup dot net @ 2022-11-08 22:45 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29372

orbea <orbea at riseup dot net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #7 from orbea <orbea at riseup dot net> ---
Yes, I can confirm with commit b142a9f83f56fbbc1c9fe45f2ea19cd11db2795 this now
builds using slibtool.

https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=2b142a9f83f56fbbc1c9fe45f2ea19cd11db2795

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug build/29372] build failure when using slibtool to replace libtool - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'.  Stop.
  2022-07-15 21:07 [Bug build/29372] New: slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'. Stop orbea at riseup dot net
                   ` (7 preceding siblings ...)
  2022-11-08 22:45 ` orbea at riseup dot net
@ 2022-11-09  2:21 ` tromey at sourceware dot org
  8 siblings, 0 replies; 10+ messages in thread
From: tromey at sourceware dot org @ 2022-11-09  2:21 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29372

Tom Tromey <tromey at sourceware dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |13.1

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-11-09  2:21 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-15 21:07 [Bug build/29372] New: slibtool build failure - make[2]: *** No rule to make target '../bfd/libbfd.a', needed by 'gdb'. Stop orbea at riseup dot net
2022-07-18 19:03 ` [Bug build/29372] " tromey at sourceware dot org
2022-07-20  2:38 ` orbea at riseup dot net
2022-07-20  2:45 ` orbea at riseup dot net
2022-11-05  5:51 ` sam at gentoo dot org
2022-11-05  8:26 ` vapier at gentoo dot org
2022-11-06  2:51 ` [Bug build/29372] build failure when using slibtool to replace libtool " vapier at gentoo dot org
2022-11-08 21:59 ` tromey at sourceware dot org
2022-11-08 22:45 ` orbea at riseup dot net
2022-11-09  2:21 ` tromey at sourceware dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).