From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from terminus.zytor.com ([192.83.249.54]:50430 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760110AbXGJVoN (ORCPT ); Tue, 10 Jul 2007 17:44:13 -0400 Message-ID: <4693FCE7.2060308@zytor.com> Date: Tue, 10 Jul 2007 14:40:55 -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> <4693EF48.1080209@zytor.com> <763AC431-73A6-4A5F-9453-A66A86D7DEEB@kernel.crashing.org> In-Reply-To: <763AC431-73A6-4A5F-9453-A66A86D7DEEB@kernel.crashing.org> 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: > >> 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. > > Looks good, except you don't want -fno-unit-at-a-time if > -fno-toplevel-reorder works. And of course it would be > good to get rid of -fno-strict-aliasing, but let's not > go there today ;-P > OK, how does this look: 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-toplevel-reorder,\ $(call cc-option, -fno-unit-at-a-time)) \ $(call cc-option, -fno-stack-protector) \ $(call cc-option, -mpreferred-stack-boundary=2) I think dropping -fno-strict-aliasing for this code is probably bad... it's pretty low-level stuff which does a lot of bitlevel manipulation. -hpa