public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
* gdb/head build, --with-python=<path to working python> FAILs @ "no usable python found " ?
@ 2020-03-25 21:51 PGNet Dev
  2020-03-25 21:57 ` Christian Biesinger
  0 siblings, 1 reply; 7+ messages in thread
From: PGNet Dev @ 2020-03-25 21:51 UTC (permalink / raw)
  To: gdb

with a local/non-distro python 3.8 installed, via pyenv,

	pyenv global
		3.8-dev
	pyenv which python3.8
		/usr/local/pyenv/versions/3.8-dev/bin/python3.8
	python3.8 -V
		Python 3.8.2+
	python3.8 -c "import sys; print('\n'.join(sys.path))"
		/usr/local/pyenv/versions/3.8-dev/lib/python38.zip
		/usr/local/pyenv/versions/3.8-dev/lib/python3.8
		/usr/local/pyenv/versions/3.8-dev/lib/python3.8/lib-dynload
		/usr/local/pyenv/versions/3.8-dev/lib/python3.8/site-packages

building GDB head

	git clone git://sourceware.org/git/binutils-gdb.git
	cd binutils-gdb
	git log | head
		commit 33aa3c10f663b834c9573ede439b2df3c92f0cfe
		Author: Tom Tromey <tom@tromey.com>
		Date:   Wed Mar 25 10:26:38 2020 -0600
		
	    Fix error message in compile-object-load.c
		...

	./configure \
	 --prefix=/usr/local/gdb \
	 --with-python=/usr/local/pyenv/versions/3.8-dev/bin/python3.8

		...
		configure: creating ./config.status
		config.status: creating Makefile

fails @ make, "no usable python found",

	make V=1

		...
		checking whether to use MPFR... auto
		checking for libmpfr... yes
		checking how to link with libmpfr... -lmpfr -lgmp
		checking whether to use python... /usr/local/pyenv/versions/3.8-dev/bin/python3.8
		checking for python... no
		configure: error: no usable python found at /usr/local/pyenv/versions/3.8-dev/bin/python3.8
		make[1]: *** [Makefile:11664: configure-gdb] Error 1
		make[1]: Leaving directory '/usr/local/src/binutils-gdb'
		make: *** [Makefile:854: all] Error 2

In gdb src, the find-python code's a bit challenging to wade through, and possibly (?) outdated -- as I still see multiple references to EOL'd python 2.7x .


IS gdb/head from upstream known to work with python3?

what is the correct config for sufficiently spec'ing a local python install?

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

* Re: gdb/head build, --with-python=<path to working python> FAILs @ "no usable python found " ?
  2020-03-25 21:51 gdb/head build, --with-python=<path to working python> FAILs @ "no usable python found " ? PGNet Dev
@ 2020-03-25 21:57 ` Christian Biesinger
  2020-03-25 22:14   ` PGNet Dev
  0 siblings, 1 reply; 7+ messages in thread
From: Christian Biesinger @ 2020-03-25 21:57 UTC (permalink / raw)
  To: pgnet.dev; +Cc: gdb

Yes, Python 3 is known to work, though Python 2.7 is also supported.

Questions:
- What does gdb/config.log say?
- Do you also have the headers and libraries installed?
- Just to confirm,  /usr/local/pyenv/versions/3.8-dev/bin/python3.8 is the
binary and not a directory, right?

Christian

On Wed, Mar 25, 2020 at 4:51 PM PGNet Dev via Gdb <gdb@sourceware.org>
wrote:

> with a local/non-distro python 3.8 installed, via pyenv,
>
>         pyenv global
>                 3.8-dev
>         pyenv which python3.8
>                 /usr/local/pyenv/versions/3.8-dev/bin/python3.8
>         python3.8 -V
>                 Python 3.8.2+
>         python3.8 -c "import sys; print('\n'.join(sys.path))"
>                 /usr/local/pyenv/versions/3.8-dev/lib/python38.zip
>                 /usr/local/pyenv/versions/3.8-dev/lib/python3.8
>                 /usr/local/pyenv/versions/3.8-dev/lib/python3.8/lib-dynload
>
> /usr/local/pyenv/versions/3.8-dev/lib/python3.8/site-packages
>
> building GDB head
>
>         git clone git://sourceware.org/git/binutils-gdb.git
>         cd binutils-gdb
>         git log | head
>                 commit 33aa3c10f663b834c9573ede439b2df3c92f0cfe
>                 Author: Tom Tromey <tom@tromey.com>
>                 Date:   Wed Mar 25 10:26:38 2020 -0600
>
>             Fix error message in compile-object-load.c
>                 ...
>
>         ./configure \
>          --prefix=/usr/local/gdb \
>          --with-python=/usr/local/pyenv/versions/3.8-dev/bin/python3.8
>
>                 ...
>                 configure: creating ./config.status
>                 config.status: creating Makefile
>
> fails @ make, "no usable python found",
>
>         make V=1
>
>                 ...
>                 checking whether to use MPFR... auto
>                 checking for libmpfr... yes
>                 checking how to link with libmpfr... -lmpfr -lgmp
>                 checking whether to use python...
> /usr/local/pyenv/versions/3.8-dev/bin/python3.8
>                 checking for python... no
>                 configure: error: no usable python found at
> /usr/local/pyenv/versions/3.8-dev/bin/python3.8
>                 make[1]: *** [Makefile:11664: configure-gdb] Error 1
>                 make[1]: Leaving directory '/usr/local/src/binutils-gdb'
>                 make: *** [Makefile:854: all] Error 2
>
> In gdb src, the find-python code's a bit challenging to wade through, and
> possibly (?) outdated -- as I still see multiple references to EOL'd python
> 2.7x .
>
>
> IS gdb/head from upstream known to work with python3?
>
> what is the correct config for sufficiently spec'ing a local python
> install?
>

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

* Re: gdb/head build, --with-python=<path to working python> FAILs @ "no usable python found " ?
  2020-03-25 21:57 ` Christian Biesinger
@ 2020-03-25 22:14   ` PGNet Dev
  2020-03-25 22:24     ` Christian Biesinger
  0 siblings, 1 reply; 7+ messages in thread
From: PGNet Dev @ 2020-03-25 22:14 UTC (permalink / raw)
  To: Christian Biesinger; +Cc: gdb

On 3/25/20 2:57 PM, Christian Biesinger wrote:
...
> Yes, Python 3 is known to work, though Python 2.7 is also supported.

gr8, thx

> - What does gdb/config.log say?

==>  https://pastebin.com/ZPaKjG9Z

> - Do you also have the headers

yep.

	ls -al /usr/local/pyenv/versions/3.8-dev/include/python3.8/Python.h
		-rw-r--r-- 1 root root 3.6K Mar 20 20:44 /usr/local/pyenv/versions/3.8-dev/include/python3.8/Python.h
	... etc ...

> and libraries installed?

	ls -al /usr/local/pyenv/versions/3.8-dev/lib/
		total 17M
		drwxr-xr-x  4 root root 4.0K Mar 20 20:44 ./
		drwxr-xr-x  7 root root 4.0K Mar 20 20:49 ../
		lrwxrwxrwx  1 root root   19 Mar 20 20:44 libpython3.8.so -> libpython3.8.so.1.0*
		-rwxr-xr-x  1 root root  17M Mar 20 20:44 libpython3.8.so.1.0*
		-rwxr-xr-x  1 root root 8.6K Mar 20 20:44 libpython3.so*
		drwxr-xr-x  2 root root 4.0K Mar 20 20:44 pkgconfig/
		drwxr-xr-x 35 root root 4.0K Mar 20 20:44 python3.8/

atm, NO add'l *FLAGS set to either ...

> - Just to confirm,  /usr/local/pyenv/versions/3.8-dev/bin/python3.8 is the binary and not a directory, right?

correct.

	ls -ald /usr/local/pyenv/versions/3.8-dev/bin/python3.8
		-rwxr-xr-x 1 root root 15K Mar 20 20:44 /usr/local/pyenv/versions/3.8-dev/bin/python3.8*

	/usr/local/pyenv/versions/3.8-dev/bin/python3.8 -V
		Python 3.8.2+

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

* Re: gdb/head build, --with-python=<path to working python> FAILs @ "no usable python found " ?
  2020-03-25 22:14   ` PGNet Dev
@ 2020-03-25 22:24     ` Christian Biesinger
  2020-03-25 22:51       ` PGNet Dev
  0 siblings, 1 reply; 7+ messages in thread
From: Christian Biesinger @ 2020-03-25 22:24 UTC (permalink / raw)
  To: pgnet.dev; +Cc: gdb

On Wed, Mar 25, 2020 at 5:14 PM PGNet Dev <pgnet.dev@gmail.com> wrote:
>
> On 3/25/20 2:57 PM, Christian Biesinger wrote:
> ...
> > Yes, Python 3 is known to work, though Python 2.7 is also supported.
>
> gr8, thx
>
> > - What does gdb/config.log say?
>
> ==>  https://pastebin.com/ZPaKjG9Z

So the immediate problem is this:

configure:10601: checking for python
configure:10619: /usr/bin/gcc-10 -o conftest -O3 -Wall
-fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables
-fmessage-length=0 -grecord-gcc-switches -march=native -mtune=native
-O3 -Wall -fstack-protector-strong -funwind-tables
-fasynchronous-unwind-tables -fmessage-length=0 -grecord-gcc-switches
-march=native -mtune=native -D_FORTIFY_SOURCE=2
-I/usr/local/pyenv/versions/3.8-dev/include/python3.8
-I/usr/local/pyenv/versions/3.8-dev/include/python3.8   conftest.c
-lpython3.8 -lcrypt -lpthread -ldl -lutil -lm -lm -Xlinker
-export-dynamic -lncursesw -lm -ldl  >&5
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld:
cannot find -lpython3.8

GDB uses basically this commandline to find the linker flags:
python3.8 ./gdb/python-config.py --ldflags

So I guess you'll either have to figure out why that does the wrong
thing (it seems to ask Python for the right values) or pass
LDFLAGS=/usr/local/pyenv/versions/3.8-dev/lib/ to configure.

Hope this helps,
Christian

>
>
>
> > - Do you also have the headers
>
> yep.
>
>         ls -al /usr/local/pyenv/versions/3.8-dev/include/python3.8/Python.h
>                 -rw-r--r-- 1 root root 3.6K Mar 20 20:44 /usr/local/pyenv/versions/3.8-dev/include/python3.8/Python.h
>         ... etc ...
>
> > and libraries installed?
>
>         ls -al /usr/local/pyenv/versions/3.8-dev/lib/
>                 total 17M
>                 drwxr-xr-x  4 root root 4.0K Mar 20 20:44 ./
>                 drwxr-xr-x  7 root root 4.0K Mar 20 20:49 ../
>                 lrwxrwxrwx  1 root root   19 Mar 20 20:44 libpython3.8.so -> libpython3.8.so.1.0*
>                 -rwxr-xr-x  1 root root  17M Mar 20 20:44 libpython3.8.so.1.0*
>                 -rwxr-xr-x  1 root root 8.6K Mar 20 20:44 libpython3.so*
>                 drwxr-xr-x  2 root root 4.0K Mar 20 20:44 pkgconfig/
>                 drwxr-xr-x 35 root root 4.0K Mar 20 20:44 python3.8/
>
> atm, NO add'l *FLAGS set to either ...
>
> > - Just to confirm,  /usr/local/pyenv/versions/3.8-dev/bin/python3.8 is the binary and not a directory, right?
>
> correct.
>
>         ls -ald /usr/local/pyenv/versions/3.8-dev/bin/python3.8
>                 -rwxr-xr-x 1 root root 15K Mar 20 20:44 /usr/local/pyenv/versions/3.8-dev/bin/python3.8*
>
>         /usr/local/pyenv/versions/3.8-dev/bin/python3.8 -V
>                 Python 3.8.2+

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

* Re: gdb/head build, --with-python=<path to working python> FAILs @ "no usable python found " ?
  2020-03-25 22:24     ` Christian Biesinger
@ 2020-03-25 22:51       ` PGNet Dev
  2020-03-25 22:55         ` Christian Biesinger
  0 siblings, 1 reply; 7+ messages in thread
From: PGNet Dev @ 2020-03-25 22:51 UTC (permalink / raw)
  To: Christian Biesinger; +Cc: gdb

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

> or pass LDFLAGS=/usr/local/pyenv/versions/3.8-dev/lib/ to configure.

using usual '-L/path' var

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

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

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

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

* Re: gdb/head build, --with-python=<path to working python> FAILs @ "no usable python found " ?
  2020-03-25 22:51       ` PGNet Dev
@ 2020-03-25 22:55         ` Christian Biesinger
  2020-03-25 23:24           ` PGNet Dev
  0 siblings, 1 reply; 7+ messages in thread
From: Christian Biesinger @ 2020-03-25 22:55 UTC (permalink / raw)
  To: pgnet.dev; +Cc: gdb

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

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

* Re: gdb/head build, --with-python=<path to working python> FAILs @ "no usable python found " ?
  2020-03-25 22:55         ` Christian Biesinger
@ 2020-03-25 23:24           ` PGNet Dev
  0 siblings, 0 replies; 7+ messages in thread
From: PGNet Dev @ 2020-03-25 23:24 UTC (permalink / raw)
  To: Christian Biesinger; +Cc: gdb

On 3/25/20 3:55 PM, Christian Biesinger wrote:
>>          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?

i 1st stumbled on this^ issue trying to run distro-pkg'd gdb in my pyenv.

it keeps insisting on hardcoded python pkg versions/paths that are the distro's default.  annoying :-/

rpath with

	export LDFLAGS="-L/usr/local/pyenv/versions/3.8-dev/lib -Wl,-rpath,/usr/local/pyenv/versions/3.8-dev/lib"
	export LIBS="-lpython3.8"

is a better-safe-than-sorry choice; and shouldn't hurt


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

thx.  i'll split off a new thread.


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

end of thread, other threads:[~2020-03-25 23:24 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-25 21:51 gdb/head build, --with-python=<path to working python> FAILs @ "no usable python found " ? PGNet Dev
2020-03-25 21:57 ` Christian Biesinger
2020-03-25 22:14   ` PGNet Dev
2020-03-25 22:24     ` Christian Biesinger
2020-03-25 22:51       ` PGNet Dev
2020-03-25 22:55         ` Christian Biesinger
2020-03-25 23:24           ` PGNet Dev

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