From mboxrd@z Thu Jan 1 00:00:00 1970 From: mjn3@codepoet.org (Manuel Novoa III) Subject: Re: C compiler, assembler and linker Date: Tue, 16 Jul 2002 19:31:06 -0600 Sender: linux-8086-owner@vger.kernel.org Message-ID: <20020717013106.GA5219@codepoet.org> References: <20020715220208.GA15993@codepoet.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Q68bSM7Ycu6FN28Q" Return-path: Content-Disposition: inline In-Reply-To: List-Id: To: Riley Williams Cc: Linux-8086 --Q68bSM7Ycu6FN28Q Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Riley, Didn't have time yesterday to generate the patch, but here it is. Some of the build changes only make sense if you aren't installing in the default locations as root. As a refresher, it adds #elif support, #warning support (for non-continued lines), asm() at file scope, limited support for recursive #define (#define stdin stdin), and more complete exclusion of the floating point related code when floats are disabled. This lets you build bcc for elks. As I mentioned earlier, it looks like the preprocessor works but it dies when trying to do code generation. On Tue, Jul 16, 2002 at 07:27:21AM +0100, Riley Williams wrote: > Unfortunately, that's not actually true. It's very easy to prove that > bcc uses SIGNED chars if the unsigned keyword isn't specifically given. > Robert also states that bcc does not correctly handle signed chars, so > this default rather worries me. Can you send me a simple test app to illustrate this? Thanks. > As it happens, I emailed a patch to Robert back on 6th June 2002 that > added and correctly implemented the signed keyword in the declspec > function, thus dealing with most of the problem. There may be a few > corner cases left where signed will cause problems, but I haven't seen > any of them yet. I've attached a gzip'd copy of that patch to this email > for reference... I'm looking forward to trying out your patch in a few days when things slow down for me. Manuel --Q68bSM7Ycu6FN28Q Content-Type: application/octet-stream Content-Disposition: attachment; filename="dev86-0.16.3-diff.gz" Content-Transfer-Encoding: base64 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 --Q68bSM7Ycu6FN28Q--