bootstrap/3589: GCC 3.0-CVS illegal instruction on hppa1.1-proelf

Vladimir Makarov vmakarov@redhat.com
Tue Mar 26 13:33:00 GMT 2002


Joel Sherrill wrote:
> 
> Vladimir Makarov wrote:
> >
> > Joel Sherrill wrote:
> > >
> > > Vladimir Makarov wrote:
> > > >
> > > > Joel Sherrill wrote:
> > > >
> > > > >Is there any ifdef to check and decide which directives to use?
> > > > >
> > > > > And if there is any reference mapping between them, I would appreciate
> > > > > knowing about it.
> > > >
> > > > Here is the path solving the problem.
> > > >
> > > > You could find a description of the pseudoops and mapping them into elf
> > > > sections in
> > > >
> > > > http://segfault.net/~scut/cpu/hppa/HP_Assembler_Reference_Manual_HP9000_9th_Ed.pdf
> > >
> > > Thanks.
> > >
> > > Could the __PRO__ (or something similar) be part of the cpp predefines
> > > for this
> > > configuration so non-gcc assembly can do the right thing?  I know that
> > > at least
> > > libgloss and RTEMS have hppa assembly.
> > >
> >
> > Yes, we could do it.  But it is not urgent now.  Libgloss has no
> > .subspace directive so it should be compiled without problems.
> 
> OK.  There are some in RTEMS but I am happy to disable them.  The hppa
> port (when really active) was maintained on on an hpux box using gcc
> and native as/ld.  So getting to the point where it is built using

  Here the rewritten patch is.  __PRO__ is now always defined for
hppa1.1-*-pro* and hppa1.1-*-rtems*.  Please ignore the previous patch
(__PRO__ was used only for libgcc compilation in it).

2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>

        * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__PRO__.

        * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __PRO__ is
        defined.

Index: pa/lib2funcs.asm
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pa/lib2funcs.asm,v
retrieving revision 1.6
diff -c -p -r1.6 lib2funcs.asm
*** lib2funcs.asm       2001/04/16 18:30:45     1.6
--- lib2funcs.asm       2002/03/26 20:46:35
***************
*** 28,33 ****
--- 28,34 ----
  ;  the Free Software Foundation, 59 Temple Place - Suite 330,
  ;  Boston, MA 02111-1307, USA.
  
+ #ifndef __PRO__
        .SPACE $PRIVATE$
        .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
        .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
***************
*** 35,45 ****
        .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
        .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
        .SUBSPA $MILLICODE$,QUAD=0,ALIGN=8,ACCESS=44,SORT=8
! 
        .IMPORT $$dyncall,MILLICODE
        .SPACE $TEXT$
        .SUBSPA $CODE$
! 
  ; Simply call with the address of the desired import stub in %r22 and
  ; arguments in the normal place (%r26-%r23 and stack slots).
  ;
--- 36,49 ----
        .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
        .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
        .SUBSPA $MILLICODE$,QUAD=0,ALIGN=8,ACCESS=44,SORT=8
! #endif
        .IMPORT $$dyncall,MILLICODE
+ #ifndef __PRO__
        .SPACE $TEXT$
        .SUBSPA $CODE$
! #else
!       .text
! #endif
  ; Simply call with the address of the desired import stub in %r22 and
  ; arguments in the normal place (%r26-%r23 and stack slots).
  ;
Index: pa/pa-pro-end.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pa/pa-pro-end.h,v
retrieving revision 1.5
diff -c -p -r1.5 pa-pro-end.h
*** pa-pro-end.h        2000/11/02 23:29:12     1.5
--- pa-pro-end.h        2002/03/26 20:46:35
*************** Boston, MA 02111-1307, USA.  */
*** 30,36 ****
  #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p: -L/lib/libp/ -lc}%{pg:
-L/lib/libp/ -lc}"
  
  #undef CPP_PREDEFINES
! #define CPP_PREDEFINES "-Dhppa -DPWB -Acpu=hppa -Amachine=hppa"
  
  /* hpux8 and later have C++ compatible include files, so do not
     pretend they are `extern "C"'.  */
--- 30,36 ----
  #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p: -L/lib/libp/ -lc}%{pg:
-L/lib/libp/ -lc}"
  
  #undef CPP_PREDEFINES
! #define CPP_PREDEFINES "-Dhppa -DPWB -D__PRO__ -Acpu=hppa
-Amachine=hppa"
  
  /* hpux8 and later have C++ compatible include files, so do not
     pretend they are `extern "C"'.  */



More information about the Gcc-bugs mailing list