scott%prism@GATECH.EDU (Scott Holt) (08/25/89)
I am attempting to build the latest test release of g++ obtained from yahi.stanford.edu on 8/24 at around 2:00. The version of gcc being used is 1.35.96, also obtained from yahi.stanford.edu. The problem occurs in attempting to link cc1plus. ld++ aborts with the following error: unex-addr.c:7: Undefined symobol start referenced from text. Previous versions of g++(1.35.1-) have compiled fine as did the last announced test release (it did not load cc1plus using ld++). There were no problems building gcc. The version of gcc being used has one patch to the i386.md file to correct a problem with floating point code. I can provide this if you think it matters... attached is the transcript of the failed make. - Scott Holt Ga Tech - OCS ------ gcc -g -DSOS -DESKIT -O -I. -I./config -DSTANDARD_STARTFILE_PREFIX=\"/h ydra3/scott/gnutest/lib/\" -DSTANDARD_EXEC_PREFIX=\"/hydra3/scott/gnutest/lib/g cc-\" -c gcc.c gcc -c -g -DSOS -DESKIT -O -I. -I./config malloc.c gcc -c -g -DSOS -DESKIT -O -I. -I./config version.c gcc -g -DSOS -DESKIT -O -X -o g++ gcc.o version.o obstack.o malloc.o if cmp -s tm.h config/tm-sun3+.h; then OPTS='-Dmc68020 -DSUN3=3 -DTARGE T=SUN3'; DFLTS='"/hydra3/scott/gnutest/lib", "/lib", "/usr/lib", "/usr/local/li b"'; elif cmp -s tm.h config/tm-sun3-fpa+.h; then OPTS='-Dmc68020 -DSUN3=3 -DT ARGET=SUN3'; DFLTS='"/hydra3/scott/gnutest/lib", "/lib", "/usr/lib", "/usr/loca l/lib"'; elif cmp -s tm.h config/tm-sun3-nfp+.h; then OPTS='-Dmc68020 -DSUN3=3 -DTARGET=SUN3'; DFLTS='"/hydra3/scott/gnutest/lib", "/lib", "/usr/lib", "/usr/ local/lib"'; elif cmp -s tm.h config/tm-sun2+.h; then OPTS='-Dmc68010 -DSUN2=2 -DTARGET=SUN2'; DFLTS='"/hydra3/scott/gnutest/lib", "/lib", "/usr/lib", "/usr/ local/lib"'; elif cmp -s tm.h config/tm-sun4os3+.h; then OPTS='-DSUN4=4 -DTARG ET=SUN4'; DFLTS='"/hydra3/scott/gnutest/lib", "/lib", "/usr/lib", "/usr/local/l ib"'; elif cmp -s tm.h config/tm-sun4os4+.h; then OPTS='-DSUN4=4 -DTARGET=SUN4 '; DFLTS='"/hydra3/scott/gnutest/lib", "/lib", "/usr/lib", "/usr/local/lib"'; elif cmp -s tm.h config/tm-sparc+.h; then OPTS='-DSUN4=4 -DTARGET=SUN4'; DFLTS ='"/hydra3/scott/gnutest/lib", "/lib", "/usr/lib", "/usr/local/lib"'; elif cmp -s tm.h config/tm-encore.h; then CRT0_OPTIONS='-DUMAX'; DFLTS='"/hydra3/scott/ gnutest/lib", "/lib", "/usr/lib", "/usr/local/lib"'; elif cmp -s tm.h config/tm -hp9k320g+.h; then OPTS='-Dmc68020 -DNON_NATIVE -DUSG' DFLTS='"/hydra3/scott/g nutest/lib/gnu", "/lib", "/usr/lib", "/usr/local/lib"'; elif cmp -s tm.h config /tm-altos3068.h; then OPTS='-DCOFF_ENCAPSULATE -DNON_NATIVE -DUSG -DPORTAR'; e lif cmp -s tm.h tm-i386gas+.h; then OPTS='-DUSG -DCOFF_ENCAPSULATE -DNON_NATIVE -DPORTAR'; else OPTS='-DTARGET=-1'; DFLTS='"/hydra3/scott/gnutest/lib", "/li b", "/usr/lib", "/usr/local/lib"'; fi; echo $OPTS $DFLTS; if [ "$DFLTS" = "" ] ; then gcc -c -v $OPTS -g -DSOS -DESKIT -O -g -DSOS -DESKIT -O newld.c ; e lse gcc -c -v $OPTS -DSTANDARD_SEARCH_DIRS="$DFLTS" -g -DSOS -DESKIT -O -g -DS OS -DESKIT -O newld.c ; fi -DTARGET=-1 "/hydra3/scott/gnutest/lib", "/lib", "/usr/lib", "/usr/local/lib" gcc version 1.35.96 /hydra3/scott/gnutest/lib/gcc-cpp -v -DTARGET=-1 -DSTANDARD_SEARCH_DIRS="/hydra 3/scott/gnutest/lib", "/lib", "/usr/lib", "/usr/local/lib" -DSOS -DESKIT -DSOS - DESKIT -undef -D__GNUC__ -Dunix -Di386 -Dsequent -D__unix__ -D__i386__ -D__seque nt__ -D__OPTIMIZE__ newld.c /tmp/cc022354.cpp GNU CPP version 1.35.96 /hydra3/scott/gnutest/lib/gcc-cc1 /tmp/cc022354.cpp -quiet -dumpbase newld.c -g -O -version -o /tmp/cc022354.s GNU C version 1.35.96 (80386, BSD syntax) compiled by GNU C version 1.35.96. default target switches: -m80387 as -o newld.o /tmp/cc022354.s gcc -o ld++ newld.o -lg -lc if cmp -s tm.h config/tm-vax.h; then CRT0_OPTIONS='-DCRT0_DUMMIES='; e lif cmp -s tm.h config/tm-vaxv.h; then CRT0_OPTIONS='-DCRT0_DUMMIES='; elif cm p -s tm.h config/tm-vms.h; then CRT0_OPTIONS='-DCRT0_DUMMIES='; elif cmp -s tm .h config/tm-hp9k320.h; then CRT0_OPTIONS='-Umc68000'; elif cmp -s tm.h config /tm-hp9k320g.h; then CRT0_OPTIONS='-Umc68000'; elif cmp -s tm.h config/tm-sequ ent.h; then CRT0_OPTIONS='-DCRT0_DUMMIES= -DDOT_GLOBAL_START'; elif cmp -s tm. h config/tm-altos3068.h; then CRT0_OPTIONS='-DCRT0_DUMMIES= -Umc68000 -Um68k'; elif cmp -s tm.h tm-i386gas+.h; then CRT0_OPTIONS='-DCRT0_DUMMIES=bogus_fp, -D DOT_GLOBAL_START'; else CRT0_OPTIONS=''; fi; echo $CRT0_OPTIONS; gcc -Um68k $CRT0_OPTIONS -g -DSOS -DESKIT -O -c -I. -I./config crt0.c mv crt0.o crt0+.o gcc -Um68k -g -c -I. -I./config crt1.c mv crt1.o crt1+.o expect 47 shift/reduce conflicts and 6 reduce/reduce conflicts bison -v -d cplus-parse.y cplus-parse.y contains 47 shift/reduce conflicts and 6 reduce/reduce conflicts. gcc -c -g -DSOS -DESKIT -O -I. -I./config -DPARSE_OUTPUT=\"/cplus-parse. output\" cplus-parse.tab.c gcc -c -g -DSOS -DESKIT -O -I. -I./config cplus-decl.c gcc -c -g -DSOS -DESKIT -O -I. -I./config cplus-typeck.c gcc -c -g -DSOS -DESKIT -O -I. -I./config cplus-tree.c gcc -c -g -DSOS -DESKIT -O -I. -I./config cplus-lex.c cplus-lex.c: In function get_time_identifier: cplus-lex.c:669: warning: initialization of pointer from integer lacks a cast gcc -c -g -DSOS -DESKIT -O -I. -I./config cplus-class.c gcc -c -g -DSOS -DESKIT -O -I. -I./config cplus-init.c gcc -c -g -DSOS -DESKIT -O -I. -I./config cplus-method.c gcc -c -g -DSOS -DESKIT -O -I. -I./config cplus-cvt.c gcc -c -g -DSOS -DESKIT -O -I. -I./config cplus-search.c gcc -c -g -DSOS -DESKIT -O -I. -I./config cplus-ptree.c gcc -c -g -DSOS -DESKIT -O -I. -I./config toplev.c gcc -c -g -DSOS -DESKIT -O -I. -I./config tree.c gcc -c -g -DSOS -DESKIT -O -I. -I./config print-tree.c gcc -c -g -DSOS -DESKIT -O -I. -I./config stor-layout.c stor-layout.c: In function layout_basetypes: stor-layout.c:513: warning: initialization of pointer from integer lacks a cast gcc -c -g -DSOS -DESKIT -O -I. -I./config fold-const.c gcc -c -g -DSOS -DESKIT -O -I. -I./config rtlanal.c gcc -g -DSOS -DESKIT -O -X -o genflags genflags.o rtl.o obstack.o mallo c.o ./genflags md > tmp-insn-flags.h ./move-if-change tmp-insn-flags.h insn-flags.h insn-flags.h is unchanged touch stamp-flags.h gcc -g -DSOS -DESKIT -O -X -o gencodes gencodes.o rtl.o obstack.o mallo c.o ./gencodes md > tmp-insn-codes.h ./move-if-change tmp-insn-codes.h insn-codes.h insn-codes.h is unchanged touch stamp-codes.h gcc -g -DSOS -DESKIT -O -X -o genconfig genconfig.o rtl.o obstack.o mal loc.o ./genconfig md > tmp-insn-config.h ./move-if-change tmp-insn-config.h insn-config.h insn-config.h is unchanged touch stamp-config.h gcc -c -g -DSOS -DESKIT -O -I. -I./config expr.c gcc -c -g -DSOS -DESKIT -O -I. -I./config stmt.c gcc -c -g -DSOS -DESKIT -O -I. -I./config expmed.c gcc -c -g -DSOS -DESKIT -O -I. -I./config explow.c gcc -c -g -DSOS -DESKIT -O -I. -I./config optabs.c gcc -c -g -DSOS -DESKIT -O -I. -I./config varasm.c gcc -c -g -DSOS -DESKIT -O -I. -I./config symout.c gcc -c -g -DSOS -DESKIT -O -I. -I./config dbxout.c gcc -c -g -DSOS -DESKIT -O -I. -I./config sdbout.c gcc -g -DSOS -DESKIT -O -X -o genemit genemit.o rtl.o obstack.o malloc. o ./genemit md > tmp-insn-emit.c ./move-if-change tmp-insn-emit.c insn-emit.c insn-emit.c is unchanged touch stamp-emit.c gcc -c -g -DSOS -DESKIT -O -I. -I./config integrate.c gcc -g -DSOS -DESKIT -O -X -o genpeep genpeep.o rtl.o obstack.o malloc. o ./genpeep md > tmp-insn-peep.c ./move-if-change tmp-insn-peep.c insn-peep.c insn-peep.c is unchanged touch stamp-peep.c gcc -g -DSOS -DESKIT -O -X -o genrecog genrecog.o rtl.o obstack.o mallo c.o ./genrecog md > tmp-insn-recog.c ./move-if-change tmp-insn-recog.c insn-recog.c insn-recog.c is unchanged touch stamp-recog.c gcc -g -DSOS -DESKIT -O -X -o genextract genextract.o rtl.o obstack.o m alloc.o ./genextract md > tmp-insn-extract.c ./move-if-change tmp-insn-extract.c insn-extract.c insn-extract.c is unchanged touch stamp-extract.c gcc -g -DSOS -DESKIT -O -X -o genoutput genoutput.o rtl.o obstack.o mal loc.o ./genoutput md > tmp-insn-output.c ./move-if-change tmp-insn-output.c insn-output.c insn-output.c is unchanged touch stamp-output.c gcc -c -g -DSOS -DESKIT -O -I. -I./config unex-addr.c gcc -c -g -DSOS -DESKIT -O -I. -I./config unexec.c gcc -c -g -DSOS -DESKIT -O -I. -I./config lastfile.c ld++ -C -X -o cc1plus crt0+.o cplus-parse.tab.o cplus-decl.o cplus-typec k.o cplus-tree.o cplus-lex.o cplus-class.o cplus-init.o cplus-method.o cplus-c vt.o cplus-search.o cplus-ptree.o toplev.o version.o tree.o print-tree.o stor-la yout.o fold-const.o rtl.o rtlanal.o expr.o stmt.o expmed.o explow.o optabs.o va rasm.o symout.o dbxout.o sdbout.o emit-rtl.o insn-emit.o integrate.o jump.o cs e.o loop.o flow.o stupid.o combine.o regclass.o local-alloc.o global-alloc.o re load.o reload1.o caller-save.o insn-peep.o final.o recog.o insn-recog.o insn-ex tract.o insn-output.o unex-addr.o unexec.o lastfile.o /hydra3/scott/gnutest/lib /gcc-gnulib obstack.o malloc.o -lc unex-addr.c:7: Undefined symbol start referenced from text *** Error code 1 Make: . Stop.
schmidt@zola.ics.uci.edu (Doug Schmidt) (08/25/89)
In article <8908242228.AA02310@prism.gatech.edu>, scott%prism (Scott Holt) writes: > >I am attempting to build the latest test release of g++ obtained from >yahi.stanford.edu on 8/24 at around 2:00. The version of gcc being used >is 1.35.96, also obtained from yahi.stanford.edu. > >The problem occurs in attempting to link cc1plus. ld++ aborts with the >following error: > > unex-addr.c:7: Undefined symobol start referenced from text. > This will be a recurring problem until Michael gets all the #ifdef's necessary to make the unexec feature work on machines other than Sun 4's. For now, you might try the following patches: *** cplus-lex.c~ Thu Aug 24 16:51:21 1989 --- cplus-lex.c Thu Aug 24 13:44:09 1989 *************** *** 1378,1384 **** --- 1378,1386 ---- else strcpy (previous_asm_file_name, "/dev/null"); printf ("\nDumping %s to %s...\n", dump_source_name, dump_file_name); + #ifndef HAVE_UNEXEC unexec (dump_file_name, dump_source_name, &my_edata, 0, 0); + #endif longjmp (toplevel, 1); } } *** Makefile.~1~ Wed Aug 23 23:37:09 1989 --- Makefile Thu Aug 24 16:52:18 1989 *************** *** 292,300 **** LDFLAGS = -X cc1plus: $(CPLUS_OBJS) $(OBJS) $(LIBDEPS) unex-addr.o unexec.o lastfile.o ! # $(CC) $(CFLAGS) $(LDFLAGS) -o cc1plus $(CPLUS_OBJS) $(OBJS) $(LIBS) ! ld++ -C $(LDFLAGS) -o cc1plus crt0+.o $(CPLUS_OBJS) $(OBJS) \ ! unex-addr.o unexec.o lastfile.o $(libdir)/gcc-gnulib $(LIBS) -lc cplus-decl.o : cplus-decl.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h cplus-parse.h cplus-typeck.o : cplus-typeck.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h --- 292,300 ---- LDFLAGS = -X cc1plus: $(CPLUS_OBJS) $(OBJS) $(LIBDEPS) unex-addr.o unexec.o lastfile.o ! $(CC) $(CFLAGS) $(LDFLAGS) -o cc1plus $(CPLUS_OBJS) $(OBJS) $(LIBS) ! # ld++ -C $(LDFLAGS) -o cc1plus crt0+.o $(CPLUS_OBJS) $(OBJS) \ ! # unex-addr.o unexec.o lastfile.o $(libdir)/gcc-gnulib $(LIBS) -lc cplus-decl.o : cplus-decl.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h cplus-parse.h cplus-typeck.o : cplus-typeck.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h ---------------------------------------- This ought to hold you until things are more complete! Doug -- schmidt@ics.uci.edu (ARPA) | Per me si va nella citta' dolente. office: (714) 856-4043 | Per me si va nell'eterno dolore. | Per me si va tra la perduta gente. | Lasciate ogni speranza o voi ch'entrate.
tiemann@YAHI.STANFORD.EDU (Michael Tiemann) (08/25/89)
I am attempting to build the latest test release of g++ obtained from
yahi.stanford.edu on 8/24 at around 2:00. The version of gcc being used
is 1.35.96, also obtained from yahi.stanford.edu.
The problem occurs in attempting to link cc1plus. ld++ aborts with the
following error:
unex-addr.c:7: Undefined symobol start referenced from text.
Write your own version of this function:
char *
start_of_text ()
{
extern int start () asm ("start");
return ((char *) start);
}
to use whatever symbol is the start of text for your program. It is
"start" for Sun4. It might be "_start" for Sun3. It is OS and
machine dependent.
Michael