G-71
G-71

Reputation: 3682

How i can static build GDB from source?

I've download gdb-6.5.bz2.tar. Untar this file. I write: LDFLAGS=-static ./configure

but as a result i get a gdb, which require a so files, for instance: ncurses.so.5 libc.so.0 etc

How i can build statically ?

Upvotes: 15

Views: 19285

Answers (4)

Guyush
Guyush

Reputation: 21

I recently went through the hassle of compiling gdb-15.x and gdb-server-15.x for multiple architectures.

Whoever wants to use this newer version can download it at gdb-static

The repository also contains a compilation.md file describing the necessary steps in order to compile gdb/gdbserver statically (as of now).

gdb 15 contains vast improvements over the latest static gdb i could find online (8.3.1).

EDIT: The repository has been updated to support gdb-16.x

Upvotes: 2

Michael Goldshteyn
Michael Goldshteyn

Reputation: 74440

Both gcc and gdb disrespect the --enable-static flag which should be passed to configure, the correct way to do this is:

In the case of gdb 8.0, you have to also add the --disable-interprocess-agent to successfully build a static version:

mkdir build-gdb && cd build-gdb && ../configure --prefix=... --enable-static --disable-interprocess-agent ...

In the case of gcc 7.1, you have to also add the --disable-libcc1 to successfully build a static version:

mkdir build-gcc && cd build-gcc && ../configure --prefix=... --enable-static --disable-shared --disable-libcc1 ...

Upvotes: 9

Vijay Nag
Vijay Nag

Reputation: 87

You can use the following options for configure script to generate a static GDB executable:

./configure --prefix=<> --enable-static=yes && make && make install

Upvotes: 7

unwind
unwind

Reputation: 400029

This message seems to imply that the correct usage is

$ make LDFLAGS=-static

Which seems surprising. Unfortunately, it also says it fails to build, and there are no follow-ups. Still the message is from 1999 so everything might have changed, perhaps the proper way today is to do it your way.

Upvotes: 10

Related Questions