Native GDB for i686-w64-mingw32 toolchain

Submitted by Matthias Weißer on Nov. 17, 2015, 6:39 p.m.

Details

Message ID CAO8h3eG3DGde8tDwcgX3aPDAopkrkjFXYzL39Quo=N0tquVvFw@mail.gmail.com
State New
Headers show

Commit Message

Matthias Weißer Nov. 17, 2015, 6:39 p.m.
2015-11-17 17:19 GMT+01:00 Bryan Hundven <bryanhundven@gmail.com>:
> The build failure is happening with native-gdb, not cross-gdb, correct?

Right.

> So native=build, not target or host.

Wrong. It seems to me that "Native gdb" in crosstools-ng context
means a gdb that runs on the target system. See also the help
text in config/debug/gdb.in.native

"Build and install a native gdb for the target, to run on the target."

And actually this step creates a file named gdb.exe which makes
me even more confident that this is a gdb to run on the target ;-)

Where cross gdb means

"Build and install a cross-gdb for the target, to run on host."

> Since it is on the build system, the build system should provide
> libexpat development files.

So, as it is a gdb that should run on the target it needs an expat
library build for the target. And crosstools-ng builds and installs
such a variant. But gdb configure fails to find it.

I got a private message from Thomas Tamandl which lead me
to a solution:



If you think this is a working solution (for me it is) feel free to merge it.

The only problem left is then that striping the gdbserver executable fails
in internals.sh as its name contains .exe

> P.S. Please don't top post.

Outlook disease ;-) Sorry.

Regards
Matthias

--
For unsubscribe information see http://sourceware.org/lists.html#faq

Comments

Bryan Hundven Nov. 17, 2015, 7:53 p.m.
On Tue, Nov 17, 2015 at 07:39:16PM +0100, Matthias Weißer wrote:
> 2015-11-17 17:19 GMT+01:00 Bryan Hundven <bryanhundven@gmail.com>:
> > The build failure is happening with native-gdb, not cross-gdb, correct?
> 
> Right.
> 
> > So native=build, not target or host.
> 
> Wrong. It seems to me that "Native gdb" in crosstools-ng context
> means a gdb that runs on the target system. See also the help
> text in config/debug/gdb.in.native
> 
> "Build and install a native gdb for the target, to run on the target."
> 
> And actually this step creates a file named gdb.exe which makes
> me even more confident that this is a gdb to run on the target ;-)
> 
> Where cross gdb means
> 
> "Build and install a cross-gdb for the target, to run on host."

I've been up all night mucking with other things, I got it backwards.

cross-gdb runs on the host (in cross it's the same as build), and native
is for the target. I forget that gdb is more confusing then the other
builds ;)

> > Since it is on the build system, the build system should provide
> > libexpat development files.
> 
> So, as it is a gdb that should run on the target it needs an expat
> library build for the target. And crosstools-ng builds and installs
> such a variant. But gdb configure fails to find it.
> 
> I got a private message from Thomas Tamandl which lead me
> to a solution:
> 
> diff --git a/scripts/build/debug/300-gdb.sh b/scripts/build/debug/300-gdb.sh
> index c025458..e577e33
> --- a/scripts/build/debug/300-gdb.sh
> +++ b/scripts/build/debug/300-gdb.sh
> @@ -198,6 +198,7 @@ do_debug_gdb_build() {
>              --target=${CT_TARGET}                       \
>              --prefix=/usr                               \
>              --with-build-sysroot="${CT_SYSROOT_DIR}"    \
> +            --with-libexpat-prefix="${CT_SYSROOT_DIR}/usr" \
>              --without-uiout                             \
>              --disable-tui                               \
>              --disable-gdbtk                             \
> 
> 
> If you think this is a working solution (for me it is) feel free to merge it.
> 
> The only problem left is then that striping the gdbserver executable fails
> in internals.sh as its name contains .exe

Ok, maybe I can get Ray, Yann D., or someone with a windows host to
check on the strip issue.

I think the `with-libexpat-prefix` fix is good, but if you do push a PR,
please align the back-slashes on the right.

> > P.S. Please don't top post.
> 
> Outlook disease ;-) Sorry.

It happens :)

-Bryan
Thomas Tamandl Nov. 18, 2015, 6:55 a.m.
>>>> Matthias Weißer <m.weisser.m@gmail.com> 17.11.2015 19:39 >>>
>2015-11-17 17:19 GMT+01:00 Bryan Hundven <bryanhundven@gmail.com>:
>> The build failure is happening with native-gdb, not cross-gdb,
correct?
>
>Right.
>
>> So native=build, not target or host.
>
>Wrong. It seems to me that "Native gdb" in crosstools-ng context
>means a gdb that runs on the target system. See also the help
>text in config/debug/gdb.in.native
>
>"Build and install a native gdb for the target, to run on the
target."
>
>And actually this step creates a file named gdb.exe which makes
>me even more confident that this is a gdb to run on the target ;-)
>
>Where cross gdb means
>
>"Build and install a cross-gdb for the target, to run on host."
>
>> Since it is on the build system, the build system should provide
>> libexpat development files.
>
>So, as it is a gdb that should run on the target it needs an expat
>library build for the target. And crosstools-ng builds and installs
>such a variant. But gdb configure fails to find it.
>
>I got a private message from Thomas Tamandl which lead me
>to a solution:
>
>diff --git a/scripts/build/debug/300-gdb.sh
b/scripts/build/debug/300-gdb.sh
>index c025458..e577e33
>--- a/scripts/build/debug/300-gdb.sh
>+++ b/scripts/build/debug/300-gdb.sh
>@@ -198,6 +198,7 @@ do_debug_gdb_build() {
>             --target=${CT_TARGET}                       \
>             --prefix=/usr                               \
>             --with-build-sysroot="${CT_SYSROOT_DIR}"    \
>+            --with-libexpat-prefix="${CT_SYSROOT_DIR}/usr" \
>             --without-uiout                             \
>             --disable-tui                               \
>             --disable-gdbtk                             \
>
>
>If you think this is a working solution (for me it is) feel free to
merge it.

>The only problem left is then that striping the gdbserver executable
fails
>in internals.sh as its name contains .exe
>
>> P.S. Please don't top post.
>
>Outlook disease ;-) Sorry.
>
>Regards
>Matthias
>

Hi,

the message should not be private. Seems that I need a short "How to
use a Mailinglist" ;-) too. 

As I am also facing a new bild run an I don't want to have the same
troubles : Your solution is much more smarter than my old one (
https://sourceware.org/ml/crossgcc/2015-04/msg00008.html  ). Is there
already more support form the 300-gdb script or didn't I find the easy
solution? Anything else worked out of the box?

Regards
Thomas

------------------------------------------------------------
Wittmann Kunststoffgeraete Ges.m.b.H.
A-1220  Wien
Geschaeftsfuehrer: Dr. Werner Wittmann
FN 101312p, Handelsgericht Wien
-------------------------------------------------------------

------------------------------------------------------------
This e-mail message has been scanned for Viruses and Content
------------------------------------------------------------

--
For unsubscribe information see http://sourceware.org/lists.html#faq
Matthias Weißer Nov. 18, 2015, 7:06 a.m.
2015-11-18 7:55 GMT+01:00 Thomas Tamandl <Thomas.Tamandl@wittmann-group.com>:
> Hi,
>
> the message should not be private. Seems that I need a short "How to
> use a Mailinglist" ;-) too.

:-)

> As I am also facing a new bild run an I don't want to have the same
> troubles : Your solution is much more smarter than my old one (
> https://sourceware.org/ml/crossgcc/2015-04/msg00008.html  ). Is there
> already more support form the 300-gdb script or didn't I find the easy
> solution? Anything else worked out of the box?

expat has recently be added as companion library. So it was an relatively
easy task to add a search path to the gdb script. I opened a pull request
(https://github.com/crosstool-ng/crosstool-ng/pull/273) and there seems
to be a solution to this problem by installing expat to the "right" location.

Matthias

--
For unsubscribe information see http://sourceware.org/lists.html#faq

Patch hide | download patch | download mbox

diff --git a/scripts/build/debug/300-gdb.sh b/scripts/build/debug/300-gdb.sh
index c025458..e577e33
--- a/scripts/build/debug/300-gdb.sh
+++ b/scripts/build/debug/300-gdb.sh
@@ -198,6 +198,7 @@  do_debug_gdb_build() {
             --target=${CT_TARGET}                       \
             --prefix=/usr                               \
             --with-build-sysroot="${CT_SYSROOT_DIR}"    \
+            --with-libexpat-prefix="${CT_SYSROOT_DIR}/usr" \
             --without-uiout                             \
             --disable-tui                               \
             --disable-gdbtk                             \