[LLVMdev] llvm/test: suffix or operands invalid for `push'

Joachim Durchholz jo at durchholz.org
Sun Mar 2 04:50:05 PST 2008

Am Sonntag, den 02.03.2008, 12:21 +0200 schrieb Török Edwin:
> Joachim Durchholz wrote:
> > Since llvm cannot generate code for amd64 at this time, this translates
> > to an additional constraint on --target, restricting me to --target=i686
> > only.
> llvm can generate code for amd64, but shared libs don't work, and
> bootstrapping doesn't work (PR1711).
> Still, if you want to compile it as 32-bit, does it work if you run
> configure like this (without any build,host, target):
> $ linux32 ./configure
> It should make all tools believe you are on 32-bit:
> $ linux32 uname -m
> i686
> $ uname -m
> x86_64

Ah, I didn't know this command existed. You never stop learning :-)

$ linux32 ./configure --prefix=$HOME
$ linux32 make
$ linux32 make check


Native configuration is i686-pc-linux-gnu
Failed with exit(1) at line 2
while running: as NoCompileUnit.s -o NoCompileUnit.o
NoCompileUnit.s: Assembler messages:
NoCompileUnit.s:33: Error: suffix or operands invalid for `push'

So 'runtest' is indeed thinking it is running under a 32-bit system, but
'as' tries to assemble for 64 bits anyway.
I don't know whether that's a bug in 'as', or in Ubuntu, or just the way
'as' is supposed to work and the caller should determine the correct
options to use.


More information about the llvm-dev mailing list