public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: Target deprecation, round three
@ 2003-02-25  9:15 Nathanael Nerode
  2003-02-25 17:59 ` David Edelsohn
  0 siblings, 1 reply; 49+ messages in thread
From: Nathanael Nerode @ 2003-02-25  9:15 UTC (permalink / raw)
  To: gcc, zack

>Now, cpplib, c-lex.c, and c-parse.in all make extensive use of
>character constants to designate members of the basic source character
>set.  The actual values of these constants are defined by the
>execution character set of the host compiler.  If that set is ASCII or
This sounds wrong.  Shouldn't the values be defined by the execution set 
of the *build* compiler?  In a Canadian cross, that should be the 
compiler which is used to compile these files.

>any superset thereof, there is no problem -- ASCII corresponds exactly
>to the portion of ISO10646 containing the basic source character set.
>But if the execution character set of the host compiler is EBCDIC,
>the character constants will have inappropriate values for working
>with text encoded in UTF8.

Again, *build* compiler.  I suspect HOST_EBCDIC may be misnamed.

Suppose we require that the *build* compiler work in ASCII, and require 
that GCC operate in an encoding of ISO10646 internally.  We can then 
still make a native GCC for an EBCDIC host by causing all files input to
be translated from EBCDIC to ISO10646 before the rest of GCC operates, 
and likewise on output.  However, this native GCC can't be *built* on an 
EBCDIC machine; it has to be built on an ASCII machine.

In other words, you can make GCC target EBCDIC machines, you can have 
EBCDIC machines as hosts running GCC, but you can't actually build GCC 
on an EBCDIC machine.

I think that's a reasonable, low-gunk solution.  Are the users of EBCDIC 
environments wedded to the ability to bootstrap on their machines, or 
would being able to run GCC (built elsewhere) on their machines be 
sufficient?

--Nathanael

^ permalink raw reply	[flat|nested] 49+ messages in thread
* Re: Target deprecation, round three
@ 2003-02-25 16:57 Chris Lattner
  0 siblings, 0 replies; 49+ messages in thread
From: Chris Lattner @ 2003-02-25 16:57 UTC (permalink / raw)
  To: Zack Weinberg, Fergus Henderson; +Cc: gcc

Fergus Henderson wrote:
>On 24-Feb-2003, Zack Weinberg <zack at codesourcery dot com> wrote:
>> There are four possible ways to get around this problem:
>> - Replace all these character constants with integer or enumeration
>>   constants.  I consider this infeasible, it would make these parts of
>>   the compiler much harder to maintain.

>Well, sure, don't use integer constants directly, use #defines!
>I don't see why e.g.
>	if (c == SLASH_CHAR)
>is so much harder to maintain than
>	if (c == '/')

Or better yet, how about:

if (c == CHAR_LITERAL('/')) ...

Where on an ascii machine, the CHAR_LITERAL (or whatever) #define just
returns its argument.  On an EBCDIC machine it could index into a 256
element char array to do the mapping.  A bit slower on EBCDIC machines,
but no impact on ASCII machines.

If new code forgets to use the CHAR_LITERAL macro, it would just break on
EBCDIC machines, without affecting the correctness of the ASCII machines.
IMHO, this is better than using a slew of #defines for each character, and
having to remember what each char maps to...

-Chris

-- 
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/

^ permalink raw reply	[flat|nested] 49+ messages in thread
* Target deprecation, round three
@ 2003-02-24  6:58 Zack Weinberg
  2003-02-24 12:43 ` Hans-Peter Nilsson
                   ` (8 more replies)
  0 siblings, 9 replies; 49+ messages in thread
From: Zack Weinberg @ 2003-02-24  6:58 UTC (permalink / raw)
  To: gcc
  Cc: Nick Burrett, David Edelsohn, Hans-Peter Nillson, Carl Miller,
	Rick Sustek


Let's try to get a final list for deprecations in the 3.3 release by
the end of the week.  I once again have to apologize for dropping the
ball.

The majority of the targets on my "round two" list
(http://gcc.gnu.org/ml/gcc/2002-12/msg00702.html) went over without
comment.  With a couple of exceptions I've dropped the targets which
someone spoke up in favor of; let's discuss the exceptions a bit more
carefully.  (If your favorite target is still on the list, speak up!
If you did already, it means I lost your mail; my apologies, and
please remind me.)

I'm pushing back on the following:

	i370-*-*

  All respect to the people who continue working on this back end, but
  they are doing so outside the official repository and have shown no
  interest in merging their work back.  Also, this is the same
  architecture as the s390-*-* back end, which is actively maintained.
  It would be better for the health of the compiler as a whole if that
  back end were augmented to support the things that it currently
  doesn't but the i370 back end does.

  Note that this is the only back end which defines HOST_EBCDIC and
  TARGET_EBCDIC.  There is no difficulty in continuing to support
  TARGET_EBCDIC - the s390 back end might plausibly want to use it in
  the future - but supporting HOST_EBCDIC in conjunction with certain
  features of C99 (which effectively require internal use of the ISO
  10646 aka Unicode charset) would force us to make substantial
  changes to the C front end that would leave it much harder to
  maintain.  (The short version is that character constants could not
  be used anywhere.)  Thus I would like to drop HOST_EBCDIC
  permanently at the same time this target is removed.  This does
  *not* mean the compiler will be unable to accept input files encoded
  in EBCDIC; it only means that it will itself need to be built in an
  environment where the execution character set is a superset of ASCII.

	alpha*-*-linux*libc1*
	i?86-*-linux*libc1*
	m68k-*-linux*libc1*
	powerpc*-*-linux*libc1*
	sparc-*-linux*libc1*

  I received a couple of messages expressing continued interest in
  some of these targets.  I have no problem keeping those that are
  actually used; however, I am not clear on which those are.  Is it
  just ix86, or are others in use too, and if so which ones?

	arm*-*-aof*

  This target is responsible for masses of #ifdefs all over the ARM
  back end.  Is it *really* necessary to continue using this rather
  quirky assembler?  Could you perhaps move to GAS and arm-elf
  instead?

        m68k-sun-sunos*
        sparc-sun-sunos*

  These targets are hosted systems with C libraries that predate C89,
  which means they impose disproportionate maintenance burdens.  They
  have long since been EOLed by Sun.  Please advise whether you really
  need a 3.x GCC for these targets.

In addition to target deprecation, I would also like to propose the
removal of support for DWARF version 1.  There are only two target
patterns that request DWARF 1 but not DWARF 2: mips-sni-sysv4, which
is already on the deprecation list, and arc-*-*, which I see no
intrinsic reason why it couldn't migrate to DWARF 2; it is already an
ELF target.  Tangentially, my impression is that the ARC target itself
is still actively maintained, but I am not sure.  Please speak up if
you have a current need for this target.

zw

Current list of targets to deprecate:

        i370-*-*
        i960-*-*
        m88k-*-*
        romp-*-*

	alpha*-*-interix*
	alpha*-*-linux*libc1*

	arm*-*-aout*
	arm*-*-aof*
	arm*-*-conix*
	arm*-*-oabi
	strongarm-*-coff*

	hppa1.0-*-osf*
	hppa1.0-*-bsd*
	hppa1.[01]-*-hpux[789]*
	hppa*-*-hiux*
	hppa*-*-lites*
	hppa*-*-mpeix*

	i?86-ncr-*
	i?86-sequent-*
	i?86-moss-*
	i?86-*-netware
	i?86-*-freebsd2*
	i?86-*-netbsd*aout*
	i?86-*-coff*
	i?86-*-linux*aout*
	i?86-*-linux*libc1
	i?86-*-moss*
	i?86-*-sysv3*
	i?86-*-vsta
	i?86-*-interix # not interix3

	m68000-hp-bsd*
	m68000-hp-hpux*
	m68000-sun-sunos*
	m68000-att-sysv*
	m68k-atari-sysv*
	m68k-motorola-sysv*
	m68k-ncr-sysv*
	m68k-plexus-sysv*
	m68k-tti-*
	m68k-crds-unos*
	m68k-cbm-sysv*
	m68k-ccur-rtu*
	m68k-hp-bsd*
	m68k-hp-hpux*
	m68k-sun-mach*
	m68k-sun-sunos*
	m68k-*-linux*aout*
	m68k-*-linux*libc1
	m68k-*-psos*

	mips*-*-ecoff*
        mips-sni-sysv4

	powerpc*-*-sysv*  # the generic one only
	powerpc*-*-linux*libc1
	rs6000-ibm-aix[123]*
	rs6000-bull-bosx
	rs6000-*-mach*

	sparc-*-aout*
	sparc-*-netbsd*aout*
	sparc-*-bsd*
	sparc-*-chorusos*
	sparc-*-linux*aout*
	sparc-*-linux*libc1*
	sparc-*-lynxos*
	sparc-hal-solaris2*
	sparc-*-sunos[34]*
	sparclet-*-aout*
	sparclite-*-coff*
	sparclite-*-aout*
	sparc86x-*-aout*

	vax-*-bsd*
	vax-*-sysv*
	vax-*-netbsd*aout*
        vax-*-vms*

^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2003-04-14 16:35 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-02-25  9:15 Target deprecation, round three Nathanael Nerode
2003-02-25 17:59 ` David Edelsohn
2003-02-25 18:16   ` Nathanael Nerode
  -- strict thread matches above, loose matches on Subject: below --
2003-02-25 16:57 Chris Lattner
2003-02-24  6:58 Zack Weinberg
2003-02-24 12:43 ` Hans-Peter Nilsson
2003-02-24 17:32   ` Zack Weinberg
2003-02-24 17:47     ` Hans-Peter Nilsson
2003-02-24 17:48       ` Zack Weinberg
2003-02-24 18:10         ` Hans-Peter Nilsson
2003-02-24 14:47 ` Daniel Jacobowitz
2003-02-24 16:17 ` David Edelsohn
2003-02-24 16:45   ` Andreas Jaeger
2003-02-24 16:46     ` David Edelsohn
2003-02-24 17:20   ` Zack Weinberg
2003-02-24 18:27     ` David Edelsohn
2003-02-24 18:37       ` Zack Weinberg
2003-02-24 19:36         ` Gabriel Dos Reis
2003-02-24 19:49           ` Zack Weinberg
2003-02-24 19:56             ` Gabriel Dos Reis
2003-02-24 20:02             ` David Edelsohn
2003-02-24 20:13               ` Gabriel Dos Reis
2003-02-24 21:14               ` Zack Weinberg
2003-02-24 21:42                 ` David Edelsohn
2003-02-24 23:03                   ` Mark Mitchell
2003-02-24 23:07                     ` Daniel Jacobowitz
2003-02-24 23:15                       ` David Edelsohn
2003-02-24 23:40                         ` Steven Bosscher
2003-02-25  1:44                           ` David Edelsohn
2003-02-25  6:45                             ` Tolga Dalman
2003-02-26  0:06                         ` Richard Henderson
2003-02-24 23:08                     ` David Edelsohn
2003-02-24 23:29                     ` Zack Weinberg
2003-02-25  3:26                 ` Fergus Henderson
2003-04-14 16:57                   ` Nick Ing-Simmons
2003-02-24 18:44 ` DJ Delorie
2003-02-24 18:57   ` Zack Weinberg
2003-02-24 21:49 ` Franz Sirl
2003-02-24 22:40 ` Nick Burrett
2003-02-24 22:47 ` Andreas Schwab
2003-02-25 11:14 ` Ralf Corsepius
2003-02-25 14:57   ` Joel Sherrill
2003-02-25 15:33     ` Ralf Corsepius
2003-02-25 15:36       ` Joel Sherrill
2003-02-25 19:23         ` Zack Weinberg
2003-02-25 19:25           ` Joel Sherrill
2003-02-25 19:28           ` Joel Sherrill
2003-02-25 20:36             ` Zack Weinberg
2003-02-25 23:55 ` Richard Henderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).