I am, currently, using the cross-compiled GCC tools as shown on the OSDev wiki.
I am using ATT syntax for my assembly files, which is fine. But, I see that most people use Intel syntax with nasm.
If I want to use Intel syntax, is it necessary for me to make a cross-compiled nasm, just like I made a cross compiled i386-elf-as ?
Necessary to cross-compile nasm?
Re: Necessary to cross-compile nasm?
No. Unlike g++, which would generate code according to your OS/CPU, NASM will do what you ask it to, every instruction and every directive.
- Love4Boobies
- Member
- Posts: 2111
- Joined: Fri Mar 07, 2008 5:36 pm
- Location: Bucharest, Romania
Re: Necessary to cross-compile nasm?
Cross-compilers for OS development aren't about preventing your toolchain from doing OS-specific things as you can generally disable anything you don't want with the appropriate command-line options. It's really about having a non-default configuration that is appropriate for your needs (e.g., support for a different set of features, a different architecture, a different executable file format, etc.). NASM likely has everything you need already but you can consider your requirements and compare them against the configuration options to make sure. Also, we like to encourage people on this forum to build cross-compilers because a lot of them are not self-reliant so at least when they ask questions we can get more predictable outcomes without having to ask them about their toolchains.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
[ Project UDI ]
Re: Necessary to cross-compile nasm?
Thanks for the great answers.
Re: Necessary to cross-compile nasm?
@Schol-R-Lea:
Note that your first and last statement are a bit contradictory. Yes, you can disable OS-specific things given the "correct" command-line options. But with an appropriate cross-compiler setup you don't have to, which is why we encourage it (so we don't have to go down the "which compiler on which OS are you using" tree).
Also, eventually you will need your own toolchain configuration, to which a "neutral" cross-compiler is the first step, so why not take that step right at the beginning.
Note that your first and last statement are a bit contradictory. Yes, you can disable OS-specific things given the "correct" command-line options. But with an appropriate cross-compiler setup you don't have to, which is why we encourage it (so we don't have to go down the "which compiler on which OS are you using" tree).
Also, eventually you will need your own toolchain configuration, to which a "neutral" cross-compiler is the first step, so why not take that step right at the beginning.
Every good solution is obvious once you've found it.