%[spec] and x86 cpp option problems

Jim Wilson wilson@cygnus.com
Thu Jul 9 16:14:00 GMT 1998


The x86 ports have 2 minor bugs in the the cpp option support.
1) When -ansi is used, they define macros in user namespace, e.g. -Di386.
2) Some macros defined by gcc-2.7.2.3 aren't defined anymore, e.g. -D__i386.

The x86 port tries to handle cpp options by using %(cpp_cpu) %[cpp_cpu].
The intent is that %() will behave like %p, and %[] like %P, but this has two
flaws.  First, the code for %[] does not do all of the things that %P does.
Second, %p can't be used when -ansi.  Fixing this means we would have to
rewrite the %[] support code a bit, and we would have to change the x86 specs
to be instead %{!ansi:%(cpp_cpu)} %[cpp_cpu].  I think this is a bit cryptic,
and likely to result in errors.  Given that we have to explicitly mention ansi
in the specs anyways, it seems cleaner to mention it where we define the -D
options.  This is what all other ports that use %() specs do, e.g. they say
	%{!ansi:-Dfoo} -D__foo -D__foo__
Also, given that ports that need non-ansi macros defined by default are getting
rarer and rarer, I don't think we should complicate the %() support to make
it easy to define non-ansi macros.

The following patch deletes the %[] support, and rewrites the x86 specs to
explicitly handle -ansi, fixing the above problems.

One problem with this is that it means specs aren't backward compatible,
which means that people using -b or -V may get errors.  These options have
have never been safe, and I have always recommended against their use, but we
may need to keep them working.  I could perhaps just give a warning instead
of an error when %[] is used.

Thu Jul  9 15:24:18 1998  Jim Wilson  <wilson@cygnus.com>

	* i386/i386.h (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): New specs.
	(CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Use them.
	(EXTRA_SPECS): Support them.
	* gcc.c: Delete %[spec] support.
	(do_spec_1, case '('): Likewise.
	(do_spec_1, case '['): Call error.
	* i386/aix386ng.h, cygwin32.h, freebsd-elf.h, gas.h, isc.h,
	linux-aout.h, linux-oldld.h, linux.h, osfelf.h, osfrose.h, sco.h,
	sco4.h, sco4dbx.h, sco5.h, sol2.h, sysv3.h (CPP_SPEC): Delete
	%[cpp_cpu].
	
Index: gcc.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/gcc.c,v
retrieving revision 1.44
diff -p -r1.44 gcc.c
*** gcc.c	1998/06/30 01:41:44	1.44
--- gcc.c	1998/07/09 22:23:32
*************** or with constant text in a single argume
*** 359,365 ****
   %{S|P:X} substitutes X if either -S or -P was given to CC.  This may be
  	  combined with ! and . as above binding stronger than the OR.
   %(Spec) processes a specification defined in a specs file as *Spec:
-  %[Spec] as above, but put __ around -D arguments
  
  The conditional text X in a %{S:X} or %{!S:X} construct may contain
  other nested % constructs or spaces, or even newlines.  They are
--- 359,364 ----
*************** skip_whitespace (p)
*** 1103,1110 ****
  }
  
  /* Structure to keep track of the specs that have been defined so far.
!    These are accessed using %(specname) or %[specname] in a compiler
!    or link spec.  */
  
  struct spec_list
  {
--- 1102,1108 ----
  }
  
  /* Structure to keep track of the specs that have been defined so far.
!    These are accessed using %(specname) in a compiler or link spec.  */
  
  struct spec_list
  {
*************** do_spec_1 (spec, inswitch, soft_matched_
*** 3912,3922 ****
  
  	    /* Process a string found as the value of a spec given by name.
  	       This feature allows individual machine descriptions
! 	       to add and use their own specs.
! 	       %[...] modifies -D options the way %P does;
! 	       %(...) uses the spec unmodified.  */
  	  case '(':
- 	  case '[':
  	    {
  	      char *name = p;
  	      struct spec_list *sl;
--- 3910,3917 ----
  
  	    /* Process a string found as the value of a spec given by name.
  	       This feature allows individual machine descriptions
! 	       to add and use their own specs.  */
  	  case '(':
  	    {
  	      char *name = p;
  	      struct spec_list *sl;
*************** do_spec_1 (spec, inswitch, soft_matched_
*** 3924,3930 ****
  
  	      /* The string after the S/P is the name of a spec that is to be
  		 processed.  */
! 	      while (*p && *p != ')' && *p != ']')
  		p++;
  
  	      /* See if it's in the list */
--- 3919,3925 ----
  
  	      /* The string after the S/P is the name of a spec that is to be
  		 processed.  */
! 	      while (*p && *p != ')')
  		p++;
  
  	      /* See if it's in the list */
*************** do_spec_1 (spec, inswitch, soft_matched_
*** 3933,3998 ****
  		  {
  		    name = *(sl->ptr_spec);
  #ifdef DEBUG_SPECS
! 		    fprintf (stderr, "Processing spec %c%s%c, which is '%s'\n",
! 			     c, sl->name, (c == '(') ? ')' : ']', name);
  #endif
  		    break;
  		  }
  
  	      if (sl)
  		{
! 		  if (c == '(')
! 		    {
! 		      value = do_spec_1 (name, 0, NULL_PTR);
! 		      if (value != 0)
! 			return value;
! 		    }
! 		  else
! 		    {
! 		      char *x = (char *) alloca (strlen (name) * 2 + 1);
! 		      char *buf = x;
! 		      char *y = name;
! 		      int flag = 0;
! 
! 		      /* Copy all of NAME into BUF, but put __ after
! 			 every -D and at the end of each arg,  */
! 		      while (1)
! 			{
! 			  if (! strncmp (y, "-D", 2))
! 			    {
! 			      *x++ = '-';
! 			      *x++ = 'D';
! 			      *x++ = '_';
! 			      *x++ = '_';
! 			      y += 2;
! 			      flag = 1;
! 			      continue;
! 			    }
!                           else if (flag && (*y == ' ' || *y == '\t' || *y == '='
!                                             || *y == '}' || *y == 0))
! 			    {
! 			      *x++ = '_';
! 			      *x++ = '_';
! 			      flag = 0;
! 			    }
!                           if (*y == 0)
! 			    break;
! 			  else
! 			    *x++ = *y++;
! 			}
! 		      *x = 0;
! 
! 		      value = do_spec_1 (buf, 0, NULL_PTR);
! 		      if (value != 0)
! 			return value;
! 		    }
  		}
  
! 	      /* Discard the closing paren or bracket.  */
  	      if (*p)
  		p++;
  	    }
  	    break;
  
  	  case 'v':
  	    {
--- 3928,3958 ----
  		  {
  		    name = *(sl->ptr_spec);
  #ifdef DEBUG_SPECS
! 		    fprintf (stderr, "Processing spec %s, which is '%s'\n",
! 			     sl->name, name);
  #endif
  		    break;
  		  }
  
  	      if (sl)
  		{
! 		  value = do_spec_1 (name, 0, NULL_PTR);
! 		  if (value != 0)
! 		    return value;
  		}
  
! 	      /* Discard the closing paren.  */
  	      if (*p)
  		p++;
  	    }
  	    break;
+ 
+ 	    /* This used to be like %(, except that it modified -D options
+ 	       the same way as %P.  This has been obsoleted, as it was not
+ 	       useful for obtaining correct ISO C semantics for defines.  */
+ 	  case '[':
+ 	    error ("use of obsolete %[ operator in specs");
+ 	    return -1;
  
  	  case 'v':
  	    {
Index: config/i386/aix386ng.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/aix386ng.h,v
retrieving revision 1.2
diff -p -r1.2 aix386ng.h
*** aix386ng.h	1998/06/11 15:22:41	1.2
--- aix386ng.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 46,52 ****
  
  #define CPP_PREDEFINES "-Dps2 -Dunix -Asystem(aix)"
  
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] \
    %{posix:-D_POSIX_SOURCE}%{!posix:-DAIX} -D_I386 -D_AIX -D_MBCS"
  
  /* special flags for the aix assembler to generate the short form for all
--- 46,52 ----
  
  #define CPP_PREDEFINES "-Dps2 -Dunix -Asystem(aix)"
  
! #define CPP_SPEC "%(cpp_cpu) \
    %{posix:-D_POSIX_SOURCE}%{!posix:-DAIX} -D_I386 -D_AIX -D_MBCS"
  
  /* special flags for the aix assembler to generate the short form for all
Index: config/i386/cygwin32.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/cygwin32.h,v
retrieving revision 1.10
diff -p -r1.10 cygwin32.h
*** cygwin32.h	1998/07/07 23:31:03	1.10
--- cygwin32.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA. */
*** 50,56 ****
    -Asystem(winnt) -Acpu(i386) -Amachine(i386)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "-remap %(cpp_cpu) %[cpp_cpu] %{posix:-D_POSIX_SOURCE}"
  
  /* We have to dynamic link to get to the system DLLs.  All of libc, libm and
     the Unix stuff is in cygwin.dll.  The import library is called
--- 50,56 ----
    -Asystem(winnt) -Acpu(i386) -Amachine(i386)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "-remap %(cpp_cpu) %{posix:-D_POSIX_SOURCE}"
  
  /* We have to dynamic link to get to the system DLLs.  All of libc, libm and
     the Unix stuff is in cygwin.dll.  The import library is called
Index: config/i386/freebsd-elf.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/freebsd-elf.h,v
retrieving revision 1.7
diff -p -r1.7 freebsd-elf.h
*** freebsd-elf.h	1998/07/05 23:02:02	1.7
--- freebsd-elf.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 143,149 ****
  #define CPP_PREDEFINES "-Di386 -Dunix -D__ELF__ -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
  
  #undef	LIB_SPEC
  #if 1
--- 143,149 ----
  #define CPP_PREDEFINES "-Di386 -Dunix -D__ELF__ -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
  
  #undef	LIB_SPEC
  #if 1
Index: config/i386/gas.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/gas.h,v
retrieving revision 1.3
diff -p -r1.3 gas.h
*** gas.h	1998/05/21 19:12:18	1.3
--- gas.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 57,63 ****
  /* Specify predefined symbols in preprocessor.  */
  
  #define CPP_PREDEFINES "-Dunix"
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] %{posix:-D_POSIX_SOURCE}"
  
  /* Allow #sccs in preprocessor.  */
  
--- 57,63 ----
  /* Specify predefined symbols in preprocessor.  */
  
  #define CPP_PREDEFINES "-Dunix"
! #define CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE}"
  
  /* Allow #sccs in preprocessor.  */
  
Index: config/i386/i386.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/i386.h,v
retrieving revision 1.26
diff -p -r1.26 i386.h
*** i386.h	1998/07/01 23:07:35	1.26
--- i386.h	1998/07/09 22:23:32
*************** extern int ix86_arch;
*** 304,318 ****
  %{mpentiumpro:-mcpu=pentiumpro}}"
  #endif
  
  #ifndef CPP_CPU_DEFAULT_SPEC
  #if TARGET_CPU_DEFAULT == 1
! #define CPP_CPU_DEFAULT_SPEC "-Di486"
  #else
  #if TARGET_CPU_DEFAULT == 2
! #define CPP_CPU_DEFAULT_SPEC "-Dpentium -Di586"
  #else
  #if TARGET_CPU_DEFAULT == 3
! #define CPP_CPU_DEFAULT_SPEC "-Dpentiumpro -Di686"
  #else
  #define CPP_CPU_DEFAULT_SPEC ""
  #endif
--- 304,324 ----
  %{mpentiumpro:-mcpu=pentiumpro}}"
  #endif
  
+ #define CPP_486_SPEC "%{!ansi:-Di486} -D__i486 -D__i486__"
+ #define CPP_586_SPEC "%{!ansi:-Di586 -Dpentium} \
+ 	-D__i586 -D__i586__ -D__pentium -D__pentium__"
+ #define CPP_686_SPEC "%{!ansi:-Di686 -Dpentiumpro} \
+ 	-D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__"
+ 
  #ifndef CPP_CPU_DEFAULT_SPEC
  #if TARGET_CPU_DEFAULT == 1
! #define CPP_CPU_DEFAULT_SPEC "%(cpp_486)"
  #else
  #if TARGET_CPU_DEFAULT == 2
! #define CPP_CPU_DEFAULT_SPEC "%(cpp_586)"
  #else
  #if TARGET_CPU_DEFAULT == 3
! #define CPP_CPU_DEFAULT_SPEC "%(cpp_686)"
  #else
  #define CPP_CPU_DEFAULT_SPEC ""
  #endif
*************** extern int ix86_arch;
*** 322,332 ****
  
  #ifndef CPP_CPU_SPEC
  #define CPP_CPU_SPEC "\
! -Di386 -Asystem(unix) -Acpu(i386) -Amachine(i386) \
! %{mcpu=i486:-Di486} %{m486:-Di486} \
! %{mpentium:-Dpentium -Di586} %{mcpu=pentium:-Dpentium -Di586} \
! %{mpentiumpro:-Dpentiumpro -Di686} %{mcpu=pentiumpro:-Dpentiumpro -Di686} \
! %{!mcpu*:%{!m486:%{!mpentium*: %[cpp_cpu_default]}}}"
  #endif
  
  #ifndef CC1_SPEC
--- 328,339 ----
  
  #ifndef CPP_CPU_SPEC
  #define CPP_CPU_SPEC "\
! -Asystem(unix) -Acpu(i386) -Amachine(i386) \
! %{!ansi:-Di386} -D__i386 -D__i386__ \
! %{mcpu=i486:%(cpp_486)} %{m486:%(cpp_486)} \
! %{mpentium:%(cpp_586)} %{mcpu=pentium:%(cpp_586)} \
! %{mpentiumpro:%(cpp_686)} %{mcpu=pentiumpro:%(cpp_686)} \
! %{!mcpu*:%{!m486:%{!mpentium*:%(cpp_cpu_default)}}}"
  #endif
  
  #ifndef CC1_SPEC
*************** extern int ix86_arch;
*** 348,353 ****
--- 355,363 ----
  #endif
  
  #define EXTRA_SPECS							\
+   { "cpp_486", CPP_486_SPEC},						\
+   { "cpp_586", CPP_586_SPEC},						\
+   { "cpp_686", CPP_686_SPEC},						\
    { "cpp_cpu_default",	CPP_CPU_DEFAULT_SPEC },				\
    { "cpp_cpu",	CPP_CPU_SPEC },						\
    { "cc1_cpu",  CC1_CPU_SPEC },						\
Index: config/i386/isc.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/isc.h,v
retrieving revision 1.1.1.2
diff -p -r1.1.1.2 isc.h
*** isc.h	1997/12/06 17:25:23	1.1.1.2
--- isc.h	1998/07/09 22:23:32
***************
*** 19,25 ****
  #define LIB_SPEC "%{shlib:-lc_s} %{posix:-lcposix} %{Xp:-lcposix} -lc -lg"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] %{posix:-D_POSIX_SOURCE} %{Xp:-D_POSIX_SOURCE}"
  
  /* ISC 2.2 uses `char' for `wchar_t'.  */
  #undef WCHAR_TYPE
--- 19,25 ----
  #define LIB_SPEC "%{shlib:-lc_s} %{posix:-lcposix} %{Xp:-lcposix} -lc -lg"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE} %{Xp:-D_POSIX_SOURCE}"
  
  /* ISC 2.2 uses `char' for `wchar_t'.  */
  #undef WCHAR_TYPE
Index: config/i386/linux-aout.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/linux-aout.h,v
retrieving revision 1.3
diff -p -r1.3 linux-aout.h
*** linux-aout.h	1998/06/29 21:40:32	1.3
--- linux-aout.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 34,40 ****
  #define CPP_PREDEFINES "-Dunix -Dlinux -Asystem(posix)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
  
  #undef SIZE_TYPE
  #define SIZE_TYPE "unsigned int"
--- 34,40 ----
  #define CPP_PREDEFINES "-Dunix -Dlinux -Asystem(posix)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
  
  #undef SIZE_TYPE
  #define SIZE_TYPE "unsigned int"
Index: config/i386/linux-oldld.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/linux-oldld.h,v
retrieving revision 1.3
diff -p -r1.3 linux-oldld.h
*** linux-oldld.h	1998/06/29 21:40:33	1.3
--- linux-oldld.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 35,41 ****
  #define CPP_PREDEFINES "-Dunix -Dlinux -Asystem(posix)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
  
  #undef SIZE_TYPE
  #define SIZE_TYPE "unsigned int"
--- 35,41 ----
  #define CPP_PREDEFINES "-Dunix -Dlinux -Asystem(posix)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
  
  #undef SIZE_TYPE
  #define SIZE_TYPE "unsigned int"
Index: config/i386/linux.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/linux.h,v
retrieving revision 1.9
diff -p -r1.9 linux.h
*** linux.h	1998/07/05 23:02:03	1.9
--- linux.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 155,163 ****
  
  #undef CPP_SPEC
  #ifdef USE_GNULIBC_1
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
  #else
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
  #endif
  
  #undef CC1_SPEC
--- 155,163 ----
  
  #undef CPP_SPEC
  #ifdef USE_GNULIBC_1
! #define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
  #else
! #define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
  #endif
  
  #undef CC1_SPEC
Index: config/i386/osfelf.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/osfelf.h,v
retrieving revision 1.1.1.1
diff -p -r1.1.1.1 osfelf.h
*** osfelf.h	1997/08/11 15:57:17	1.1.1.1
--- osfelf.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 25,31 ****
  #define CPP_PREDEFINES "-DOSF -DOSF1 -Dunix -Asystem(xpg4)"
  
  #undef  CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] \
  %{mrose: -D__ROSE__ %{!pic-none: -D__SHARED__}} \
  %{!mrose: -D__ELF__ %{fpic: -D__SHARED__}} \
  %{mno-underscores: -D__NO_UNDERSCORES__} \
--- 25,31 ----
  #define CPP_PREDEFINES "-DOSF -DOSF1 -Dunix -Asystem(xpg4)"
  
  #undef  CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) \
  %{mrose: -D__ROSE__ %{!pic-none: -D__SHARED__}} \
  %{!mrose: -D__ELF__ %{fpic: -D__SHARED__}} \
  %{mno-underscores: -D__NO_UNDERSCORES__} \
Index: config/i386/osfrose.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/osfrose.h,v
retrieving revision 1.3
diff -p -r1.3 osfrose.h
*** osfrose.h	1998/03/06 14:44:50	1.3
--- osfrose.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 93,99 ****
  #define CPP_PREDEFINES "-DOSF -DOSF1 -Dunix -Asystem(xpg4)"
  
  #undef  CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] \
  %{!melf: -D__ROSE__ %{!pic-none: -D__SHARED__}} \
  %{melf: -D__ELF__ %{fpic: -D__SHARED__}} \
  %{mno-underscores: -D__NO_UNDERSCORES__} \
--- 93,99 ----
  #define CPP_PREDEFINES "-DOSF -DOSF1 -Dunix -Asystem(xpg4)"
  
  #undef  CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) \
  %{!melf: -D__ROSE__ %{!pic-none: -D__SHARED__}} \
  %{melf: -D__ELF__ %{fpic: -D__SHARED__}} \
  %{mno-underscores: -D__NO_UNDERSCORES__} \
Index: config/i386/sco.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/sco.h,v
retrieving revision 1.1.1.1
diff -p -r1.1.1.1 sco.h
*** sco.h	1997/08/11 15:57:17	1.1.1.1
--- sco.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 58,64 ****
  #define CPP_PREDEFINES "-Dunix -DM_UNIX -DM_I386 -DM_COFF -DM_WORDSWAP -Asystem(svr3)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] %{scointl:-DM_INTERNAT}"
  
  /* This spec is used for telling cpp whether char is signed or not.  */
  
--- 58,64 ----
  #define CPP_PREDEFINES "-Dunix -DM_UNIX -DM_I386 -DM_COFF -DM_WORDSWAP -Asystem(svr3)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %{scointl:-DM_INTERNAT}"
  
  /* This spec is used for telling cpp whether char is signed or not.  */
  
Index: config/i386/sco4.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/sco4.h,v
retrieving revision 1.1.1.1
diff -p -r1.1.1.1 sco4.h
*** sco4.h	1997/08/11 15:57:17	1.1.1.1
--- sco4.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 66,72 ****
   "-Asystem(svr3)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] \
    -D_i386 -D_M_I386 -D_M_I86 -D_M_I86SM -D_M_SDATA -D_M_STEXT \
    -D_unix -D_M_UNIX -D_M_XENIX \
    -D_M_SYS5 -D_M_SYSV -D_M_SYS3 -D_M_SYSIII \
--- 66,72 ----
   "-Asystem(svr3)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) \
    -D_i386 -D_M_I386 -D_M_I86 -D_M_I86SM -D_M_SDATA -D_M_STEXT \
    -D_unix -D_M_UNIX -D_M_XENIX \
    -D_M_SYS5 -D_M_SYSV -D_M_SYS3 -D_M_SYSIII \
Index: config/i386/sco4dbx.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/sco4dbx.h,v
retrieving revision 1.1.1.1
diff -p -r1.1.1.1 sco4dbx.h
*** sco4dbx.h	1997/08/11 15:57:17	1.1.1.1
--- sco4dbx.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 64,70 ****
  #define CPP_PREDEFINES "-Dunix -Asystem(svr3)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] \
    -D_M_I386 -D_M_I86 -D_M_I86SM -D_M_SDATA -D_M_STEXT \
    -D_M_UNIX -D_M_XENIX \
    -D_M_SYS5 -D_M_SYSV -D_M_SYS3 -D_M_SYSIII \
--- 64,70 ----
  #define CPP_PREDEFINES "-Dunix -Asystem(svr3)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) \
    -D_M_I386 -D_M_I86 -D_M_I86SM -D_M_SDATA -D_M_STEXT \
    -D_M_UNIX -D_M_XENIX \
    -D_M_SYS5 -D_M_SYSV -D_M_SYS3 -D_M_SYSIII \
Index: config/i386/sco5.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/sco5.h,v
retrieving revision 1.15
diff -p -r1.15 sco5.h
*** sco5.h	1998/07/02 08:13:43	1.15
--- sco5.h	1998/07/09 22:23:32
*************** dtors_section ()							\
*** 832,838 ****
  /* You are in a maze of GCC specs ... all alike */
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] \
    %{fpic:%{mcoff:%e-fpic is not valid with -mcoff}} \
    %{fPIC:%{mcoff:%e-fPIC is not valid with -mcoff}} \
    -D__i386 -D__unix -D_SCO_DS=1 -D_M_I386 -D_M_XENIX -D_M_UNIX \
--- 832,838 ----
  /* You are in a maze of GCC specs ... all alike */
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) \
    %{fpic:%{mcoff:%e-fpic is not valid with -mcoff}} \
    %{fPIC:%{mcoff:%e-fPIC is not valid with -mcoff}} \
    -D__i386 -D__unix -D_SCO_DS=1 -D_M_I386 -D_M_XENIX -D_M_UNIX \
Index: config/i386/sol2.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/sol2.h,v
retrieving revision 1.1.1.4
diff -p -r1.1.1.4 sol2.h
*** sol2.h	1998/04/04 05:27:40	1.1.1.4
--- sol2.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 39,45 ****
    "-Dunix -D__svr4__ -D__SVR4 -Dsun -Asystem(svr4)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] \
     %{compat-bsd:-iwithprefixbefore ucbinclude -I/usr/ucbinclude}"
  
  #undef LIB_SPEC
--- 39,45 ----
    "-Dunix -D__svr4__ -D__SVR4 -Dsun -Asystem(svr4)"
  
  #undef CPP_SPEC
! #define CPP_SPEC "%(cpp_cpu) \
     %{compat-bsd:-iwithprefixbefore ucbinclude -I/usr/ucbinclude}"
  
  #undef LIB_SPEC
Index: config/i386/sysv3.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/sysv3.h,v
retrieving revision 1.1.1.1
diff -p -r1.1.1.1 sysv3.h
*** sysv3.h	1997/08/11 15:57:17	1.1.1.1
--- sysv3.h	1998/07/09 22:23:32
*************** Boston, MA 02111-1307, USA.  */
*** 44,50 ****
  
  #define CPP_PREDEFINES "-Dunix -Asystem(svr3)"
  
! #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] %{posix:-D_POSIX_SOURCE}"
  
  /* Writing `int' for a bitfield forces int alignment for the structure.  */
  
--- 44,50 ----
  
  #define CPP_PREDEFINES "-Dunix -Asystem(svr3)"
  
! #define CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE}"
  
  /* Writing `int' for a bitfield forces int alignment for the structure.  */
  



More information about the Gcc-patches mailing list