Dale Johannesen
2008-Feb-27 22:31 UTC
[LLVMdev] llvm/test: suffix or operands invalid for `push'
On Feb 27, 2008, at 2:12 PM, Joachim Durchholz wrote:> Some additional info: > > I just found the .s files mentioned in the error message, and checked > them. All error messages refer to one of the following four > instructions: > pushl %ebp > pushl %esi > popl %ebp > popl %esi > It's always the same error, "suffix or operands invalid for > `push'" (resp `pop').Those are valid instructions in every x86-32 assembler I'm aware of. Perhaps it needs a switch to put it in 32-bit mode? Perhaps it is not parsing tab characters?> There are no other push or pop instructions in any .s file. > 2006-11-06-StackTrace is not listed during testing, and generates no > error messages. All other .s files with pushl or popl are listed > during > testing and fail with the above-mentioned error message. > > Again: What should I try next? > > Regards, > Jo > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Joachim Durchholz
2008-Feb-28 09:55 UTC
[LLVMdev] llvm/test: suffix or operands invalid for `push'
Am Mittwoch, den 27.02.2008, 14:31 -0800 schrieb Dale Johannesen:> On Feb 27, 2008, at 2:12 PM, Joachim Durchholz wrote: > > All error messages refer to one of the following four > > instructions: > > pushl %ebp > > pushl %esi > > popl %ebp > > popl %esi > > It's always the same error, "suffix or operands invalid for > > `push'" (resp `pop'). > > Those are valid instructions in every x86-32 assembler I'm aware of. > Perhaps it needs a switch to put it in 32-bit mode?Yes, I have been able to confirm that's what's happening behind the scene. The switch would be --32, however after that, ld will try to link the 64-bit versions of libc and the C runtime. I was able to trigger the problem during ./configure, by using llvm-gcc. With configure, it was fixable for the whole toolchain by saying --target=i686, so there is hope. Unfortunately, make check doesn't seem to use the setting from ./configure; this is what I see in site.exp, regardless of any CCor CFLAGS= settings on make check: set gccpath "gcc" set gxxpath "g++" Should I edit site.exp to fix that, or is there a better way? Regards, Jo
Dale Johannesen
2008-Feb-29 18:09 UTC
[LLVMdev] llvm/test: suffix or operands invalid for `push'
I do not know the configury stuff well enough to answer this, can someone else help? On Feb 28, 2008, at 1:55 AM, Joachim Durchholz wrote:> Am Mittwoch, den 27.02.2008, 14:31 -0800 schrieb Dale Johannesen: >> On Feb 27, 2008, at 2:12 PM, Joachim Durchholz wrote: >>> All error messages refer to one of the following four >>> instructions: >>> pushl %ebp >>> pushl %esi >>> popl %ebp >>> popl %esi >>> It's always the same error, "suffix or operands invalid for >>> `push'" (resp `pop'). >> >> Those are valid instructions in every x86-32 assembler I'm aware of. >> Perhaps it needs a switch to put it in 32-bit mode? > > Yes, I have been able to confirm that's what's happening behind the > scene. The switch would be --32, however after that, ld will try to > link > the 64-bit versions of libc and the C runtime. > > I was able to trigger the problem during ./configure, by using llvm- > gcc. > With configure, it was fixable for the whole toolchain by saying > --target=i686, so there is hope. > > Unfortunately, make check doesn't seem to use the setting > from ./configure; this is what I see in site.exp, regardless of any > CC> or CFLAGS= settings on make check: > set gccpath "gcc" > set gxxpath "g++" > > Should I edit site.exp to fix that, or is there a better way?
Apparently Analagous Threads
- [LLVMdev] llvm/test: suffix or operands invalid for `push'
- [LLVMdev] llvm/test: suffix or operands invalid for `push'
- [LLVMdev] llvm/test: suffix or operands invalid for `push'
- [LLVMdev] llvm/test: suffix or operands invalid for `push'
- [LLVMdev] llvm/test: suffix or operands invalid for `push'