diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h index 1d29c603696..8b0ff15efb2 100644 --- a/gcc/config/rs6000/sysv4.h +++ b/gcc/config/rs6000/sysv4.h @@ -134,7 +134,10 @@ do { \ target_flags |= MASK_EABI; \ } \ else if (!strcmp (rs6000_abi_name, "aix")) \ - rs6000_current_abi = ABI_AIX_NODESC; \ + { \ + rs6000_current_abi = ABI_AIX_NODESC; \ + target_flags |= MASK_EABI; \ + } \ else if (!strcmp (rs6000_abi_name, "aixdesc")) \ rs6000_current_abi = ABI_AIX; \ else if (!strcmp (rs6000_abi_name, "nt")) \ @@ -160,6 +163,12 @@ do { \ error ("-mrelocatable and -msdata are incompatible."); \ } \ \ + if (TARGET_RELOCATABLE && !TARGET_EABI) \ + { \ + target_flags |= ~MASK_EABI; \ + error ("-mrelocatable and -mno-eabi are incompatible."); \ + } \ + \ if (TARGET_SDATA && DEFAULT_ABI != ABI_V4 \ && DEFAULT_ABI != ABI_SOLARIS) \ { \ diff --git a/gcc/config/rs6000/t-ppcgas b/gcc/config/rs6000/t-ppcgas index 9984d89e6cb..107ace913db 100644 --- a/gcc/config/rs6000/t-ppcgas +++ b/gcc/config/rs6000/t-ppcgas @@ -45,7 +45,7 @@ MULTILIB_MATCHES = mlittle=mlittle-endian \ mcall-sysv-eabi=meabi \ mcall-sysv-noeabi=mno-eabi -MULTILIB_EXCEPTIONS = +MULTILIB_EXCEPTIONS = *mrelocatable*/*mcall-sysv-noeabi* LIBGCC = stmp-multilib stmp-crt INSTALL_LIBGCC = install-multilib install-crt