gdb/head build, --with-python=<path to working python> FAILs @ "no usable python found " ?

Christian Biesinger cbiesinger@google.com
Wed Mar 25 22:55:29 GMT 2020


On Wed, Mar 25, 2020 at 5:51 PM PGNet Dev <pgnet.dev@gmail.com> wrote:
>
> On 3/25/20 3:24 PM, Christian Biesinger wrote:
> > GDB uses basically this commandline to find the linker flags:
> > python3.8 ./gdb/python-config.py --ldflags
>
> just checking, that's just a typo right? not expected in config/source at that path?
>
> this
>
>         ./gdb/python-config.py
>
> does not exist.
>
> rather
>
>         find . | Grep python-config
>                 ./gdb/python/python-config.py
>
> that, from shell in the env that the build occurs,
>
>         cd src/binutils-gdb
>         python3.8 ./gdb/python/python-config.py --ldflags
>
> correctly returns
>
>         -lpython3.8 -lcrypt -lpthread -ldl -lutil -lm -lm -Xlinker -export-dynamic
>
> which should be fine for LDFLAGS

Sorry, yes, that one. Well it's not fine because it still needs an
-L/usr/local/pyenv/versions/3.8-dev/lib option too...

>
> > or pass LDFLAGS=/usr/local/pyenv/versions/3.8-dev/lib/ to configure.
>
> using usual '-L/path' var

Sorry, yes, forgot the -L.

>
>         export LDFLAGS="-L/usr/local/pyenv/versions/3.8-dev/lib"
> (does this^ need to be rpath'd?  need to poke around in here ...)

If you can run python3.8, you probably already set things up correctly for that?

>
>         ./configure \
>          --prefix=/usr/local/gdb-test \
>          --with-python=/usr/local/pyenv/versions/3.8-dev
>         make V=1
>
> _does_ seem to get past the 'python unfound' problem, dropping me into the next issue ... which seems unrelated

Yeah. Unfortunately I have no idea about that error, hopefully someone
else can comment.

>
>         ...
>         /usr/bin/g++-10  -O3 -Wall -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fmessage-length=0 -grecord-gcc-switches -march=native -mtune=native -std=c++17    -I. -I. -I./../gdb/regformats -I./.. -I./../include -I./../gdb -I./../gnulib/import -I../gnulib/import -I./.. -I..  -O3 -Wall -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fmessage-length=0 -grecord-gcc-switches -march=native -mtune=native -D_FORTIFY_SOURCE=2 -pthread -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-variable -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-error=maybe-uninitialized -Wno-mismatched-tags -Wsuggest-override -Wimplicit-fallthrough=3 -Wduplicated-cond -Wshadow=local -Wdeprecated-copy -Wdeprecated-copy-dtor -Wredundant-move -Wmissing-declarations -Wstrict-null-sentinel -Wformat -Wformat-nonliteral -Werror -DGDBSERVER -c -o linux-low.o -MT linux-low.o -MMD -MP -MF ./.deps/linux-low.Tpo linux-low.cc
>         In file included from gdb_proc_service.h:22,
>                          from linux-low.h:27,
>                          from linux-low.cc:20:
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:179:1: note: in expansion of macro ‘PS_EXPORT’
>           179 | PS_EXPORT (ps_get_thread_area);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:180:1: note: in expansion of macro ‘PS_EXPORT’
>           180 | PS_EXPORT (ps_getpid);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:181:1: note: in expansion of macro ‘PS_EXPORT’
>           181 | PS_EXPORT (ps_lcontinue);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:182:1: note: in expansion of macro ‘PS_EXPORT’
>           182 | PS_EXPORT (ps_lgetfpregs);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:183:1: note: in expansion of macro ‘PS_EXPORT’
>           183 | PS_EXPORT (ps_lgetregs);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:184:1: note: in expansion of macro ‘PS_EXPORT’
>           184 | PS_EXPORT (ps_lsetfpregs);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:185:1: note: in expansion of macro ‘PS_EXPORT’
>           185 | PS_EXPORT (ps_lsetregs);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:186:1: note: in expansion of macro ‘PS_EXPORT’
>           186 | PS_EXPORT (ps_lstop);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:187:1: note: in expansion of macro ‘PS_EXPORT’
>           187 | PS_EXPORT (ps_pcontinue);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:188:1: note: in expansion of macro ‘PS_EXPORT’
>           188 | PS_EXPORT (ps_pdread);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:189:1: note: in expansion of macro ‘PS_EXPORT’
>           189 | PS_EXPORT (ps_pdwrite);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:190:1: note: in expansion of macro ‘PS_EXPORT’
>           190 | PS_EXPORT (ps_pglobal_lookup);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:191:1: note: in expansion of macro ‘PS_EXPORT’
>           191 | PS_EXPORT (ps_pstop);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:192:1: note: in expansion of macro ‘PS_EXPORT’
>           192 | PS_EXPORT (ps_ptread);
>               | ^~~~~~~~~
>         ./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
>           177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
>               |                                                  ^
>         ./../gdbsupport/gdb_proc_service.h:193:1: note: in expansion of macro ‘PS_EXPORT’
>           193 | PS_EXPORT (ps_ptwrite);
>               | ^~~~~~~~~
>         make[2]: *** [Makefile:545: linux-low.o] Error 1
>         make[2]: Leaving directory '/usr/local/src/binutils-gdb/gdbserver'
>         make[1]: *** [Makefile:11295: all-gdbserver] Error 2
>         make[1]: Leaving directory '/usr/local/src/binutils-gdb'
>         make: *** [Makefile:854: all] Error 2


More information about the Gdb mailing list