This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Projects for beginners
On Wed, Jan 31, 2001 at 11:17:58AM -0800, Zack Weinberg wrote:
> I read through every last one of the x-host and xm-host.h files.
> The settings in there are, without exception, in one of these
> categories:
>
> - Historical dead wood. [Some files contain only comments!]
> - Belongs in a tm.h or t-target file. E.g. x-linux has no business
> saying not to run fixproto, xm-interix.h has no business specifying
> how to run global constructors.
> - Belongs in system.h. E.g. #define TRUE 1.
> - Is a system category assertion, which should be replaced by feature
> checks, but we have to do work in machine-independent code first.
> - Could perfectly well be determined by autoconf even when
> cross-compiling - with sufficient cleverness. It may be infeasible
> to get everything, but there's no reason in principle why not.
> The hardest ones will be (SUCCESS|FATAL)_EXIT_CODE. You might think
> the HOST_BITS_PER_* stuff would be impossible when cross compiling,
> but autoconf 2.50 knows how to do it.
I left one out. Apologies.
- Information on how to deal with file systems which are not
Unix-y. For instance, definitions of PATH_SEPARATOR(_2),
HAVE_DOS_BASED_FILE_SYSTEM, a complete override of
INCLUDE_DEFAULTS for VMS, etc.
This stuff is harder to deal with than the others. For DOS, we could
restructure the machine-independent code so there was just one
switch, namely HAVE_DOS_BASED_FILE_SYSTEM, and autoconf could set that
based on the host machine name. We probably want to go in that
direction anyway. Ad hoc #define PATH_SEPARATOR_2 is not terribly
reliable. I'd like to see all the path manipulators scattered all
over the code sorted out and moved to libiberty, which would help.
I don't know what to do about VMS. It is utterly different, although
I'm told the system libraries mask a lot of the differences these
days. I would be very surprised if GCC actually builds on
{alpha,vax}-dec-*vms* right now.
zw