Ashutosh Sutar
Ashutosh Sutar

Reputation: 1

gcc: error: unrecognized argument in option ‘-mabi=64’

While compiling kernel 3.15.6 on Fedora 20 which is installed on vmware workstation 11, repeatedly got the error

[root@localhost linux-3.15.6]# make    
gcc: error: unrecognized argument in option ‘-mabi=64’       
gcc: note: valid arguments to ‘-mabi=’ are: ms sysv      
gcc: error: 0: No such file or directory      
gcc: error: unrecognized command line option ‘-G’      
gcc: error: unrecognized command line option ‘-mno-abicalls’      
CHK     include/config/kernel.release           
CHK     include/generated/uapi/linux/version.h      
CHK     include/generated/utsrelease.h      
CC      kernel/bounds.s      
gcc: error: unrecognized argument in option ‘-mabi=64’      
gcc: note: valid arguments to ‘-mabi=’ are: ms sysv      
gcc: error: 0: No such file or directory      
gcc: error: unrecognized command line option ‘-G’      
gcc: error: unrecognized command line option ‘-mno-abicalls’       
make[1]: *** [kernel/bounds.s] Error 1      
make: *** [prepare0] Error 2      

Upvotes: 0

Views: 17317

Answers (1)

Ankit Raj
Ankit Raj

Reputation: 1014

From your uname -a output I can see you are using x86-64 (also known as x64, x86_64, AMD64 and Intel 64, which is an Intel Machine and is based on CISC architecture.

-mabi is a part of RISC-V architecture which is commonly used by ARM and MIPS processors.

For more info, Please go through below links.

Above links are for your understanding. To solve the error basically you need to remove these options when doing make because you are using Intel processor and you don't need these options. You must have provided these options in CFLAGS arguments.

If you want to use similar option for X86_64, Link

On AMD64 (‘x86_64’) systems supporting both 32-bit and 64-bit modes for applications, the following ABI choices are available.

ABI=64

The 64-bit ABI uses 64-bit limbs and pointers and makes full use of the chip architecture. This is the default. Applications will usually not need special compiler flags, but for reference the option is

gcc  -m64

ABI=32

The 32-bit ABI is the usual i386 conventions. This will be slower, and is not recommended except for inter-operating with other code not yet 64-bit capable. Applications must be compiled with

gcc  -m32

(In GCC 2.95 and earlier there’s no ‘-m32’ option, it’s the only mode.)

ABI=x32

The x32 ABI uses 64-bit limbs but 32-bit pointers. Like the 64-bit ABI, it makes full use of the chip’s arithmetic capabilities. This ABI is not supported by all operating systems.

gcc  -mx32

Upvotes: 3

Related Questions