Bug 61223 - [4.10 regression] libstdc++ build fail due to pop lr register
Summary: [4.10 regression] libstdc++ build fail due to pop lr register
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 5.0
: P3 blocker
Target Milestone: 5.0
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-05-19 02:34 UTC by Terry Guo
Modified: 2014-05-26 14:04 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2014-05-20 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Terry Guo 2014-05-19 02:34:59 UTC
When build file gcc/libstdc++-v3/libsupc++/eh_arm.cc for Thumb-1 target, run into below error:

/tmp/ccJ7atpP.s: Assembler messages:
/tmp/ccJ7atpP.s:26: Error: invalid register list to push/pop instruction -- `pop {r1,r2,r3,lr}'

According to ARM arch manual, only PC and low registers are allowed in POP instruction.

This failure happens with commit:

commit 13795f627c41a40f028d98e75f19774bc3a795b1
Author: merzlyakovao <merzlyakovao@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri May 16 13:16:33 2014 +0000

    2014-05-16  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
    
        PR libstdc++/60758
        * libsupc++/eh_arm.cc (__cxa_end_cleanup): Change r4 to lr in save/restore
        and add unwind directives.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210515 138bc75d-0d04-0410-961f-82ee72b054a4
Comment 1 Jonathan Wakely 2014-05-19 19:44:53 UTC
This is a target-specific bug, please set the Target field appropriately.
Comment 2 Yury Gribov 2014-05-20 17:25:58 UTC
Author: ygribov
Date: Tue May 20 17:25:26 2014
New Revision: 210650

URL: http://gcc.gnu.org/viewcvs?rev=210650&root=gcc&view=rev
Log:
2014-05-20  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>

	PR libstdc++/61223
	Revert:
	2014-05-16  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>

	PR libstdc++/60758
	* libsupc++/eh_arm.cc (__cxa_end_cleanup): Change r4 to lr in save/restore
	and add unwind directives.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/libsupc++/eh_arm.cc
Comment 3 Richard Biener 2014-05-26 14:04:33 UTC
Fixed.