as segfault with invalid -march= option

Bug #1781242 reported by bugproxy on 2018-07-11
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu on IBM z Systems
Low
Canonical Foundations Team
binutils (Ubuntu)
Undecided
Skipper Bug Screeners
Xenial
Undecided
Unassigned

Bug Description

[Impact]

 * as segfaults, instead of exiting gracefully, when one specifies unsupported arch option (ie. one from future - cause xenial did not support z14)
 * this is bad, as detection fails around supported march options - as if binutils are completely broken, rather than just not supporting this or that CPU level of optimisations.

[Test Case]

Bad result:
 $ as -march=foo
Segmentation fault

Expected result:
# as -march=foo
Assembler messages:
Error: invalid switch -march=foo
Error: unrecognized option -march=foo

[Regression Potential]

 * The result is still a failure condition, but with a proper exit code and standard error messages, rather than an unexplainable generic segfault.

[Other Info]

 * Original bug report

The GNU assembler segfaults with an invalid -march= option

Contact Information = n/a

---uname output---
n/a

Machine Type = n/a

---Debugger---
A debugger is not configured

---Steps to Reproduce---
 $ as -march=foo
Segmentation fault

Expected result:
# as -march=foo
Assembler messages:
Error: invalid switch -march=foo
Error: unrecognized option -march=foo

Userspace tool common name: as

The userspace tool has the following bit modes: 64

Userspace rpm: binutils-2.26.1-1ubuntu1~16.04.6

Userspace tool obtained from project website: na

*Additional Instructions for n/a:
-Attach ltrace and strace of userspace application.

The problem is not critical since usually 'as' is invoked through the gcc driver which itself errors out for wrong -march= options. It will only be a problem if somebody builds a more recent GCC from source and uses an -march= option for a machine not supported by the default binutils.

Please consider integrating the attached patch into 16.04 binutils.

The problem has been fixed in later binutils already. Ubuntu 18.04 does not appear to be affected.

--> Package has to set corectly by Canonical

bugproxy (bugproxy) wrote : Patch

Default Comment by Bridge

tags: added: architecture-s39064 bugnameltc-169493 severity-low targetmilestone-inin16044
Changed in ubuntu:
assignee: nobody → Skipper Bug Screeners (skipper-screen-team)
affects: ubuntu → linux (Ubuntu)
affects: linux (Ubuntu) → binutils (Ubuntu)
Changed in ubuntu-z-systems:
status: New → Triaged
importance: Undecided → Low
assignee: nobody → Canonical Foundations Team (canonical-foundations)
Frank Heimes (frank-heimes) wrote :

Issue occurs on Xenial only (not Artful and also not on Bionic).

Dimitri John Ledkov (xnox) wrote :

In unapproved queue, waiting review and approval.

description: updated
Changed in binutils (Ubuntu):
status: New → Fix Released
Changed in binutils (Ubuntu Xenial):
status: New → In Progress
milestone: none → xenial-updates
Changed in ubuntu-z-systems:
status: Triaged → In Progress
description: updated

Hello bugproxy, or anyone else affected,

Accepted binutils into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/binutils/2.26.1-1ubuntu1~16.04.7 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-xenial to verification-done-xenial. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-xenial. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in binutils (Ubuntu Xenial):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-xenial
Changed in ubuntu-z-systems:
status: In Progress → Fix Committed
Frank Heimes (frank-heimes) wrote :

Successfully verified on xenial:

ubuntu@hwe0001:~$ apt-cache policy binutils
binutils:
  Installed: 2.26.1-1ubuntu1~16.04.7
  Candidate: 2.26.1-1ubuntu1~16.04.7
  Version table:
 *** 2.26.1-1ubuntu1~16.04.7 500
        500 http://us.ports.ubuntu.com/ubuntu-ports xenial-proposed/main s390x Packages
        100 /var/lib/dpkg/status
     2.26.1-1ubuntu1~16.04.6 500
        500 http://us.ports.ubuntu.com/ubuntu-ports xenial-updates/main s390x Packages
        500 http://ports.ubuntu.com/ubuntu-ports xenial-security/main s390x Packages
     2.26-8ubuntu2 500
        500 http://us.ports.ubuntu.com/ubuntu-ports xenial/main s390x Packages
ubuntu@hwe0001:~$ as -march=foo
Assembler messages:
Error: invalid switch -march=foo
Error: unrecognized option -march=foo
ubuntu@hwe0001:~$ as -march=
Assembler messages:
Error: invalid switch -march=
Error: unrecognized option -march=
ubuntu@hwe0001:~$

Switching the verification tags accordingly ...

tags: added: verification-done verification-done-xenial
removed: verification-needed verification-needed-xenial
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments