Amiri Barksdale wrote: > I am a developer running CentOS 4 on a web server (no desktop), and am > running into what I can only imagine must be a problem with 32 bit > versus 64 bit code. > > I am trying to compile an unfortunately closed-source module from a > company called Cybersource. The error message is the following: > > gcc -c -I. -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe > -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE > -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -m64 > -DVERSION=\"5.0.0\" -DXS_VERSION=\"5.0.0\" -fPIC > "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE" SOAPI.c If your source package doesn't support 64-bit, how did the -m64 flag get in there? If you want to set -m32, you must take care that it is used everywhere, and not over-ridden by subsequent -m64. If "closed source" means there is not even a capability of resetting an environment variable such as CFLAGS, get your money back. > {standard input}:150: Error: bad register name `%rbp' > {standard input}:156: Error: bad register name `%rbx' > {standard input}:158: Error: bad register name `%rsp' > {standard input}:163: Error: bad register name `%rax)' > {standard input}:165: Error: bad register name `%rax' > {standard input}:168: Error: bad register name `%rax)' > {standard input}:171: Error: bad register name `%rax)' > {standard input}:173: Error: bad register name `%rax' > {standard input}:175: Error: bad register name `%rax)' > {standard input}:177: Error: bad register name `%rcx)' Likewise, if you want to switch to -m32, you must clear out all -m64 built stuff. It looks like you invoked 32-bit assembler on 64-bit source.