This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> writes: > The libgcc etc. -Werror patch caused Solaris/x86 bootstrap to fail. Even > with the patch now reverted, it seems useful to fix the problems found: Thanks for looking into these! > * I had to add -Wno-error to CRTSTUFF_T_CFLAGS to avoid this error: > > /vol/gnu/src/gcc/gcc/gcc/libgcc2.c: In function `__enable_execute_stack': > > /vol/gnu/src/gcc/gcc/gcc/libgcc2.c:1607: warning: implicit declaration of function `mprotect' > make[3]: *** [libgcc/./_trampoline.o] Error 1 > > (same as on Solaris/SPARC). Initially, this didn't work until I noticed > that for unknown reasons, t-svr4 was listed in tmake_files *after* > i386/t-sol2. It should certainly be the other way round to allow the > Solaris/x86 fragment to override the t-svr4 defaults. > > * i386/gmon-sol2.c has several obvious errors. The patch below fixes them > for now, but the obvious course of action is to merge the sparc and i386 > versions of gmon-sol2.c. I'll try this once I get to it. > > Bootstrapped without regressions on i386-pc-solaris2.9. > > Ok for mainline? > > Rainer > > ----------------------------------------------------------------------------- > Rainer Orth, Faculty of Technology, Bielefeld University > > > Tue Nov 4 21:04:58 2003 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> > > * config.gcc (i[34567]86-*-solaris2*): Let i386/t-sol2 override > t-svr4. > > * config/i386/t-sol2 (TARGET_LIBGCC2_CFLAGS): Add -Wno-error. > > * config/i386/gmon-sol2.c (sccsid): Disable, unused. > Include various headers for declarations of system functions. > (monstartup, _mcleanup, internal_mcount, moncontrol): Declare. > Change definitions to ISO C90 form. > (_mcleanup): Comment text after #endif. > (internal_mcount): Provide full etext prototype. > Cast monstartup args. > > Index: gcc/config.gcc > =================================================================== > RCS file: /cvs/gcc/gcc/gcc/config.gcc,v > retrieving revision 1.405 > diff -u -p -r1.405 config.gcc > --- gcc/config.gcc 23 Oct 2003 05:16:52 -0000 1.405 > +++ gcc/config.gcc 4 Nov 2003 20:13:52 -0000 > @@ -1034,7 +1034,7 @@ i[34567]86-*-sco3.2v5*) # 80386 running > i[34567]86-*-solaris2*) > xm_defines="SMALL_ARG_MAX" > tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h i386/sol2.h" > - tmake_file="i386/t-sol2 t-svr4" > + tmake_file="t-svr4 i386/t-sol2" > if test x$gnu_ld = xyes; then > tmake_file="$tmake_file t-slibgcc-elf-ver" > else > Index: gcc/config/i386/gmon-sol2.c > =================================================================== > RCS file: /cvs/gcc/gcc/gcc/config/i386/gmon-sol2.c,v > retrieving revision 1.3 > diff -u -p -r1.3 gmon-sol2.c > --- gcc/config/i386/gmon-sol2.c 22 Nov 1999 18:40:19 -0000 1.3 > +++ gcc/config/i386/gmon-sol2.c 4 Nov 2003 20:14:10 -0000 > @@ -54,14 +54,16 @@ > * should be. > */ > > -#ifndef lint > +#if 0 We should remove these completlty IMO. > static char sccsid[] = "@(#)gmon.c 5.3 (Berkeley) 5/22/91"; > #endif /* not lint */ > > -#if 0 > -#include <unistd.h> > +#include "tconfig.h" > +#include "tsystem.h" > +#include <fcntl.h> > +#include "coretypes.h" > +#include "tm.h" > > -#endif > #ifdef DEBUG > #include <stdio.h> > #endif > @@ -105,6 +107,11 @@ struct rawarc { > extern char *sbrk (); > #endif > > +void monstartup (char *, char *); > +void _mcleanup (void); > +void internal_mcount (void); > +void moncontrol (int); > + > /* > * froms is actually a bunch of unsigned shorts indexing tos > */ > @@ -126,9 +133,8 @@ static int s_scale; > > extern int errno; > > -monstartup(lowpc, highpc) > - char *lowpc; > - char *highpc; > +void > +monstartup(char *lowpc, char *highpc) This single change is approved under the ISO C90 conversion rule. > { > int monsize; > char *buffer; > @@ -203,7 +209,8 @@ monstartup(lowpc, highpc) > moncontrol(1); > } > > -_mcleanup() > +void > +_mcleanup(void) This falls also under the ISO C90 rule. > { > int fd; > int fromindex; > @@ -220,7 +227,7 @@ _mcleanup() > } > # ifdef DEBUG > fprintf( stderr , "[mcleanup] sbuf 0x%x ssiz %d\n" , sbuf , ssiz ); > -# endif DEBUG > +# endif /* DEBUG */ This falls also under the ISO C90 rule. > > write( fd , sbuf , ssiz ); > endfrom = s_textsize / (HASHFRACTION * sizeof(*froms)); > @@ -234,7 +241,7 @@ _mcleanup() > fprintf( stderr , > "[mcleanup] frompc 0x%x selfpc 0x%x count %d\n" , > frompc , tos[toindex].selfpc , tos[toindex].count ); > -# endif DEBUG > +# endif /* DEBUG */ This falls also under the ISO C90 rule. > rawarc.raw_frompc = (unsigned long) frompc; > rawarc.raw_selfpc = (unsigned long) tos[toindex].selfpc; > rawarc.raw_count = tos[toindex].count; > @@ -249,7 +256,8 @@ asm(".globl _mcount; _mcount: jmp intern > /* This is for compatibility with old versions of gcc which used mcount. */ > asm(".globl mcount; mcount: jmp internal_mcount"); > > -internal_mcount() > +void > +internal_mcount(void) This falls also under the ISO C90 rule. > { > register char *selfpc; > register unsigned short *frompcindex; > @@ -271,10 +279,10 @@ internal_mcount() > frompcindex = (void *) __builtin_return_address (1); > > if(!already_setup) { > - extern etext(); > + extern void etext(void); This falls also under the ISO C90 rule. > already_setup = 1; > /* monstartup(0, etext); */ > - monstartup(0x08040000, etext); > + monstartup((char *)0x08040000, (char *)etext); > #ifdef USE_ONEXIT > on_exit(_mcleanup, 0); > #else > @@ -387,8 +395,8 @@ overflow: > * profiling is what mcount checks to see if > * all the data structures are ready. > */ > -moncontrol(mode) > - int mode; > +void > +moncontrol(int mode) This falls also under the ISO C90 rule. > { > if (mode) > { > Index: gcc/config/i386/t-sol2 > =================================================================== > RCS file: /cvs/gcc/gcc/gcc/config/i386/t-sol2,v > retrieving revision 1.5 > diff -u -p -r1.5 t-sol2 > --- gcc/config/i386/t-sol2 17 May 2001 03:15:56 -0000 1.5 > +++ gcc/config/i386/t-sol2 4 Nov 2003 20:14:10 -0000 > @@ -31,4 +31,4 @@ crtn.o: $(srcdir)/config/i386/sol2-cn.as > # .text section. > > CRTSTUFF_T_CFLAGS = -fPIC -O2 > -TARGET_LIBGCC2_CFLAGS = -fPIC > +TARGET_LIBGCC2_CFLAGS = -fPIC -Wno-error > That's all I can comment on, Andreas -- Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj SuSE Linux AG, Deutschherrnstr. 15-19, 90429 Nürnberg, Germany GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126
Attachment:
pgp00000.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |