gcc on ppc64le has bogus r30 register handling, as exposed by greenlet 0.4.14 will not build on ppc64le
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
The Ubuntu-power-systems project |
Fix Released
|
High
|
Canonical Foundations Team | ||
gcc-5 (Ubuntu) |
Fix Released
|
Undecided
|
Ubuntu on IBM Power Systems Bug Triage | ||
Xenial |
Fix Released
|
Wishlist
|
Unassigned | ||
Bionic |
Won't Fix
|
Undecided
|
Unassigned | ||
gcc-6 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Cosmic |
Fix Released
|
Undecided
|
Unassigned | ||
python-greenlet (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
* GCC has a minor bug w.r.t. clobber r30 register in PIC binaries.
* A patch to fix this has been upstream in 6+
* But it is not in gcc-5.4 as used on xenial
* This prevents compiling future-proof and correct greenlet code, on Ubuntu 16.04 LTS as used by current and supported Openstack Queens release on ppc64el
* Whilst backported greenlet is available via the cloud archive for binary usage, the toolchain is still technically incorrect, and thus hinders using Ubuntu 16.04 LTS as workers in upstream Openstack CI
* As a wishlist it would be nice to backport this one small gcc patch as an SRU
[Test Case]
* git clone https:/
* cd greenlet
* ./setup.py build
Expect success
Current result failure:
creating build/temp.
powerpc64le-
In file included from slp_platformsel
platform/
platform/
__asm__ volatile ("" : : : REGS_TO_SAVE);
^
platform/
__asm__ volatile ("" : : : REGS_TO_SAVE);
^
error: command 'powerpc64le-
[Regression Potential]
* Upstream cherrypick present in later releases including bionic
https:/
[Other Info]
* Original bug report
== Comment: #0 - William M. Edmonds <email address hidden> - 2018-07-23 16:21:41 ==
---Problem Description---
greenlet 0.4.14 will not build on ppc64le
Opened https:/
running build
running build_ext
building 'greenlet' extension
creating build
creating build/temp.
powerpc64le-
In file included from slp_platformsel
platform/
platform/
__asm__ volatile ("" : : : REGS_TO_SAVE);
^
platform/
__asm__ volatile ("" : : : REGS_TO_SAVE);
^
error: command 'powerpc64le-
But the greenlet community is saying this is a gcc bug and it would not be safe to revert the greenlet change that exposed this issue. I have no idea whether that is true or not. Supposedly this should be fixed by https:/
---uname output---
unavailable due to lab outage
Machine Type = unavailable due to lab outage
---Debugger---
A debugger is not configured
---Steps to Reproduce---
This should be reproducible with `git clone git://github.
Contact Information = Matthew Edmonds / <email address hidden>
Userspace tool common name: greenlet
The userspace tool has the following bit modes: no idea
Userspace rpm: N/A
Userspace tool obtained from project website: 0.4.14
*Additional Instructions for Matthew Edmonds / <email address hidden>:
-Attach ltrace and strace of userspace application.
tags: | added: architecture-ppc64le bugnameltc-169893 severity-high targetmilestone-inin--- |
Changed in ubuntu: | |
assignee: | nobody → Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) |
affects: | ubuntu → python-greenlet (Ubuntu) |
Changed in ubuntu-power-systems: | |
importance: | Undecided → High |
Changed in ubuntu-power-systems: | |
assignee: | nobody → Ubuntu OpenStack (ubuntu-openstack) |
Changed in ubuntu-power-systems: | |
assignee: | Ubuntu OpenStack (ubuntu-openstack) → Canonical Foundations Team (canonical-foundations) |
Changed in gcc-5 (Ubuntu): | |
status: | New → Won't Fix |
description: | updated |
summary: |
- greenlet 0.4.14 will not build on ppc64le + gcc on ppc64le has bogus r30 register handling, as exposed by greenlet + 0.4.14 will not build on ppc64le |
Changed in gcc-5 (Ubuntu): | |
status: | Won't Fix → Fix Released |
status: | Fix Released → Won't Fix |
Changed in ubuntu-power-systems: | |
status: | Won't Fix → In Progress |
Changed in ubuntu-power-systems: | |
status: | In Progress → Won't Fix |
Changed in ubuntu-power-systems: | |
status: | Won't Fix → In Progress |
tags: | added: triage-g |
Changed in ubuntu-power-systems: | |
status: | In Progress → Fix Committed |
Changed in ubuntu-power-systems: | |
status: | Incomplete → Fix Committed |
Changed in gcc-5 (Ubuntu Bionic): | |
status: | New → Fix Committed |
Changed in gcc-5 (Ubuntu Bionic): | |
status: | Fix Committed → Confirmed |
Changed in gcc-6 (Ubuntu): | |
status: | New → Fix Committed |
no longer affects: | gcc-6 (Ubuntu Trusty) |
no longer affects: | gcc-5 (Ubuntu Trusty) |
no longer affects: | python-greenlet (Ubuntu Trusty) |
no longer affects: | python-greenlet (Ubuntu Cosmic) |
no longer affects: | gcc-5 (Ubuntu Cosmic) |
Changed in gcc-6 (Ubuntu Cosmic): | |
status: | New → Fix Committed |
Changed in gcc-6 (Ubuntu): | |
status: | Fix Committed → Confirmed |
tags: |
added: verification-done removed: verification-needed |
This is a slightly odd request as Ubuntu dev only has 0.4.13? Which does build on ppc64el.