From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from terminus.zytor.com ([192.83.249.54]:50366 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759802AbXGJUqK (ORCPT ); Tue, 10 Jul 2007 16:46:10 -0400 Message-ID: <4693EF48.1080209@zytor.com> Date: Tue, 10 Jul 2007 13:42:48 -0700 From: "H. Peter Anvin" MIME-Version: 1.0 Subject: Re: [x86 setup 13/33] Header file to produce 16-bit code with gcc References: <11840359321823-git-send-email-hpa@zytor.com> <11840373002601-git-send-email-hpa@zytor.com> <108510B6-B9BE-49D4-BDCA-E25CA20CB29B@kernel.crashing.org> <200707101721.58937.ak@suse.de> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-arch-owner@vger.kernel.org To: Segher Boessenkool Cc: Andi Kleen , linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, akpm@linux-foundation.org List-ID: Segher Boessenkool wrote: > > Well at least with -fno-toplevel-reorder it is guaranteed > to work (not the same thing as "is working", heh, but fairly > close). > > It seems to me GCC should grow an option to insert .code16gcc > by itself (-m16 perhaps?) Or GAS could get a flag to include > a file as a prelude before the main thing. Neither will help > Linux right now of course. > -m16 is the right thing, and it also provides a proper hook for eventually having a real 16-bit backend (there are at least two projects for doing that.) For now, I have: CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \ $(cflags-$(ARCH)) \ -Wall -Wstrict-prototypes \ -march=i386 -mregparm=3 \ -include $(srctree)/$(src)/code16gcc.h \ -fno-strict-aliasing -fomit-frame-pointer \ $(call cc-option, -ffreestanding) \ $(call cc-option, -fno-unit-at-a-time) \ $(call cc-option, -fno-toplevel-reorder) \ $(call cc-option, -fno-stack-protector) \ $(call cc-option, -mpreferred-stack-boundary=2) ... since that will require less violence to eventually hack in the proper -m16 option if/when it becomes available. -hpa