From: Michael Meissner Date: Mon, 4 Nov 1996 15:33:01 +0000 (+0000) Subject: Fix -fpic problems; fix typo in cygwin X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=461422d5b6136889dd97e15c4d69cec2bf3427b9;p=gcc.git Fix -fpic problems; fix typo in cygwin From-SVN: r13093 --- diff --git a/gcc/config/rs6000/cygwin32.h b/gcc/config/rs6000/cygwin32.h index e89026ef75a..557b3016ad9 100644 --- a/gcc/config/rs6000/cygwin32.h +++ b/gcc/config/rs6000/cygwin32.h @@ -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" diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index e17c5a64a9a..b3517f23af3 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -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) \ diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 382a0a79abd..480e0ba7cca 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -5084,6 +5084,7 @@ } 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)