classification
Title: Can't compile gdb with Python 3.6
Type: Stage: resolved
Components: Interpreter Core Versions: Python 3.7, Python 3.6
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: benjamin.peterson, cstratak, ned.deily, python-dev, vstinner
Priority: Keywords: 3.6regression

Created on 2016-12-07 18:14 by cstratak, last changed 2016-12-16 07:51 by ned.deily. This issue is now closed.

Files
File name Uploaded Description Edit
fix-gdb-compilation.patch cstratak, 2016-12-07 18:14 review
Messages (10)
msg282649 - (view) Author: Charalampos Stratakis (cstratak) * Date: 2016-12-07 18:14
Trying to compile gdb, with python support and by having it depend on Python 3.6 produces an error that the HAVE_LONG_LONG has been redefined [0].

This seems to have been introduced by this commit [1].

I'm in no way expert on gdb, but from what I could deduct from the build logs, the #define HAVE_LONG_LONG line in pyport.h [2] is the issue, as gdb also sets the same constant to 1 [3][4]

I build python and gdb as rpm's, but I can't verify if it happens as well outside this environment. Could someone more experienced with gdb take a look at it?

The issue seems to be fixed by wrapping the #define HAVE_LONG_LONG with an #ifndef HAVE_LONG_LONG

Attaching a patch for consideration

[0] https://copr-be.cloud.fedoraproject.org/results/cstratak/python3.6/fedora-26-x86_64/00485858-gdb/build.log.gz

[1] https://hg.python.org/cpython/rev/cf6e9968ebb7/

[2] https://hg.python.org/cpython/file/tip/Include/pyport.h#l42

[3] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=gdb/config.in;h=3f8a72326b5d32db6ad8966c05045e248f955498;hb=HEAD#l282

[4] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=gdb/configure;h=6df88d9049b546a9e906b943f67374dc90d90d6d;hb=HEAD#l11662
msg282695 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2016-12-08 07:55
New changeset 4745d801cae2 by Benjamin Peterson in branch '3.6':
guard HAVE_LONG_LONG definition to prevent redefinition (#28898)
https://hg.python.org/cpython/rev/4745d801cae2

New changeset 1afc3f4f5502 by Benjamin Peterson in branch 'default':
merge 3.6 (#28898)
https://hg.python.org/cpython/rev/1afc3f4f5502
msg282696 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2016-12-08 07:55
I think we should take this for 3.6.
msg282713 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2016-12-08 16:02
The pushed change 4745d801cae2 LGTM for a cherry-pick in 3.6.0.
msg282753 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2016-12-09 01:48
Oh, the problem has introduced a crash on OpenIndiana:
---
Fatal Python error: Aborted

Current thread 0x0000000000000001 (most recent call first):
  File "/export/home/buildbot/64bits/3.x.cea-indiana-amd64/build/Lib/ctypes/__init__.py", line 273 in _reset_cache
...
---

http://buildbot.python.org/all/builders/AMD64%20OpenIndiana%203.x/builds/37/steps/test/logs/stdio
msg282754 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2016-12-09 01:50
The OpenIndiana uses gcc and has the long long type. Extract of the ./configure script:
---
checking for gcc... gcc
(...)
checking size of long long... 8
---
http://buildbot.python.org/all/builders/AMD64%20OpenIndiana%203.x/builds/37/steps/configure/logs/stdio
msg282768 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2016-12-09 07:42
Why do you think this change caused that breakage? That bot looks like it's been broken for days. This change should have no behavior change whatsoever for Python itself.
msg282772 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2016-12-09 10:03
> Why do you think this change caused that breakage? That bot looks like it's been broken for days. This change should have no behavior change whatsoever for Python itself.

It's right that the buildbot is broken for years:
https://mail.python.org/pipermail/python-dev/2016-September/146538.html

But the error changed, since the build 37, tests started to fail with a very specific error: "Fatal Python error: Aborted". The build 37 contains your change 1afc3f4f5502 and two other changes which only modify the Doc/ directory.

Sorry, I don't know more :-/ Maybe it's a false alarm, but it's worth to investigate.
msg283378 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2016-12-16 07:44
New changeset d6c8803c55b4 by Benjamin Peterson in branch '3.6':
guard HAVE_LONG_LONG definition to prevent redefinition (#28898)
https://hg.python.org/cpython/rev/d6c8803c55b4

New changeset 9d0765c22bed by Ned Deily in branch '3.6':
Issue #28898: add Misc/NEWS entry
https://hg.python.org/cpython/rev/9d0765c22bed
msg283381 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2016-12-16 07:51
[cherrypicked for 3.6.0rc2]
History
Date User Action Args
2016-12-16 07:51:07ned.deilysetstatus: open -> closed
priority: release blocker ->
messages: + msg283381

assignee: ned.deily ->
resolution: fixed
stage: resolved
2016-12-16 07:44:47python-devsetmessages: + msg283378
2016-12-09 10:03:28vstinnersetmessages: + msg282772
2016-12-09 07:42:38benjamin.petersonsetmessages: + msg282768
2016-12-09 01:50:44vstinnersetmessages: + msg282754
2016-12-09 01:48:34vstinnersetmessages: + msg282753
2016-12-08 16:02:58vstinnersetnosy: + vstinner
messages: + msg282713
2016-12-08 07:55:35benjamin.petersonsetpriority: normal -> release blocker

nosy: + ned.deily
messages: + msg282696

assignee: ned.deily
2016-12-08 07:55:14python-devsetnosy: + python-dev
messages: + msg282695
2016-12-07 20:17:56ned.deilysetkeywords: + 3.6regression, - patch
2016-12-07 18:20:05serhiy.storchakasetnosy: + benjamin.peterson
2016-12-07 18:14:39cstratakcreate