Fix -fpic problems; fix typo in cygwin
authorMichael Meissner <meissner@gcc.gnu.org>
Mon, 4 Nov 1996 15:33:01 +0000 (15:33 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Mon, 4 Nov 1996 15:33:01 +0000 (15:33 +0000)
From-SVN: r13093

gcc/config/rs6000/cygwin32.h
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.md

index e89026ef75a8ce2b0c4a3e1d7edb50dd8958ed9e..557b3016ad9d472978fbf5dbb3fe7d8a75db41dc 100644 (file)
@@ -49,7 +49,7 @@ Boston, MA 02111-1307, USA. */
 #define        LINK_SPEC "%{v:-V}"
 
 #undef STARTFILE_SPEC
-#define STARTFILE_SPEC "crti%O%s %{!:crt0%O%s}"
+#define STARTFILE_SPEC "crti%O%s crt0%O%s"
 
 #undef ENDFILE_SPEC
 #define        ENDFILE_SPEC "crtn%O%s"
index e17c5a64a9a10bceb81ce809e50b3745d05b281d..b3517f23af341bdcdfbf48e6efa3b2daf4b2d0ab 100644 (file)
@@ -1767,6 +1767,7 @@ typedef struct rs6000_args
 
 #define LEGITIMATE_SMALL_DATA_P(MODE, X)                               \
   ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS)               \
+   && !flag_pic && !TARGET_RELOCATABLE                                 \
    && (GET_CODE (X) == SYMBOL_REF || GET_CODE (X) == CONST)            \
    && small_data_operand (X, MODE))
 
@@ -1803,6 +1804,7 @@ typedef struct rs6000_args
 
 #define LEGITIMATE_LO_SUM_ADDRESS_P(MODE, X)           \
   (TARGET_ELF                                          \
+   && !flag_pic && !TARGET_RELOCATABLE                 \
    && (MODE) != DImode                                 \
    && (MODE) != TImode                                 \
    && (TARGET_HARD_FLOAT || (MODE) != DFmode)          \
@@ -1881,6 +1883,7 @@ typedef struct rs6000_args
       goto WIN;                                                                \
     }                                                                  \
   else if (TARGET_ELF && TARGET_32BIT && TARGET_NO_TOC                 \
+          && !flag_pic                                                 \
           && GET_CODE (X) != CONST_INT                                 \
           && GET_CODE (X) != CONST_DOUBLE && CONSTANT_P (X)            \
           && (TARGET_HARD_FLOAT || (MODE) != DFmode)                   \
index 382a0a79abda763f1b01a37acb85838b4dcec924..480e0ba7ccacc234a82958f256df3153684e1ebe 100644 (file)
     }
 
   if (TARGET_ELF && TARGET_NO_TOC && !TARGET_64BIT
+      && !flag_pic
       && CONSTANT_P (operands[1])
       && GET_CODE (operands[1]) != HIGH
       && GET_CODE (operands[1]) != CONST_INT)