Thread View: gnu.g++.bug
1 messages
1 total messages
Started by Admin
Mon, 27 Nov 1989 02:16
g++,libg++,gcc on 386/ix 2.02
Author: Admin
Date: Mon, 27 Nov 1989 02:16
Date: Mon, 27 Nov 1989 02:16
615 lines
18337 bytes
18337 bytes
These are the changes I am using to build g++ 1.36.1 on 386/ix
using COFF & collect. I used "config.g++ i386-sysv".
This set of patches is based on a posting by James Van Artsdalen
(thanks James) for installing g++ under i386 SysVr3.2. In addition I've
included the patches used for gcc (which installed cleanly) and libg++
(which still isn't 100%, but is pretty good).
This set of patches assumes the native assembler and loader will be used.
The directory structure I used is /usr2/gnu/gcc ...g++ ...libg++ and the
patches reflect this structure. You may need to adjust based on a different
directory structure.
The first set of patches (CUT 1 - END CUT 1) affects g++ (level 1.36.1)
The second set (CUT 2 - END CUT 2) libg++ (1.36.1)
and the third set (CUT 3 - END CUT 3) gcc (1.36)
Note the second set has patches to Makefile and to g++-include/ctype.h
Good luck. I hope this helps someone else get this software installed.
========== CUT 1 ============
RCS file: RCS/cplus-decl.c,v
retrieving revision 1.1
diff -c -r1.1 cplus-decl.c
*** /tmp/,RCSt1a12258 Thu Nov 9 19:17:43 1989
--- cplus-decl.c Wed Nov 8 21:13:32 1989
***************
*** 4993,4999 ****
assert (TREE_CODE (type) == METHOD_TYPE);
ctype = TYPE_METHOD_BASETYPE (type);
}
! ctype = grok_method_quals (ctype, dummy, quals);
type = TREE_TYPE (dummy);
quals = NULL_TREE;
}
--- 4993,4999 ----
assert (TREE_CODE (type) == METHOD_TYPE);
ctype = TYPE_METHOD_BASETYPE (type);
}
! ctype = (tree) grok_method_quals (ctype, dummy, quals);
type = TREE_TYPE (dummy);
quals = NULL_TREE;
}
===================================================================
RCS file: RCS/cplus-lex.c,v
retrieving revision 1.1
diff -c -r1.1 cplus-lex.c
*** /tmp/,RCSt1a12258 Thu Nov 9 19:17:48 1989
--- cplus-lex.c Wed Nov 8 20:43:30 1989
***************
*** 980,987 ****
--- 980,992 ----
pending_inlines = pending_inlines->next;
finput = finput2;
#if defined(i386) && !defined(sequent) && !defined(sun386)
+ #ifndef USG_STDIO
finput2->_ptr = finput2->_base = t->buf;
_bufend(finput2) = t->buf + t->len;
+ #else
+ finput2->_ptr = finput2->_base = (unsigned char *) t->buf;
+ _bufend(finput2) = (unsigned char *) t->buf + t->len;
+ #endif
finput2->_flag = _IOFBF | _IOREAD;
finput2->_cnt = t->len - 1;
#else
***************
*** 2078,2085 ****
--- 2083,2095 ----
end of this function. */
pending_inlines = pending_inlines->next;
#if defined(i386) && !defined(sequent) && !defined(sun386)
+ #ifndef USG_STDIO
finput2->_ptr = finput2->_base = t->buf;
_bufend(finput2) = t->buf + t->len;
+ #else
+ finput2->_ptr = finput2->_base = (unsigned char *) t->buf;
+ _bufend(finput2) = (unsigned char *) t->buf + t->len;
+ #endif
finput2->_flag = _IOFBF | _IOREAD;
finput2->_cnt = t->len - 1;
#else
===================================================================
RCS file: RCS/expr.c,v
retrieving revision 1.1
diff -c -r1.1 expr.c
*** /tmp/,RCSt1a12258 Thu Nov 9 19:17:52 1989
--- expr.c Wed Nov 8 20:43:59 1989
***************
*** 3153,3159 ****
{
tree cleanup = 0;
/* Lose: callback to C++. */
! parm = get_temp_name (type, 0);
mark_addressable (parm);
target = DECL_RTL (parm);
/* Since this parm is not known to the called function
--- 3153,3159 ----
{
tree cleanup = 0;
/* Lose: callback to C++. */
! parm = (tree) get_temp_name (type, 0);
mark_addressable (parm);
target = DECL_RTL (parm);
/* Since this parm is not known to the called function
***************
*** 3163,3169 ****
it is very likely that such a reference need not be
built here. */
if (TREE_OPERAND (exp, 2) == 0)
! TREE_OPERAND (exp, 2) = maybe_build_cleanup (parm);
if (TREE_OPERAND (exp, 2))
cleanups_this_call = tree_cons (0, TREE_OPERAND (exp, 2),
cleanups_this_call);
--- 3163,3169 ----
it is very likely that such a reference need not be
built here. */
if (TREE_OPERAND (exp, 2) == 0)
! TREE_OPERAND (exp, 2) = (tree) maybe_build_cleanup (parm);
if (TREE_OPERAND (exp, 2))
cleanups_this_call = tree_cons (0, TREE_OPERAND (exp, 2),
cleanups_this_call);
===================================================================
RCS file: RCS/gcc.c,v
retrieving revision 1.1
diff -c -r1.1 gcc.c
*** /tmp/,RCSt1a12258 Thu Nov 9 19:17:55 1989
--- gcc.c Wed Nov 8 20:49:57 1989
***************
*** 303,316 ****
char *collect_spec =
"%{!c:%{!M*:%{!E:%{!S:collect -o %g.S %g.R\n\
as %g.S -o %g.O\n\
! ld %{o*} %g.R %g.O\n\
}}}}";
/* Here is the spec for running the linker, after compiling all files. */
! char *link_spec = "%{!c:%{!M*:%{!E:%{!S:ld -r -o %g.R %l\
%{A} %{d} %{e*} %{N} %{n} %{r} %{s} %{S} %{T*} %{t} %{u*} %{X} %{x} %{z}\
! %{y*} %{!nostdlib:%S} \
! %{L*} %o %{!nostdlib:-lg++ gnulib%s %{g:-lg} %L}\n }}}}";
#else
/* Here is the spec for running the linker, after compiling all files. */
char *link_spec = "%{!c:%{!M*:%{!E:%{!S:ld %{o*} %l\
--- 303,316 ----
char *collect_spec =
"%{!c:%{!M*:%{!E:%{!S:collect -o %g.S %g.R\n\
as %g.S -o %g.O\n\
! ld %{o*} %{!nostdlib:%S} %g.R %g.O %{!nostdlib:%L}\n\
}}}}";
/* Here is the spec for running the linker, after compiling all files. */
! char *link_spec = "%{!c:%{!M*:%{!E:%{!S:ld -r -x -o %g.R %l\
%{A} %{d} %{e*} %{N} %{n} %{r} %{s} %{S} %{T*} %{t} %{u*} %{X} %{x} %{z}\
! %{y*} \
! %{L*} %o %{!nostdlib:libg++.a%s gnulib%s %{g:-lg}}\n }}}}";
#else
/* Here is the spec for running the linker, after compiling all files. */
char *link_spec = "%{!c:%{!M*:%{!E:%{!S:ld %{o*} %l\
*** RCS/cplus-decl2.c Wed Nov 8 20:41:15 1989
--- cplus-decl2.c Wed Nov 8 20:42:49 1989
***************
*** 984,990 ****
--- 984,994 ----
DECL_RTL (decl) = 0;
/* @@ Assume names have underscores. */
if (asmspec_abort == 0)
+ #ifndef NO_UNDERSCORES
asmspec_abort = build_string (strlen ("_abort"), "_abort");
+ #else
+ asmspec_abort = build_string (strlen ("abort"), "abort");
+ #endif
asmspec_tree = asmspec_abort;
DECL_ABSTRACT_VIRTUAL_P (decl) = 1;
}
*** RCS/make-links.g++ Wed Nov 8 20:50:34 1989
--- make-links.g++ Wed Nov 8 20:52:16 1989
***************
*** 64,70 ****
insn-output.c insn-flags.h insn-config.h insn-codes.h"
$remove -f config
! $symbolic_link ${CDIR} ./config 2>/dev/null || $hard_link ${CDIR} ./config
if [ ! -r ${CDIR} ]
then
echo "$progname: unable to link \`${CDIR}'."
--- 64,80 ----
insn-output.c insn-flags.h insn-config.h insn-codes.h"
$remove -f config
! $symbolic_link ${CDIR} ./config 2>/dev/null ||
! {
! $remove -rf config
! $make_directory config
! $change_directory config
! THIS=`pwd`
! $change_directory ../${CDIR}
! $symbolic_link * ${THIS} 2>/dev/null || $hard_link * ${THIS}
! $change_directory ${THIS}
! $change_directory ..
! }
if [ ! -r ${CDIR} ]
then
echo "$progname: unable to link \`${CDIR}'."
==============================================================
*** collect.c~ Fri Nov 3 02:13:56 1989
--- collect.c Wed Nov 22 00:06:52 1989
***************
*** 68,75 ****
--- 68,77 ----
*/
#ifdef i386
#define ASM_INT_OP ASM_LONG
+ #ifndef NO_UNDERSCORES
#define NO_UNDERSCORES 1
#endif
+ #endif
#ifndef ASM_OUTPUT_INT_CONST
#define ASM_OUTPUT_INT_CONST(FILE,VALUE) \
***************
*** 418,425 ****
symindex += GCC_SYMINC(symbol);
! if (! GCC_OK_SYMBOL(symbol)) continue;
! symbol_name = ldgetname(ldptr, &symbol);
/* Check to see if we have a CTOR/DTOR marker */
--- 420,427 ----
symindex += GCC_SYMINC(symbol);
! /* if (! GCC_OK_SYMBOL(symbol)) continue;
! */ symbol_name = ldgetname(ldptr, &symbol);
/* Check to see if we have a CTOR/DTOR marker */
***************
*** 426,432 ****
if (! strncmp (CTOR_DTOR_MARKER_NAME, symbol_name,
CTOR_DTOR_MARKER_LENGTH))
add_ctor_dtor_elem(symbol_name);
! }
}
}
else {
--- 428,435 ----
if (! strncmp (CTOR_DTOR_MARKER_NAME, symbol_name,
CTOR_DTOR_MARKER_LENGTH))
add_ctor_dtor_elem(symbol_name);
!
! }
}
}
else {
***************
*** 581,587 ****
--- 584,594 ----
char *p = strtab+strindex;
#endif /* hp9000s300 */
+ #ifdef NO_DOLLAR_IN_LABEL
+ if (! strncmp ("__GLOBAL_.", p, 10))
+ #else
if (! strncmp ("__GLOBAL_$", p, 10))
+ #endif
add_ctor_dtor_elem(p);
}
}
=================================================================
*** Makefile~ Mon Nov 6 20:33:47 1989
--- Makefile Wed Nov 22 14:29:16 1989
***************
*** 37,43 ****
# use `-dy'.
# On COFF systems, use one of the definitions below. (see collect.c)
! # COFFLAGS = -DUSE_COLLECT -DCOFF
# COFFLAGS = -DUSE_COLLECT -DEXTENDED_COFF
# On some BSD systems (like Vax, unlike Sun), there is no file
--- 37,43 ----
# use `-dy'.
# On COFF systems, use one of the definitions below. (see collect.c)
! COFFLAGS = -DUSE_COLLECT -DCOFF
# COFFLAGS = -DUSE_COLLECT -DEXTENDED_COFF
# On some BSD systems (like Vax, unlike Sun), there is no file
***************
*** 46,52 ****
# HAVE_UNISTD_H = -DNO_UNISTD_H
# CFLAGS = -g -DSOS -DESKIT -O
! CFLAGS = -g -DGATHER_STATISTICS -O -Wunused $(COFFLAGS)
CC = gcc
BISON = bison
BISONFLAGS = -v -d
--- 46,52 ----
# HAVE_UNISTD_H = -DNO_UNISTD_H
# CFLAGS = -g -DSOS -DESKIT -O
! CFLAGS = -g -DGATHER_STATISTICS -O $(COFFLAGS) -DNO_UNDERSCORES -DNO_DOLLAR_IN_LABEL
CC = gcc
BISON = bison
BISONFLAGS = -v -d
***************
*** 53,61 ****
AR = ar
SHELL = /bin/sh
# on sysV, define this as cp.
! INSTALL = install -c
# on sysV, define this as ln.
! LINK = ln -s
# Compiler to use for compiling gnulib.
# OLDCC should not be the GNU C compiler.
--- 53,61 ----
AR = ar
SHELL = /bin/sh
# on sysV, define this as cp.
! INSTALL = cp
# on sysV, define this as ln.
! LINK = ln
# Compiler to use for compiling gnulib.
# OLDCC should not be the GNU C compiler.
***************
*** 71,77 ****
# uncomment the following line. But turncoats who claim officially
# to support System V, but really try to be Berkeley (and thus
# break with USG defined), may need to define this.
! # USG_STDIO = -DUSG_STDIO
prefix = /usr/local
--- 71,77 ----
# uncomment the following line. But turncoats who claim officially
# to support System V, but really try to be Berkeley (and thus
# break with USG defined), may need to define this.
! USG_STDIO = -DUSG_STDIO
prefix = /usr/local
***************
*** 96,104 ****
OBSTACK=obstack.o
# Directory to link to, when using the target `maketest'.
! DIR = ../gcc
# this is the GNU CC build directory
! TDIR = ../gcc-test
# End of variables for you to override.
--- 96,104 ----
OBSTACK=obstack.o
# Directory to link to, when using the target `maketest'.
! DIR = /usr2/gnu/gcc/gcc-1.36
# this is the GNU CC build directory
! TDIR = /usr2/gnu/gcc/gcc-1.36
# End of variables for you to override.
***************
*** 204,212 ****
# gnulib is not a target because a proper installation of GNU CC
# will place it where g++ can find it. Same with cpp
! all: crt1+.o g++ cc1plus ld++ g++filt # collect crt0+.o
# On COFF systems, use the target below.
! # all: g++ cc1plus collect # crt0+.o crt1+.o
doc: $(srcdir)/cpp.info $(srcdir)/g++.info
--- 204,212 ----
# gnulib is not a target because a proper installation of GNU CC
# will place it where g++ can find it. Same with cpp
! # all: crt1+.o g++ cc1plus ld++ g++filt # collect crt0+.o
# On COFF systems, use the target below.
! all: g++ cc1plus collect # crt0+.o crt1+.o
doc: $(srcdir)/cpp.info $(srcdir)/g++.info
***************
*** 286,292 ****
else \
COLLECT_OPTIONS=''; \
fi; \
! $(CC) -o collect $(PROFILE) $$COLLECT_OPTIONS $(CFLAGS) -I$(srcdir)/config $< -lg -lc $$COLLECT_LIBS
g++filt: g++filt.o cplus-dem.o
$(CC) -o g++filt g++filt.o cplus-dem.o
--- 286,292 ----
else \
COLLECT_OPTIONS=''; \
fi; \
! $(CC) -o collect $(PROFILE) $(COLLECT_OPTIONS) $(CFLAGS) -I$(srcdir)/config collect.c -lg -lc -lld
g++filt: g++filt.o cplus-dem.o
$(CC) -o g++filt g++filt.o cplus-dem.o
========= END CUT 1 ================================================
========== CUT 2 ===================================================
*** Makefile~ Tue Nov 7 07:04:13 1989
--- Makefile Wed Nov 22 09:47:13 1989
***************
*** 28,34 ****
# ------ source locations
# Manually set PWD to *this* directory if you are not using gnu make
! PWD := $(shell pwd)
# source include directory
SRCIDIR= $(PWD)/g++-include
--- 28,34 ----
# ------ source locations
# Manually set PWD to *this* directory if you are not using gnu make
! PWD = /usr2/gnu/libg++/libg++
# source include directory
SRCIDIR= $(PWD)/g++-include
***************
*** 40,46 ****
# set `prefix' to something else if you want to install things
# in nonstandard places
! prefix =/usr/gnu
# libg++.a destination
LIBDIR = $(prefix)/lib
--- 40,46 ----
# set `prefix' to something else if you want to install things
# in nonstandard places
! prefix = /usr/local
# libg++.a destination
LIBDIR = $(prefix)/lib
***************
*** 56,63 ****
# ------- use the second form of each for SystemV (USG)
# g++ flags
! OSFLAG=
! #OSFLAG = -DUSG
# use this only if you have a strange stdio implementation
# -- recommended for DGUX and HPUX
#OSFLAG = -DDEFAULT_filebuf
--- 56,63 ----
# ------- use the second form of each for SystemV (USG)
# g++ flags
! #OSFLAG=
! OSFLAG = -DUSG
# use this only if you have a strange stdio implementation
# -- recommended for DGUX and HPUX
#OSFLAG = -DDEFAULT_filebuf
***************
*** 69,80 ****
#OSLDFLAG= -lPW
# how to install
! INSTALL=install -c
! #INSTALL=cp
# ranlib if necessary
! RANLIB=ranlib
! #RANLIB=echo
# which make?
MAKE=make
--- 69,80 ----
#OSLDFLAG= -lPW
# how to install
! #INSTALL=install -c
! INSTALL=cp
# ranlib if necessary
! #RANLIB=ranlib
! RANLIB=echo
# which make?
MAKE=make
***************
*** 93,100 ****
CC = gcc
# GNU loader
! LDXX = $(LIBDIR)/gcc-ld
#LDXX = $(LIBDIR)/gcc-ld++
# crt0+.o location (for dynamic loading tests)
GXXCRT1=$(LIBDIR)/crt1+.o
--- 93,101 ----
CC = gcc
# GNU loader
! #LDXX = $(LIBDIR)/gcc-ld
#LDXX = $(LIBDIR)/gcc-ld++
+ LDXX = ld
# crt0+.o location (for dynamic loading tests)
GXXCRT1=$(LIBDIR)/crt1+.o
***************
*** 112,122 ****
#VERBOSITY_FLAGS= -Wall -v
VERBOSITY_FLAGS= -Wall
! GXX_INCLUDE_DIRS= -I$(SRCIDIR)
! GCC_INCLUDE_DIRS= -I$(prefix)/lib/gcc-include -I/usr/include -I$(SRCIDIR)
! PIPE_AS= -pipe
# Flags for all C++ compiles
GXXFLAGS = $(OSFLAG) $(GXX_INCLUDE_DIRS) $(DEBUG_FLAGS) $(GXX_OPTIMIZATION_FLAGS) $(VERBOSITY_FLAGS) $(PIPE_AS)
--- 113,123 ----
#VERBOSITY_FLAGS= -Wall -v
VERBOSITY_FLAGS= -Wall
! GXX_INCLUDE_DIRS= -I$(SRCIDIR) -I/usr2/gnu/gcc/gcc-1.36
! GCC_INCLUDE_DIRS= -I$(prefix)/lib/gcc-include -I/usr/include -I$(SRCIDIR) -I/usr2/gnu/gcc/gcc-1.36
! PIPE_AS=
# Flags for all C++ compiles
GXXFLAGS = $(OSFLAG) $(GXX_INCLUDE_DIRS) $(DEBUG_FLAGS) $(GXX_OPTIMIZATION_FLAGS) $(VERBOSITY_FLAGS) $(PIPE_AS)
*** ctype.h~ Wed Nov 22 20:04:31 1989
--- ctype.h Wed Nov 22 11:19:04 1989
***************
*** 32,40 ****
#define CTYPE_TYPE char
#endif
#if defined(USG) || defined(hpux)
! #define _ctype_ ctype
#endif
extern CTYPE_TYPE _ctype_[];
--- 32,40 ----
#define CTYPE_TYPE char
#endif
#if defined(USG) || defined(hpux)
! #define _ctype_ _ctype
#endif
extern CTYPE_TYPE _ctype_[];
============== END CUT 2 ==================================
============ CUT 3 =========================================
*** Makefile Fri Sep 22 17:47:25 1989
--- Makefile~ Tue Nov 14 20:57:52 1989
***************
*** 81,87 ****
# a non-gcc compiler, and if your system doesn't have a working alloca() in any
# of the standard libraries (as is true for HP/UX or Genix),
# then get alloca.c from GNU Emacs and un-comment the following line:
! # ALLOCA = alloca.o
# But don't do that if compiling using GCC.
# If your system has alloca() in /lib/libPW.a, un-comment the following line:
--- 81,87 ----
# a non-gcc compiler, and if your system doesn't have a working alloca() in any
# of the standard libraries (as is true for HP/UX or Genix),
# then get alloca.c from GNU Emacs and un-comment the following line:
! ALLOCA = alloca.o
# But don't do that if compiling using GCC.
# If your system has alloca() in /lib/libPW.a, un-comment the following line:
***************
*** 230,236 ****
# ../hp-bin/hpxt gnulib-hp gnulib
gnulib2: stamp-gnulib2;
! stamp-gnulib2: gnulib2.c gnulib cc1 gcc cpp $(CONFIG_H)
for name in $(LIB2FUNCS); \
do \
echo $${name}; \
--- 230,236 ----
# ../hp-bin/hpxt gnulib-hp gnulib
gnulib2: stamp-gnulib2;
! stamp-gnulib2: gnulib2.c $(CONFIG_H)
for name in $(LIB2FUNCS); \
do \
echo $${name}; \
================END CUT 3=============================
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads