]> gcc.gnu.org Git - gcc.git/commitdiff
vxworks.h (vxworks_override_options): Declare.
authorRichard Sandiford <richard@codesourcery.com>
Wed, 7 Mar 2007 11:52:52 +0000 (11:52 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 7 Mar 2007 11:52:52 +0000 (11:52 +0000)
gcc/
* config/vxworks.h (vxworks_override_options): Declare.
(VXWORKS_OVERRIDE_OPTIONS): Use it.
* config/vxworks.c: Include target.h and toplev.h.
(vxworks_override_options): New function.
* config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.

From-SVN: r122657

gcc/ChangeLog
gcc/config/t-vxworks
gcc/config/vxworks.c
gcc/config/vxworks.h

index 5d702fd9cc63eeea4409ab38edeeadd3329fe908..d4ae2b5c200432868e38e7b64b75e110abf752ad 100644 (file)
@@ -1,3 +1,11 @@
+2007-03-07  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/vxworks.h (vxworks_override_options): Declare.
+       (VXWORKS_OVERRIDE_OPTIONS): Use it.
+       * config/vxworks.c: Include target.h and toplev.h.
+       (vxworks_override_options): New function.
+       * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
+
 2007-03-07  Andreas Krebbel  <krebbel1@de.ibm.com>
 
        * config/s390/s390.c (override_options): Don't emit an error when
index 3741581d3a7ed6466e3f3e653bbe23d353b3bac8..c9d69e0edce047b23bc712b6c533eaf1e2710766 100644 (file)
@@ -33,5 +33,5 @@ LIMITS_H_TEST = true
 EXTRA_MULTILIB_PARTS = 
 
 vxworks.o: $(srcdir)/config/vxworks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-       output.h $(TM_H)
+       $(TARGET_H) toplev.h output.h $(TM_H)
        $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
index 4ac33ab6c3e92d964a3f9d7876e2e0ac449b3572..16dbc092bff2e6bfa1477a790005237752851dac 100644 (file)
@@ -23,6 +23,8 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
+#include "target.h"
+#include "toplev.h"
 #include "output.h"
 #include "tm.h"
 
@@ -54,3 +56,16 @@ vxworks_asm_out_destructor (rtx symbol, int priority)
                                    /*constructor_p=*/false);
   assemble_addr_to_section (symbol, sec);
 }
+
+/* Do VxWorks-specific parts of OVERRIDE_OPTIONS.  */
+
+void
+vxworks_override_options (void)
+{
+  /* We can use .ctors/.dtors sections only in RTP mode.  */
+  targetm.have_ctors_dtors = TARGET_VXWORKS_RTP;
+
+  /* PIC is only supported for RTPs.  */
+  if (flag_pic && !TARGET_VXWORKS_RTP)
+    error ("PIC is only supported for RTPs");
+}
index 055bf09813b03b4a3ed8d40bfd53308a80532f77..2d8bfbd8c86809e740f82f3925ef6dbdf78d2e8f 100644 (file)
@@ -82,13 +82,10 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 #define        VXWORKS_STARTFILE_SPEC "%{mrtp:%{!shared:crt0.o%s}}"
 #define VXWORKS_ENDFILE_SPEC ""
 
-/* We can use .ctors/.dtors sections only in RTP mode.
-   Unfortunately this must be an integer constant expression;
-   fix up in override_options.  */
+/* Do VxWorks-specific parts of OVERRIDE_OPTIONS.  */
 #undef VXWORKS_OVERRIDE_OPTIONS
-#define VXWORKS_OVERRIDE_OPTIONS do { \
-  targetm.have_ctors_dtors = TARGET_VXWORKS_RTP; \
-} while (0)
+#define VXWORKS_OVERRIDE_OPTIONS vxworks_override_options ()
+extern void vxworks_override_options (void);
 
 /* VxWorks requires special handling of constructors and destructors.
    All VxWorks configurations must use these functions.  */
This page took 0.073217 seconds and 5 git commands to generate.