[gnu.gcc.bug] GCC

jb@SUN.COM (Jeffrey Borish) (10/19/88)

Two files seem to be missing for the 386 port.  They're called crt1.o
and crtn.o.  I have made it through the installation directions to step
8 (recompile the compiler with itself) at which point make complains
that it can't find the two files.  

Also, is this port going to work on a Sun386i?  I've been using i386v,
but this isn't System V.

jb@SUN.COM (Jeffrey Borish) (10/25/88)

Two files seem to be missing for the 386 port.  They're called crt1.o
and crtn.o.  I have made it through the installation directions to step
7 (make stage1) at which point make complains that it doesn't know how
to make the two files.  Also, is this port going to work on a Sun386i?
I've been using i386v, but this isn't System V.

james@bigtex.cactus.org (James Van Artsdalen) (10/28/88)

In <8810241736.AA04611@noname>, pixar!euphonics!jb@SUN.COM (Jeffrey Borish) wrote:

> Two files seem to be missing for the 386 port.  They're called crt1.o
> and crtn.o.

This is a SysV-ism (needed to support shared libraries).  Have it use
crt0.o instead.
-- 
James R. Van Artsdalen      james@bigtex.cactus.org      "Live Free or Die"
Home: 512-346-2444 Work: 338-8789       9505 Arboretum Blvd Austin TX 78759

jc6l+@ANDREW.CMU.EDU ("John M. Cohn") (07/17/89)

Has anyone ported GCC (and G++) to the PS/2 MOD 70 or 80 running AIX ?
Any pointers appreciated !

John Cohn
Carnegie Mellon University

TRANLE@INTELLICORP.COM (Minh Tran-Le) (07/17/89)

Here are the config files needed to compile gcc under ibm ps2 aix. 

It is not perfect and it still has the following bugs:

o the -g does not generate the correct assembly code for the assembler
to generate the correct dbx debugging info.  Somehow the ps2 aix
assembler does not understand the .stab commands.  Somebody that knows
how the ibm dbx work could fix that one.

o the ibm ps2 assembler has a bug in its span optimization code.  The
current setting disable completely the span optimization feature of the
assembler.


You will have to modify the config.gcc to include the follwing lines:

    aix386 | ps2aix )		# for IBM PS/2 running AIX
	    machine=aix386
	    cpu_type=i386
	    configuration_file=xm-${machine}.h
	    target_machine=tm-${machine}.h
	    ;;

The following "tm-aix386.h" and "xm-aix386.h" are modification of the 
gcc "tm-i386v.h" and "xm-i386v.h".

----- tm-aix386.h -------------------------------------------------------------
/* Definitions for IBM PS2 running AIX/386.
   Copyright (C) 1988 Free Software Foundation, Inc.

This file is part of GNU CC.

GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.

GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING.  If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */


#include "tm-i386.h"

/* Use the ATT assembler syntax.  */

#include "tm-att386.h"

/* By default, target has a 80387.  */

#define TARGET_DEFAULT 1

/* Use crt1.o as a startup file and crtn.o as a closing file.  */

#define STARTFILE_SPEC  \
  "%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}"

#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p} crtn.o%s"

/* Specify predefined symbols in preprocessor.  */

#define CPP_PREDEFINES "-Dunix -Di386 -DAIX"

/* special flags for the aix assembler to generate the short form for all
   qualifying forward reference */

#define ASM_SPEC "-s2"

/* Allow #sccs in preprocessor.  */

#define SCCS_DIRECTIVE

/* Output #ident as a .ident.  */

#define ASM_OUTPUT_IDENT(FILE, NAME) fprintf (FILE, "\t.ident \"%s\"\n", NAME);

/* We don't want to output SDB debugging information. */

#undef SDB_DEBUGGING_INFO
#undef ASM_FILE_START
#if 0
/* this is for when ibm fix the span optimization bug in their
   assembler */
#define ASM_FILE_START(FILE) 					\
  do { fprintf (FILE, "\t.file\t\"%s\"\n", dump_base_name);	\
       if (optimize) ASM_FILE_START_1 (FILE);			\
     } while (0)

#else

#define ASM_FILE_START(FILE) 					\
  do { fprintf (FILE, "\t.file\t\"%s\"\n", dump_base_name);	\
       fprintf (FILE, "\t.noopt\n");                            \
     } while (0)
#endif

/* This was suggested, but it shouldn't be right for DBX output. -- RMS
   #define ASM_OUTPUT_SOURCE_FILENAME(FILE, NAME) */

/* This is IBM AIX, it has a DBX debugger */

#define DBX_DEBUGGING_INFO

/* Implicit library calls should use memcpy, not bcopy, etc.  */

#define TARGET_MEM_FUNCTIONS


/* Machines that use the AT&T assembler syntax
   also return floating point values in an FP register.  */
/* Define how to find the value returned by a function.
   VALTYPE is the data type of the value (as a tree).
   If the precise function being called is known, FUNC is its FUNCTION_DECL;
   otherwise, FUNC is 0.  */

#define VALUE_REGNO(MODE) \
  (((MODE)==SFmode || (MODE)==DFmode) ? FIRST_FLOAT_REG : 0)

/* 1 if N is a possible register number for a function value. */

#define FUNCTION_VALUE_REGNO_P(N) ((N) == 0 || (N)== FIRST_FLOAT_REG)

------ end of tm-aix386.h file ------------------------------------------------


------ xm-aix386.h ------------------------------------------------------------
/* Configuration for GNU C-compiler for IBM PS/2 running AIX/386.
   Copyright (C) 1988 Free Software Foundation, Inc.

This file is part of GNU CC.

GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.

GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING.  If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */


/* #defines that need visibility everywhere.  */
#define FALSE 0
#define TRUE 1

/* This describes the machine the compiler is hosted on.  */
#define HOST_BITS_PER_CHAR 8
#define HOST_BITS_PER_SHORT 16
#define HOST_BITS_PER_INT 32
#define HOST_BITS_PER_LONG 32

/* Arguments to use with `exit'.  */
#define SUCCESS_EXIT_CODE 0
#define FATAL_EXIT_CODE 33

#define USG

/* target machine dependencies.
   tm.h is a symbolic link to the actual target specific file.   */
#include "tm.h"

#define bcopy(a,b,c) memcpy (b,a,c)
#define bzero(a,b) memset (a,0,b)
#define bcmp(a,b,c) memcmp (a,b,c)

#define LINK_SPEC "%{!K:-K} %{!T*:-T0x00400000} %{lg} %{g} %{z:-lm}"

#ifdef __GNUC__
#define alloca(n) __builtin_alloca(n)
#endif
----- end of xm-aix386.h ------------------------------------------------------


Minh Tran-Le

Arpanet: tranle@intellicorp.com
Uucp:  ..sun!icmv!mtranle
-------