Bug 1795575 - GCC 10 regression: Python 3 fails to build in rawhide ppc64le/armv7hl: Assembler messages: Error: redefined symbol cannot be used on reloc
Summary: GCC 10 regression: Python 3 fails to build in rawhide ppc64le/armv7hl: Assemb...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: gcc
Version: 32
Hardware: Unspecified
OS: Unspecified
unspecified
urgent
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Fedora Extras Quality Assurance
URL: https://koschei.fedoraproject.org/pac...
Whiteboard:
Depends On:
Blocks: ARMTracker PPCTracker 1779341 GCC10
TreeView+ depends on / blocked
 
Reported: 2020-01-28 11:04 UTC by Miro Hrončok
Modified: 2020-10-05 08:32 UTC (History)
24 users (show)

Fixed In Version: 10.0.1-0.7.fc32
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-02-28 17:19:50 UTC
Type: Bug


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
GNU Compiler Collection 93384 P3 RESOLVED [10 Regression] Python 3.9.0a3 fails to build on ppc64le with GCC 10.0.1: redefined symbol cannot be used on reloc 2020-04-06 21:45:04 UTC

Description Miro Hrončok 2020-01-28 11:04:10 UTC
Description of problem:
Packages python3 and python39 fail to build from source in Fedora rawhide on ppc64le and armv7hl:

/builddir/build/BUILD/Python-3.8.1/Python/initconfig.c: In function 'PyConfig_InitPythonConfig':
/builddir/build/BUILD/Python-3.8.1/Python/initconfig.c:636:1: note: the layout of aggregates containing vectors with 8-byte alignment has changed in GCC 5
  636 | PyConfig_InitPythonConfig(PyConfig *config)
      | ^
/tmp/ccJWzJqd.s: Assembler messages:
/tmp/ccJWzJqd.s:79948: Error: redefined symbol cannot be used on reloc
/tmp/ccJWzJqd.s:267764: Error: redefined symbol cannot be used on reloc
lto-wrapper: fatal error: gcc returned 1 exit status

Versions:
3.8.1, 3.9.0a2, 3.9.0a3


The packages are tracked by Koschei. See:
https://koschei.fedoraproject.org/package/python3
https://koschei.fedoraproject.org/package/python39

But note that armv7hl is not tracked there.


This blocks any changes to Python we need to ship. It started to happen after the update of gcc to 10.

Comment 1 Victor Stinner 2020-01-28 12:22:04 UTC
I reported the issue to GCC upstream: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93384

I have been requested for the assembler files, but I failed to reproduce the issue manually on ppc64le.

I created https://src.fedoraproject.org/rpms/python39/pull-request/16 yesterday to check if the bug is still there: yes it is, and not only ppc64le is affected, armv7hl is also affected.

For my manual build, I only copied the configure command. I should retry with the compiler and linker flags used by the specfile.

I also suspect that the bug only occurs on PGO+LTO build.

Comment 2 Dan Horák 2020-01-28 12:24:12 UTC
Could it be related to the new -fno-common default? Does it build with -fcommon added to compiler flags?

Comment 3 Miro Hrončok 2020-01-28 12:35:11 UTC
(In reply to Dan Horák from comment #2)
> Could it be related to the new -fno-common default? Does it build with
> -fcommon added to compiler flags?

Testing...

Comment 4 Miro Hrončok 2020-01-28 12:42:52 UTC
[python39 (390a3 *%)]$ git diff
...
+%global _legacy_common_support 1
+

[python39 (390a3 *%)]$ fedpkg --release master build --nowait --scratch --srpm
...
Building python39-3.9.0~a3-1.fc32.src.rpm for rawhide
Created task: 41132972
Task info: https://koji.fedoraproject.org/koji/taskinfo?taskID=41132972





[python39 (390a3 %)]$ git diff
...
-%bcond_without optimizations
+%bcond_with optimizations

[python39 (390a3 *%)]$ fedpkg --release master build --nowait --scratch --srpm
...
Building python39-3.9.0~a3-1.fc32.src.rpm for rawhide
Created task: 41133107
Task info: https://koji.fedoraproject.org/koji/taskinfo?taskID=41133107

Comment 5 Miro Hrončok 2020-01-28 13:26:24 UTC
(In reply to Miro Hrončok from comment #4)
> [python39 (390a3 *%)]$ git diff
> ...
> +%global _legacy_common_support 1
> +
> 
> [python39 (390a3 *%)]$ fedpkg --release master build --nowait --scratch
> --srpm
> ...
> Building python39-3.9.0~a3-1.fc32.src.rpm for rawhide
> Created task: 41132972
> Task info: https://koji.fedoraproject.org/koji/taskinfo?taskID=41132972

No difference.


> [python39 (390a3 %)]$ git diff
> ...
> -%bcond_without optimizations
> +%bcond_with optimizations
> 
> [python39 (390a3 *%)]$ fedpkg --release master build --nowait --scratch
> --srpm
> ...
> Building python39-3.9.0~a3-1.fc32.src.rpm for rawhide
> Created task: 41133107
> Task info: https://koji.fedoraproject.org/koji/taskinfo?taskID=41133107

Builds fine. As a lost resort, we can temporarily disable optimizations on the affected architectures to unblock ourselves.

Comment 6 Dan Horák 2020-01-28 15:16:17 UTC
I have asked IBM to help with this one. Victor, please attach the temporary files to the upstream bug, so they can look. If you need a ppc64le machine first, let me know.

Comment 7 Victor Stinner 2020-01-28 23:57:01 UTC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93384 title is now "[10 Regression] Python 3.9.0a3 fails to build on ppc64le with GCC 10.0.1: redefined symbol cannot be used on reloc", so I don't think that it's a Python bug, but it's a GCC regression instead.

I'm discussing the issue at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93384 but you can keep this issue to coordinate the effort in Fedora / at Red Hat if you prefer.

Comment 8 Ben Cotton 2020-02-11 16:37:38 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle.
Changing version to 32.

Comment 9 Miro Hrončok 2020-02-11 20:11:27 UTC
We have a deadline on 25 February to deliver bz1779341. Could you please backport the upstream fix?

Comment 10 Miro Hrončok 2020-02-28 17:12:26 UTC
The deadline is technically over, but we'd still like to ship this for Fedora 32. Please, could you fix this?

Comment 11 Jakub Jelinek 2020-02-28 17:19:50 UTC
It is fixed for almost a month.

Comment 12 Miro Hrončok 2020-02-28 17:31:49 UTC
Excellent. Thanks for letting me know so fast :(


Note You need to log in before you can comment on or make changes to this bug.