public inbox for insight@sourceware.org
 help / color / mirror / Atom feed
* Error while "make all": "make[2]: *** No rule to make target `/libreadline.a', needed by `gdb'. Stop."
       [not found] <CAA6dH30n=i40xuuAFxcwZzKHpLHcEP2J5GOr+03hb5B0qJ+vTw@mail.gmail.com>
@ 2012-05-24 22:45 ` David Fernandez
  2012-05-24 23:11   ` Keith Seitz
  0 siblings, 1 reply; 8+ messages in thread
From: David Fernandez @ 2012-05-24 22:45 UTC (permalink / raw)
  To: insight

Hi there,

Could you tell what is the problem?

uname -a: Linux localhost.localdomain 3.3.6-3.fc16.i686.PAE #1 SMP Wed
May 16 22:18:40 UTC 2012 i686 i686 i386 GNU/Linux

I get the sources by doing:
yumdownloader --source insight
rpm -i insight-7.4.50-1.20120403cvs.fc16.src.rpm
cd ~/rpmbuild/SPECS; rpmbuild -bp insight.spec
cd ~/rpmbuild/BUILDROOT/arm-eabi/insight-7.4.50
~/rpmbuild/BUILD/insight-7.4.50/configure --target=arm-eabi -v 2>&1 |
tee configure.out
make -w all 2>&1 | tee make.out

I've tried to attach the ".out" files (on their own or as a .zip) but
seems that the message doe not make it to the list for some reason so
here is a little fragment at the end of make output (let me know any
good way for you to post those files):

gcc -g -O2   -I. -I../../../../BUILD/insight-7.4.50/gdb
-I../../../../BUILD/insight-7.4.50/gdb/common
-I../../../../BUILD/insight-7.4.50/gdb/config
-DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H
-I../../../../BUILD/insight-7.4.50/gdb/../include/opcode
-I../../../../BUILD/insight-7.4.50/gdb/../opcodes/..
-I@READLINE_SRC@/.. -I../bfd
-I../../../../BUILD/insight-7.4.50/gdb/../bfd
-I../../../../BUILD/insight-7.4.50/gdb/../include -I../libdecnumber
-I../../../../BUILD/insight-7.4.50/gdb/../libdecnumber
-I../../../../BUILD/insight-7.4.50/gdb/gnulib -Ignulib   -DTUI=1
-DGDBTK -I/usr/include/python2.7 -I/usr/include/python2.7 -Wall
-Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral
-Wno-pointer-sign -Wno-unused -Wunused-value -Wunused-function
-Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Werror -c -o
inflow.o -MT inflow.o -MMD -MP -MF .deps/inflow.Tpo
../../../../BUILD/insight-7.4.50/gdb/inflow.c
Making init.c
gcc -g -O2   -I. -I../../../../BUILD/insight-7.4.50/gdb
-I../../../../BUILD/insight-7.4.50/gdb/common
-I../../../../BUILD/insight-7.4.50/gdb/config
-DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H
-I../../../../BUILD/insight-7.4.50/gdb/../include/opcode
-I../../../../BUILD/insight-7.4.50/gdb/../opcodes/..
-I@READLINE_SRC@/.. -I../bfd
-I../../../../BUILD/insight-7.4.50/gdb/../bfd
-I../../../../BUILD/insight-7.4.50/gdb/../include -I../libdecnumber
-I../../../../BUILD/insight-7.4.50/gdb/../libdecnumber
-I../../../../BUILD/insight-7.4.50/gdb/gnulib -Ignulib   -DTUI=1
-DGDBTK -I/usr/include/python2.7 -I/usr/include/python2.7 -Wall
-Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral
-Wno-pointer-sign -Wno-unused -Wunused-value -Wunused-function
-Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Werror -c -o
init.o -MT init.o -MMD -MP -MF .deps/init.Tpo init.c
make[2]: *** No rule to make target `/libreadline.a', needed by `gdb'.  Stop.
make[2]: Leaving directory
`/home/davidfc/rpmbuild/BUILDROOT/arm-eabi/insight-7.4.50/gdb'
make[1]: *** [all-gdb] Error 2
make[1]: Leaving directory
`/home/davidfc/rpmbuild/BUILDROOT/arm-eabi/insight-7.4.50'
make: *** [all] Error 2
make: Leaving directory
`/home/davidfc/rpmbuild/BUILDROOT/arm-eabi/insight-7.4.50'


The same thing happens with insight-6.8-1 (after adding CFLAGS="-g -O2
-Wno-error=set-but-unused-variable" to avoid a few benign errors).

Cheers

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

* Re: Error while "make all": "make[2]: *** No rule to make target `/libreadline.a', needed by `gdb'. Stop."
  2012-05-24 22:45 ` Error while "make all": "make[2]: *** No rule to make target `/libreadline.a', needed by `gdb'. Stop." David Fernandez
@ 2012-05-24 23:11   ` Keith Seitz
  2012-05-25 22:11     ` David Fernandez
  2012-05-29 12:48     ` Patrick Monnerat
  0 siblings, 2 replies; 8+ messages in thread
From: Keith Seitz @ 2012-05-24 23:11 UTC (permalink / raw)
  To: David Fernandez; +Cc: insight

On 05/24/2012 03:45 PM, David Fernandez wrote:

> I get the sources by doing:
> yumdownloader --source insight
> rpm -i insight-7.4.50-1.20120403cvs.fc16.src.rpm
> cd ~/rpmbuild/SPECS; rpmbuild -bp insight.spec
> cd ~/rpmbuild/BUILDROOT/arm-eabi/insight-7.4.50
> ~/rpmbuild/BUILD/insight-7.4.50/configure --target=arm-eabi -v 2>&1 |
> tee configure.out
> make -w all 2>&1 | tee make.out

Zowie. Until recently, I didn't even know that Insight was in fedora! 
[cough]

> gcc -g -O2   -I. -I../../../../BUILD/insight-7.4.50/gdb
> -I../../../../BUILD/insight-7.4.50/gdb/common
> -I../../../../BUILD/insight-7.4.50/gdb/config
> -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H
> -I../../../../BUILD/insight-7.4.50/gdb/../include/opcode
> -I../../../../BUILD/insight-7.4.50/gdb/../opcodes/..
> -I@READLINE_SRC@/.. -I../bfd
   ^^^^^^^^^^^^^^^^

This is the problem. readline-devel is probably not installed on your 
system. Have you tried passing "--resolve" to yumdownloader to also 
download any dependencies?

Looking through the 6.8 rpm (I'm on F15 right now), I see that it does 
not list all the build requirements for gdb. I would recommend you 
download/install the corresponding gdb sources (and deps). If you can 
build the gdb RPM, then all the necessary "hidden" requirements are 
present to build insight. All you then might be missing are the insight 
deps. I'll see if I can't check out the latest insight RPM and get it fixed.

> The same thing happens with insight-6.8-1 (after adding CFLAGS="-g -O2
> -Wno-error=set-but-unused-variable" to avoid a few benign errors).

Eew. 6.8-1 is based on a version gdb that somewhere near four years old. 
That spec file is obviously really, really wrong in many ways. [It also 
includes a private copy of tcl, tk, itcl, etc. This is no longer a 
requirement. The sources now look for system-installed versions. (hint: 
install tcl, tk, itcl, itk, iwidgets, itcl-devel, tcl-devel, tk-devel)]

Keith

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

* Re: Error while "make all": "make[2]: *** No rule to make target `/libreadline.a', needed by `gdb'. Stop."
  2012-05-24 23:11   ` Keith Seitz
@ 2012-05-25 22:11     ` David Fernandez
  2012-05-27  6:19       ` Gene Smith
  2012-05-29 12:48     ` Patrick Monnerat
  1 sibling, 1 reply; 8+ messages in thread
From: David Fernandez @ 2012-05-25 22:11 UTC (permalink / raw)
  To: Keith Seitz; +Cc: insight

Hi Keith,

On Fri, May 25, 2012 at 12:10 AM, Keith Seitz <keiths@redhat.com> wrote:
> On 05/24/2012 03:45 PM, David Fernandez wrote:
>
>> I get the sources by doing:
>> yumdownloader --source insight
>> rpm -i insight-7.4.50-1.20120403cvs.fc16.src.rpm
>> cd ~/rpmbuild/SPECS; rpmbuild -bp insight.spec
>> cd ~/rpmbuild/BUILDROOT/arm-eabi/insight-7.4.50
>> ~/rpmbuild/BUILD/insight-7.4.50/configure --target=arm-eabi -v 2>&1 |
>> tee configure.out
>> make -w all 2>&1 | tee make.out
>
>
> Zowie. Until recently, I didn't even know that Insight was in fedora!
> [cough]
>

Yes, you are in Fedora 15 (6.8-1), and 16 (7.4.50)


>> gcc -g -O2   -I. -I../../../../BUILD/insight-7.4.50/gdb
>> -I../../../../BUILD/insight-7.4.50/gdb/common
>> -I../../../../BUILD/insight-7.4.50/gdb/config
>> -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H
>> -I../../../../BUILD/insight-7.4.50/gdb/../include/opcode
>> -I../../../../BUILD/insight-7.4.50/gdb/../opcodes/..
>> -I@READLINE_SRC@/.. -I../bfd
>
>  ^^^^^^^^^^^^^^^^
>
> This is the problem. readline-devel is probably not installed on your
> system. Have you tried passing "--resolve" to yumdownloader to also download
> any dependencies?
>

I have readline-devel installed:

[root@localhost ~]# yum install readline-devel
Package readline-devel-6.2-2.fc16.i686 already installed and latest version
Nothing to do


> Looking through the 6.8 rpm (I'm on F15 right now), I see that it does not
> list all the build requirements for gdb. I would recommend you
> download/install the corresponding gdb sources (and deps). If you can build
> the gdb RPM, then all the necessary "hidden" requirements are present to
> build insight. All you then might be missing are the insight deps. I'll see
> if I can't check out the latest insight RPM and get it fixed.
>

I can build gdb-7.3.50.20110722-13.fc16 without problems.


>> The same thing happens with insight-6.8-1 (after adding CFLAGS="-g -O2
>> -Wno-error=set-but-unused-variable" to avoid a few benign errors).
>
>
> Eew. 6.8-1 is based on a version gdb that somewhere near four years old.
> That spec file is obviously really, really wrong in many ways. [It also
> includes a private copy of tcl, tk, itcl, etc. This is no longer a
> requirement. The sources now look for system-installed versions. (hint:
> install tcl, tk, itcl, itk, iwidgets, itcl-devel, tcl-devel, tk-devel)]
>

Yes, the src.rpm's require you to install all those before allowing
the "rpmbuild -bp"


So no idea what could be wrong.

Let me know if you need me to give you somo more info, or do some
quick test for you to find out.

Cheers

David.

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

* Re: Error while "make all": "make[2]: *** No rule to make target `/libreadline.a', needed by `gdb'. Stop."
  2012-05-25 22:11     ` David Fernandez
@ 2012-05-27  6:19       ` Gene Smith
  2012-05-27 18:49         ` David Fernandez
  0 siblings, 1 reply; 8+ messages in thread
From: Gene Smith @ 2012-05-27  6:19 UTC (permalink / raw)
  To: insight

David Fernandez wrote, On 05/25/2012 06:10 PM:
> Hi Keith,
>
> On Fri, May 25, 2012 at 12:10 AM, Keith Seitz<keiths@redhat.com>  wrote:
>> On 05/24/2012 03:45 PM, David Fernandez wrote:
>>
>>> I get the sources by doing:
>>> yumdownloader --source insight
>>> rpm -i insight-7.4.50-1.20120403cvs.fc16.src.rpm
>>> cd ~/rpmbuild/SPECS; rpmbuild -bp insight.spec
>>> cd ~/rpmbuild/BUILDROOT/arm-eabi/insight-7.4.50

Actually cd ~/rpmbuild/BUILDROOT
	 mkdir -p arm-eabi/insight-7.4.50
	 cd arm-eabi/insight-7.4.50

>>> ~/rpmbuild/BUILD/insight-7.4.50/configure --target=arm-eabi -v 2>&1 |
>>> tee configure.out

I see the same error. Doing this instead allows it to build as is:
~/rpmbuild/BUILD/insight-7.4.50/configure --with-system-readline 
--target=arm-eabi -v 2>&1 | tee configure.out

The problem is that one of the patches to gdb/Makefile takes out the 
path to readline.
If I put it back in it also works w/o the --with-system-readline:
Remove last patch from 
rpmbuild/SOURCES/insight-7.4.50-readline-system.patch.

Are you trying to build an RPM for arm-eabi? I've never built an RPM (or 
maybe once long ago)
so what is the next step? "make install" ?? I use insight with embedded 
arm-eabi constantly but
have made my own custom version that works well from a CVS snapshot and 
codesourery's gdb source.

-gene

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

* Re: Re: Error while "make all": "make[2]: *** No rule to make target `/libreadline.a', needed by `gdb'. Stop."
  2012-05-27  6:19       ` Gene Smith
@ 2012-05-27 18:49         ` David Fernandez
  2012-05-28  3:25           ` Gene Smith
  0 siblings, 1 reply; 8+ messages in thread
From: David Fernandez @ 2012-05-27 18:49 UTC (permalink / raw)
  To: Gene Smith; +Cc: insight

On 27/05/12 07:19, Gene Smith wrote:
> David Fernandez wrote, On 05/25/2012 06:10 PM:
>> Hi Keith,
>>
>> On Fri, May 25, 2012 at 12:10 AM, Keith Seitz<keiths@redhat.com>  wrote:
>>> On 05/24/2012 03:45 PM, David Fernandez wrote:
>>>
>>>> I get the sources by doing:
>>>> yumdownloader --source insight
>>>> rpm -i insight-7.4.50-1.20120403cvs.fc16.src.rpm
>>>> cd ~/rpmbuild/SPECS; rpmbuild -bp insight.spec
>>>> cd ~/rpmbuild/BUILDROOT/arm-eabi/insight-7.4.50
>
> Actually cd ~/rpmbuild/BUILDROOT
>      mkdir -p arm-eabi/insight-7.4.50
>      cd arm-eabi/insight-7.4.50
>
Yes, right, I pretend that I had created the folder early on...
>>>> ~/rpmbuild/BUILD/insight-7.4.50/configure --target=arm-eabi -v 2>&1 |
>>>> tee configure.out
>
> I see the same error. Doing this instead allows it to build as is:
> ~/rpmbuild/BUILD/insight-7.4.50/configure --with-system-readline 
> --target=arm-eabi -v 2>&1 | tee configure.out
>
Excellent, it builds!
> The problem is that one of the patches to gdb/Makefile takes out the 
> path to readline.
> If I put it back in it also works w/o the --with-system-readline:
> Remove last patch from 
> rpmbuild/SOURCES/insight-7.4.50-readline-system.patch.
>
I'll go with the first solution, unless the system readline gives any 
problem... unless you are sure that something is wrong with it.
> Are you trying to build an RPM for arm-eabi? I've never built an RPM 
> (or maybe once long ago)
> so what is the next step? "make install" ?? I use insight with 
> embedded arm-eabi constantly but
> have made my own custom version that works well from a CVS snapshot 
> and codesourery's gdb source.
>
I was just building a toochain, that will require su -c 'make install' 
(or sudo make install if you have sudo configured, like in Ubuntu).

For a rpm, we would need to modify the SPEC file to build insight for 
arm-eabi, using --with-system-readline. Then doing rpmbuild --rebuild, 
and hopefully we will end with a binary rpm in RPMS folder.

The difficult thing is to compile gcc, that requires some more switches 
when configuring, and pehaps a stripped version of the C runtime 
library, more appropriate for embedded systems, like newlib. There is a 
good guide, other than these hitches for that in ecos.sourceware.org

Just one more thing that you guys might now by heart, but I forgot long 
ago... When running the installed arm-eabi-insight, I get the following:

ide_initialize_paths failed: Can't find the GUI Tcl library in the 
following directories:
     /usr/local/usr/share/insight/gui /usr/local/share/insight/gui 
/usr/share/insight/gui /usr/libgui/library /usr/src/libgui/library 
/usr/local/usr/share/insight/ide /usr/local/share/insight/ide 
/usr/share/insight/ide /usr/local/libide/library

Surely there is a funny TCL environment variable, or a funny tcl command 
to make sure that the programs find those things... Could you tell me 
which one is it that I'm missing?

Cheers

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

* Re: Error while "make all": "make[2]: *** No rule to make target `/libreadline.a', needed by `gdb'. Stop."
  2012-05-27 18:49         ` David Fernandez
@ 2012-05-28  3:25           ` Gene Smith
  0 siblings, 0 replies; 8+ messages in thread
From: Gene Smith @ 2012-05-28  3:25 UTC (permalink / raw)
  To: insight

David Fernandez wrote, On 05/27/2012 02:49 PM:
> On 27/05/12 07:19, Gene Smith wrote:
>> David Fernandez wrote, On 05/25/2012 06:10 PM:
>>> Hi Keith,
>>>
>>> On Fri, May 25, 2012 at 12:10 AM, Keith Seitz<keiths@redhat.com> wrote:
>>>> On 05/24/2012 03:45 PM, David Fernandez wrote:
>>>>
>>>>> I get the sources by doing:
>>>>> yumdownloader --source insight
>>>>> rpm -i insight-7.4.50-1.20120403cvs.fc16.src.rpm
>>>>> cd ~/rpmbuild/SPECS; rpmbuild -bp insight.spec
>>>>> cd ~/rpmbuild/BUILDROOT/arm-eabi/insight-7.4.50
>>
>> Actually cd ~/rpmbuild/BUILDROOT
>> mkdir -p arm-eabi/insight-7.4.50
>> cd arm-eabi/insight-7.4.50
>>
> Yes, right, I pretend that I had created the folder early on...
>>>>> ~/rpmbuild/BUILD/insight-7.4.50/configure --target=arm-eabi -v 2>&1 |
>>>>> tee configure.out
>>
>> I see the same error. Doing this instead allows it to build as is:
>> ~/rpmbuild/BUILD/insight-7.4.50/configure --with-system-readline
>> --target=arm-eabi -v 2>&1 | tee configure.out
>>
> Excellent, it builds!
>> The problem is that one of the patches to gdb/Makefile takes out the
>> path to readline.
>> If I put it back in it also works w/o the --with-system-readline:
>> Remove last patch from
>> rpmbuild/SOURCES/insight-7.4.50-readline-system.patch.
>>
> I'll go with the first solution, unless the system readline gives any
> problem... unless you are sure that something is wrong with it.

I doubt there is anything wrong with it. The spec file discards the 
insight included readline as well as all the tcl-tk stuff and just uses 
the system versions. But I have always used insight's readline since I 
didn't know there was an alternative.

>> Are you trying to build an RPM for arm-eabi? I've never built an RPM
>> (or maybe once long ago)
>> so what is the next step? "make install" ?? I use insight with
>> embedded arm-eabi constantly but
>> have made my own custom version that works well from a CVS snapshot
>> and codesourery's gdb source.
>>
> I was just building a toochain, that will require su -c 'make install'
> (or sudo make install if you have sudo configured, like in Ubuntu).
>
> For a rpm, we would need to modify the SPEC file to build insight for
> arm-eabi, using --with-system-readline. Then doing rpmbuild --rebuild,
> and hopefully we will end with a binary rpm in RPMS folder.

Yes, I tried that and it make rpm and srpm which installs and runs and 
"help" shows configured as target=arm-none-eabi as I entered in the spec 
file. The spec file seems to only use the --with-system-readline so it 
never sees the bug you ran into.

> The difficult thing is to compile gcc, that requires some more switches
> when configuring, and pehaps a stripped version of the C runtime
> library, more appropriate for embedded systems, like newlib. There is a
> good guide, other than these hitches for that in ecos.sourceware.org

You can also get a pre-build gcc version from Mentor/Codesourcery that 
that includes all the source and giant build file that you may have to 
adjust to build all the tools: gcc, gdb, newlib etc. It doesn't include 
insight however since they have moved to using Eclipse.

> Just one more thing that you guys might now by heart, but I forgot long
> ago... When running the installed arm-eabi-insight, I get the following:
>
> ide_initialize_paths failed: Can't find the GUI Tcl library in the
> following directories:
> /usr/local/usr/share/insight/gui /usr/local/share/insight/gui
> /usr/share/insight/gui /usr/libgui/library /usr/src/libgui/library
> /usr/local/usr/share/insight/ide /usr/local/share/insight/ide
> /usr/share/insight/ide /usr/local/libide/library
>
> Surely there is a funny TCL environment variable, or a funny tcl command
> to make sure that the programs find those things... Could you tell me
> which one is it that I'm missing?

This is how I typically configure w/o using the included tcl/tk. I think 
the various "--with-tcl=/usr/lib" may fix the error you see (may have to 
adjust the path).

../insight_sources/configure -v --quiet --prefix=$PREFIX \
    --target=arm-none-eabi --enable-interwork --enable-multilib \
    --with-gnu-ld --with-gnu-as --disable-werror \
    --with-tcl=/usr/lib --with-tk=/usr/lib --with-itcl=/usr/lib \
    --with-itclconfig=/usr/lib --with-itkconfig=/usr/lib

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

* RE: Error while "make all": "make[2]: *** No rule to make target `/libreadline.a', needed by `gdb'. Stop."
  2012-05-24 23:11   ` Keith Seitz
  2012-05-25 22:11     ` David Fernandez
@ 2012-05-29 12:48     ` Patrick Monnerat
  2012-05-29 22:52       ` David Fernandez
  1 sibling, 1 reply; 8+ messages in thread
From: Patrick Monnerat @ 2012-05-29 12:48 UTC (permalink / raw)
  To: Keith Seitz, David Fernandez; +Cc: insight

 
Keith Seitz wrote:
> On 05/24/2012 03:45 PM, David Fernandez wrote:

>> I get the sources by doing:
>> yumdownloader --source insight
>> rpm -i insight-7.4.50-1.20120403cvs.fc16.src.rpm
>> cd ~/rpmbuild/SPECS; rpmbuild -bp insight.spec cd 
>> ~/rpmbuild/BUILDROOT/arm-eabi/insight-7.4.50
>> ~/rpmbuild/BUILD/insight-7.4.50/configure --target=arm-eabi -v 2>&1 |

>> tee configure.out make -w all 2>&1 | tee make.out

> Zowie. Until recently, I didn't even know that Insight was in fedora! 
> [cough]

>> gcc -g -O2   -I. -I../../../../BUILD/insight-7.4.50/gdb
>> -I../../../../BUILD/insight-7.4.50/gdb/common
>> -I../../../../BUILD/insight-7.4.50/gdb/config
>> -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H 
>> -I../../../../BUILD/insight-7.4.50/gdb/../include/opcode
>> -I../../../../BUILD/insight-7.4.50/gdb/../opcodes/..
>> -I@READLINE_SRC@/.. -I../bfd
   ^^^^^^^^^^^^^^^^

Yes, this is the problem since readline has been unbundled by the spec
file. The "system-readline" patch is incomplete. However it DOES compile
for 32 and 64 bits architecture in Fedora Koji. Thanks for signaling
this problem: I'll probably fix it in a future release.

> Looking through the 6.8 rpm (I'm on F15 right now), I see that it does
not list all the build requirements for gdb. I would recommend you
download/install the corresponding gdb sources (and deps). If you can
build the gdb RPM, then all the necessary "hidden" requirements are
present to build insight. All you then might be missing are the insight
deps. I'll see if I can't check out the latest insight RPM and get it
fixed.

The 6.8 RPM spec is outdated for more than one reason: no additional
work will be made starting with this version.

>> The same thing happens with insight-6.8-1 (after adding CFLAGS="-g
-O2 
>> -Wno-error=set-but-unused-variable" to avoid a few benign errors).

> Eew. 6.8-1 is based on a version gdb that somewhere near four years
old. 
> That spec file is obviously really, really wrong in many ways. [It
also includes a private copy of tcl, tk, itcl, etc. This is no longer a
requirement. The sources now look for system-installed versions. (hint:
install tcl, tk, itcl, itk, iwidgets, itcl-devel, tcl-devel, tk-devel)]

It may be wrong today, not 4 years ago ! (BTW: why don't you release
another stable tarball?)

There were NO private copy of tcl/itcl/etc: the rule with Fedora
packaging is UNBUNDLING; there was a lot of work to achieve it and the
objects you think are private copies are just fixes to the 6.8 insight
code to adapt it to the newer version of system tcl/itcl,etc.

The makefiles modern configure/makefile self-adapts to system installed
libraries, but at the time of 6.8 writing, this was not the case.
In addition, if real unbundling was possible, one could delete the
bundled library directories before compiling without problem: this is
not the case.

Now that 6.8 is burried, let's talk about 7.4.50cvs: real unbundling (as
in the preceding paragraph) is still not possible: there are references
to the library directories even if you use system-installed versions;
the spec file deletes the bundle directories to force an error if any
references to them is performed.

The --with-system-readline flag is unconditionally passed to ./configure
The spec file is perfectly well formed according to the Fedora packaging
guidelines. In particular, the build requirements are fully compatible
with the Fedora mock/koji environment.

To quickly build a non-official insight package, just remove the
"readline-system" patch and suppress the deletion of the readline bundle
directory: please remember this solution is not acceptable for an
official Fedora package.


Now, remember the spec file is Fedora-specific, and not part of the
insight repository. In particular, this means:

- Spec file and rpm patches bugs should be reported using
https://bugzilla.redhat.com/ (as the spec maintainer, I'll be
immediately noticed of any insight package related activity).
- Hints/suggestions are welcomed, providing they respect the Fedora
packaging guidelines.
- Co-maintainers are welcomed, in particular for alternative
architectures (non-Intel, etc). There is already a maintainer for the
EPEL version, but he hasn't prepared the 7.50 version yet.
- If there's something precise I can do for alternative architecture
support in the spec file or Fedora-specific patches without breaking the
primary architecture builds, just ask.

But please remember I do not have the necessary infrastructure to test
your target cross-compilations, executions, etc. Thanks

Cheers,
Patrick

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

* Re: Error while "make all": "make[2]: *** No rule to make target `/libreadline.a', needed by `gdb'. Stop."
  2012-05-29 12:48     ` Patrick Monnerat
@ 2012-05-29 22:52       ` David Fernandez
  0 siblings, 0 replies; 8+ messages in thread
From: David Fernandez @ 2012-05-29 22:52 UTC (permalink / raw)
  To: Patrick Monnerat; +Cc: Keith Seitz, insight

Keith, Patrick,

I finally managed to compile it from 7.4.50 (6.8-1 ends not generating
the insight executable for some extrange reason) by following most of
the commands in the rpm spec file (including the unbundling and
reconfigurations).

Since you seem to work closely with Fedora, I'll point out that most
Fedora source rpms seem designed not to allow building a cross-target,
given their use of _target and _target_platform. I could only manage to
build a proper cross-target, using rpmbuild, for binutils-2.21.53.0.1
(which seems to give a few FAILS in the test suit for ARM by the way) by
using --define="binutils_target arm-eabi".

Doing the same for gcc seems a long task, but I guess it could be doable
for insight... I'll see if I can do that next week, and then I'll offer
you the results.

Cheers
David Fernandez


On 29/05/12 13:47, Patrick Monnerat wrote:
>  
> Keith Seitz wrote:
>> On 05/24/2012 03:45 PM, David Fernandez wrote:
>>> I get the sources by doing:
>>> yumdownloader --source insight
>>> rpm -i insight-7.4.50-1.20120403cvs.fc16.src.rpm
>>> cd ~/rpmbuild/SPECS; rpmbuild -bp insight.spec cd 
>>> ~/rpmbuild/BUILDROOT/arm-eabi/insight-7.4.50
>>> ~/rpmbuild/BUILD/insight-7.4.50/configure --target=arm-eabi -v 2>&1 |
>>> tee configure.out make -w all 2>&1 | tee make.out
>> Zowie. Until recently, I didn't even know that Insight was in fedora! 
>> [cough]
>>> gcc -g -O2   -I. -I../../../../BUILD/insight-7.4.50/gdb
>>> -I../../../../BUILD/insight-7.4.50/gdb/common
>>> -I../../../../BUILD/insight-7.4.50/gdb/config
>>> -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H 
>>> -I../../../../BUILD/insight-7.4.50/gdb/../include/opcode
>>> -I../../../../BUILD/insight-7.4.50/gdb/../opcodes/..
>>> -I@READLINE_SRC@/.. -I../bfd
>    ^^^^^^^^^^^^^^^^
>
> Yes, this is the problem since readline has been unbundled by the spec
> file. The "system-readline" patch is incomplete. However it DOES compile
> for 32 and 64 bits architecture in Fedora Koji. Thanks for signaling
> this problem: I'll probably fix it in a future release.
>
>> Looking through the 6.8 rpm (I'm on F15 right now), I see that it does
> not list all the build requirements for gdb. I would recommend you
> download/install the corresponding gdb sources (and deps). If you can
> build the gdb RPM, then all the necessary "hidden" requirements are
> present to build insight. All you then might be missing are the insight
> deps. I'll see if I can't check out the latest insight RPM and get it
> fixed.
>
> The 6.8 RPM spec is outdated for more than one reason: no additional
> work will be made starting with this version.
>
>>> The same thing happens with insight-6.8-1 (after adding CFLAGS="-g
> -O2 
>>> -Wno-error=set-but-unused-variable" to avoid a few benign errors).
>> Eew. 6.8-1 is based on a version gdb that somewhere near four years
> old. 
>> That spec file is obviously really, really wrong in many ways. [It
> also includes a private copy of tcl, tk, itcl, etc. This is no longer a
> requirement. The sources now look for system-installed versions. (hint:
> install tcl, tk, itcl, itk, iwidgets, itcl-devel, tcl-devel, tk-devel)]
>
> It may be wrong today, not 4 years ago ! (BTW: why don't you release
> another stable tarball?)
>
> There were NO private copy of tcl/itcl/etc: the rule with Fedora
> packaging is UNBUNDLING; there was a lot of work to achieve it and the
> objects you think are private copies are just fixes to the 6.8 insight
> code to adapt it to the newer version of system tcl/itcl,etc.
>
> The makefiles modern configure/makefile self-adapts to system installed
> libraries, but at the time of 6.8 writing, this was not the case.
> In addition, if real unbundling was possible, one could delete the
> bundled library directories before compiling without problem: this is
> not the case.
>
> Now that 6.8 is burried, let's talk about 7.4.50cvs: real unbundling (as
> in the preceding paragraph) is still not possible: there are references
> to the library directories even if you use system-installed versions;
> the spec file deletes the bundle directories to force an error if any
> references to them is performed.
>
> The --with-system-readline flag is unconditionally passed to ./configure
> The spec file is perfectly well formed according to the Fedora packaging
> guidelines. In particular, the build requirements are fully compatible
> with the Fedora mock/koji environment.
>
> To quickly build a non-official insight package, just remove the
> "readline-system" patch and suppress the deletion of the readline bundle
> directory: please remember this solution is not acceptable for an
> official Fedora package.
>
>
> Now, remember the spec file is Fedora-specific, and not part of the
> insight repository. In particular, this means:
>
> - Spec file and rpm patches bugs should be reported using
> https://bugzilla.redhat.com/ (as the spec maintainer, I'll be
> immediately noticed of any insight package related activity).
> - Hints/suggestions are welcomed, providing they respect the Fedora
> packaging guidelines.
> - Co-maintainers are welcomed, in particular for alternative
> architectures (non-Intel, etc). There is already a maintainer for the
> EPEL version, but he hasn't prepared the 7.50 version yet.
> - If there's something precise I can do for alternative architecture
> support in the spec file or Fedora-specific patches without breaking the
> primary architecture builds, just ask.
>
> But please remember I do not have the necessary infrastructure to test
> your target cross-compilations, executions, etc. Thanks
>
> Cheers,
> Patrick

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

end of thread, other threads:[~2012-05-29 22:52 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CAA6dH30n=i40xuuAFxcwZzKHpLHcEP2J5GOr+03hb5B0qJ+vTw@mail.gmail.com>
2012-05-24 22:45 ` Error while "make all": "make[2]: *** No rule to make target `/libreadline.a', needed by `gdb'. Stop." David Fernandez
2012-05-24 23:11   ` Keith Seitz
2012-05-25 22:11     ` David Fernandez
2012-05-27  6:19       ` Gene Smith
2012-05-27 18:49         ` David Fernandez
2012-05-28  3:25           ` Gene Smith
2012-05-29 12:48     ` Patrick Monnerat
2012-05-29 22:52       ` David Fernandez

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).