Skip to content
Snippets Groups Projects
  • Douglas Rupp's avatar
    17867980
    Introduce vxworks7r2 support for ppc and ppc64 · 17867980
    Douglas Rupp authored
    
    This change introduces support for the most recent versions
    of VxWorks on PowerPC targets, for both 32 and 64 bit thanks
    to a bi-arch setup.
    
    The system compilers are essentially configured as Linux
    toolchains with only a few specificities and we replicate
    that model here.
    
    The most visible specificities are the use of secureplt by
    default, the pre-definition of some macros that the system
    headers still rely on (_VX_CPU and _VX_CPU_FAMILY, for example),
    and of course some variations related to the so VxWorks typical
    kernel vs RTP mode distinction.
    
    In addition to the introduction of config.gcc and libgcc
    configuration chunks, much inspired by the linux ones, the
    change
    
    - Reworks rs6000/vxworks.h file to feature bits common to the
      Vx6 and Vx7 port then a separate section for each, where the
      Vx7 part is very short as we rely on the Linux definitions
      for most things.
    
    - Adjusts the CPU macro predefinitions in CPP_SPEC to resort
      to "_VX_CPU" instead of "CPU" for Vx7, to better match the
      more recent system headers expectations,
    
    - Adds a cpu definition case for e6500.
    
    - Changes to the use SUB3TARGET_OVERRIDE_OPTIONS instead of
      SUBSUBTARGET_OVERRIDE_OPTIONS for specifics, so we don't
      override the Linux's version of the latter for vx7.
    
    2020-10-20  Douglas Rupp  <rupp@adacore.com>
    
    gcc/
    	* config.gcc (powerpc*-wrs-vxworks7r*): New case.
    	* config/rs6000/vxworks.h: Rework to handle VxWorks7.
    	Refactor as common bits + vx6 vs vx7 ones. For the
    	latter, rely essentially on the Linux configuration
    	and adjust CPU to _VX_CPU in CPP_SPEC. Add a case
    	for e6500. Use SUB3TARGET_OVERRIDE_OPTIONS for specifics
    	to preserve the Linux SUBSUBTARGET_OVERRIDE_OPTIONS
    	for vx7.
    
    libgcc/
    	* config.host (powerpc*-wrs-vxworks7*): New case.
    	* configure.ac: Handle powerpc*-*-vxworks7* as
    	powerpc*-*-linux* for ppc-fp_type.
    	* configure: Regenerate.
    
    Co-authored-by: default avatarOlivier Hainque <hainque@adacore.com>
    17867980
    History
    Introduce vxworks7r2 support for ppc and ppc64
    Douglas Rupp authored
    
    This change introduces support for the most recent versions
    of VxWorks on PowerPC targets, for both 32 and 64 bit thanks
    to a bi-arch setup.
    
    The system compilers are essentially configured as Linux
    toolchains with only a few specificities and we replicate
    that model here.
    
    The most visible specificities are the use of secureplt by
    default, the pre-definition of some macros that the system
    headers still rely on (_VX_CPU and _VX_CPU_FAMILY, for example),
    and of course some variations related to the so VxWorks typical
    kernel vs RTP mode distinction.
    
    In addition to the introduction of config.gcc and libgcc
    configuration chunks, much inspired by the linux ones, the
    change
    
    - Reworks rs6000/vxworks.h file to feature bits common to the
      Vx6 and Vx7 port then a separate section for each, where the
      Vx7 part is very short as we rely on the Linux definitions
      for most things.
    
    - Adjusts the CPU macro predefinitions in CPP_SPEC to resort
      to "_VX_CPU" instead of "CPU" for Vx7, to better match the
      more recent system headers expectations,
    
    - Adds a cpu definition case for e6500.
    
    - Changes to the use SUB3TARGET_OVERRIDE_OPTIONS instead of
      SUBSUBTARGET_OVERRIDE_OPTIONS for specifics, so we don't
      override the Linux's version of the latter for vx7.
    
    2020-10-20  Douglas Rupp  <rupp@adacore.com>
    
    gcc/
    	* config.gcc (powerpc*-wrs-vxworks7r*): New case.
    	* config/rs6000/vxworks.h: Rework to handle VxWorks7.
    	Refactor as common bits + vx6 vs vx7 ones. For the
    	latter, rely essentially on the Linux configuration
    	and adjust CPU to _VX_CPU in CPP_SPEC. Add a case
    	for e6500. Use SUB3TARGET_OVERRIDE_OPTIONS for specifics
    	to preserve the Linux SUBSUBTARGET_OVERRIDE_OPTIONS
    	for vx7.
    
    libgcc/
    	* config.host (powerpc*-wrs-vxworks7*): New case.
    	* configure.ac: Handle powerpc*-*-vxworks7* as
    	powerpc*-*-linux* for ppc-fp_type.
    	* configure: Regenerate.
    
    Co-authored-by: default avatarOlivier Hainque <hainque@adacore.com>