This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: i370 port - constructing compile script
- From: "Paul Edwards" <mutazilah at gmail dot com>
- To: "Ulrich Weigand" <uweigand at de dot ibm dot com>
- Cc: "Ian Lance Taylor" <iant at google dot com>, <gcc at gcc dot gnu dot org>
- Date: Tue, 6 Oct 2009 20:31:42 +1100
- Subject: Re: i370 port - constructing compile script
- References: <200910051315.n95DF2Gd023159@d12av02.megacenter.de.ibm.com>
Would you be able to give me the two suggested configure
commands so that I can find out the answer to the above, one
way or another?
For step 2 (building the cross-compiler), you'd need something
along the lines of
.../configure --target=i370-mvs --prefix=... --with-sysroot=... \
--enable-languages=c
where prefix points to the directory where the cross-compiler
should be installed, and sysroot points to the directory where
the MVS libraries and header are installed.
I tried to action this today.
But first I tried to get the normal make process working, ie without
the --prefix and --with-sysroot above, and just using defaults. I had
some surprising success, but also one failure.
The failure (on 3.4.6, but not on 3.2.3) is that after the successful
build, when I do an xgcc -S, it produces the assembler file, and then
hangs. I traced this to gcc.c which was in a loop doing this:
pid = pwait (commands[i].pid, &status, 0);
getting a return of 0 all the time, while the process (cc1) that it is
waiting on is showing up as being <defunct>.
Not sure what that is about. I have gcc 3.2.3 working without that
problem, so I'll spend some time comparing how the two pexecutes
work differently.
Of course I don't have system-related problems like this on MVS,
because I have a single executable and a simple function call. :-)
In the meantime, I have a question. You said above that I have to
point sysroot to the MVS libraries and headers. What libraries?
And why, at the point of building a cross-compiler, do I need any
of those things? The normal way I build a cross-compiler I just
do the above configure without prefix or with-sysroot, and it
builds an xgcc executable as expected, using the Linux headers,
as expected.
I would certainly like an option to force it to use my C90-only
Linux headers and my C90-only libraries, but that should be
strictly optional, and if I did do that, I would expect to see
configure saying things like "no you don't have fork, or getrusage,
or sys/types" etc etc.
I think I am still failing to understand some major aspect of the
build process.
BFN. Paul.