From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21323 invoked by alias); 2 Oct 2009 12:41:38 -0000 Received: (qmail 21308 invoked by uid 22791); 2 Oct 2009 12:41:36 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-pz0-f203.google.com (HELO mail-pz0-f203.google.com) (209.85.222.203) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 02 Oct 2009 12:41:31 +0000 Received: by pzk41 with SMTP id 41so1059401pzk.0 for ; Fri, 02 Oct 2009 05:41:29 -0700 (PDT) Received: by 10.115.81.24 with SMTP id i24mr3747613wal.194.1254487289296; Fri, 02 Oct 2009 05:41:29 -0700 (PDT) Received: from Paullaptop (124-170-16-182.dyn.iinet.net.au [124.170.16.182]) by mx.google.com with ESMTPS id 21sm640296pzk.7.2009.10.02.05.41.25 (version=SSLv3 cipher=RC4-MD5); Fri, 02 Oct 2009 05:41:27 -0700 (PDT) Message-ID: From: "Paul Edwards" To: "Joseph S. Myers" , "Ian Lance Taylor" Cc: "Richard Henderson" , References: <200909251516.n8PFGPYn014618@d12av02.megacenter.de.ibm.com> <4F1842D6879348899E3A1999066969F5@Paullaptop> <4AC39435.8010902@redhat.com> <36D486ECFFC04FBD8318DFDD333FD206@Paullaptop> In-Reply-To: Subject: Re: i370 port - constructing compile script Date: Fri, 02 Oct 2009 12:41:00 -0000 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="Windows-1252"; reply-type=original Content-Transfer-Encoding: 7bit Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2009-10/txt/msg00037.txt.bz2 I tried again but I'm not making much progress. Maybe I need to go further than Canada, let's say Alaska. 1. First I need to use my current build machine, Linux, to first of all convert the i370.md into insn*.c files, then generate an xgcc. The xgcc would be capable of producing i370 code so long as I use the "-S" option. It doesn't really matter how this xgcc was created (ie using non-C90 stuff like fork available on my build machine). 2. It is now (at the Alaskan stage) that I need a different sort of config.h/auto-host.h that excludes things like fork. I can present my i370 include files here, that only include C90 functions. It is at this stage that I need it to invoke xgcc (still on the build machine), but it will be with the -S option, so there will be no .o files (although I could perhaps fake that via a scipt to keep "make" happy) and no executable built. The "fake" script could generate JCL at the same time. The C90 library (for MVS) also needs to be cross-compiled here. 3. Then I need to assemble all the assembler on real i370 (MVS). It is at this point that a real host (ie on i370 MVS) xgcc is built. 4. Then I can use that xgcc (on MVS) to compile arbitary C programs. Technically I could have had a requirement for this i370-mvs host compiler to produce say sparc target code. All of the above ignores the bootstrap on MVS, which I know is easy to add on later. To fit into the standard Canadian Cross 3-step model, I need to either collapse steps 2 and 3 into 1 theoretical step, executed across 2 platforms (compile on one, assemble on another), or I need to omit step 4, and say that I cannot target any platform other than the host. Which is fine by me anyway. If combining steps 2 and 3, we could ignore the fact that step 3 happens at all, and assume that there is a theoretical machine that directly executes assembler code. I suspect that it will only take 20 lines or similar of intrusive Makefile/shell script changes to shoe-horn my way into the existing gcc methodology. All I need to do is force it to use my C90 headers at the right spot, so that it stops thinking that I have fork etc, and stop it trying to build an executable. Can someone tell me where to put those 20 lines? I have been playing around with something like this: ./configure --host=i370-mvspdp --enable-languages=c --with-local-prefix=/devel/pdos/pdpclib but haven't been getting very far. I have one more option, and in fact, maybe it's even a preference. The C90-only library (PDPCLIB) I have on MVS is also on Linux, and gives me advance warning of problems about to happen on MVS. As such, I could force the build machine to use this C90 library to build the first xgcc. Then the config file etc would be correct for the next step. Mostly correct, anyway. It would probably get the stack direction wrong instead of leaving it unknown. What suggestions for a configure command that would come closest to what I want? Note that with the above host I had to copy "ar" to "i370-mvspdp-ar" to get it to the stage of building the xgcc. Note - prior to this latest exercise, in order to get some initial feedback, I had been manually constructing the auto-host and using my manually-created compile script to compile. But that's a pretty horrible life, when I'm pretty sure that a judiciously-placed 20 lines of code and some nifty config parameters for host and target will automate the thing. Any suggestions that don't involve "forget about MVS - no-one even knows how to spell MVS these days"? Thanks. Paul.