On Wed, Jan 29, 2014 at 6:41 AM, Alexander Monakov <amona...@ispras.ru> wrote: > > On Wed, 29 Jan 2014, H.J. Lu wrote: >> Since the .code16gcc directive was added to binutils back in 1999, >> it is older than the minimum binutils required for x86 GCC. There >> is no need to specify a separate minimum binutils for it. > > It's not clear to me why the compiler should be involved in providing this > functionality. Can the assembler simply support '-mcode16gcc' command-line > flag, which would have the effect of enabling .code16gcc for the whole > translation unit? That way, you could simply add -Wa,-mcode16gcc to the GCC > command line and avoid the need to patch the compiler. Am I missing > something?
-m16 is used by Linux kernel, which checks if the compiler supports -m16 and uses it if it does. Adding gas --code16gcc check is an additional change in Linux kernel. Clang already supports -m16, which generates objects directly. Adding gas --code16gcc check doesn't help clang. Add -m16 to gcc makes gcc and clang consistent to Linux kernel build. -- H.J.