diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2fd7a51a4087..8cded1cf1787 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-12-21  Tristan Gingold  <gingold@adacore.com>
+
+	* config/vms/vms-protos.h (vms_function_section): New prototype.
+	* config/vms/vms.c (vms_function_section): New function.
+	* config/vms/vms.h (TARGET_ASM_FUNCTION_SECTION): Define.
+
 2011-12-21  Richard Guenther  <rguenther@suse.de>
 
 	PR lto/41159
diff --git a/gcc/config/vms/vms-protos.h b/gcc/config/vms/vms-protos.h
index c313638eae24..a7ca3469cdb8 100644
--- a/gcc/config/vms/vms-protos.h
+++ b/gcc/config/vms/vms-protos.h
@@ -22,3 +22,10 @@ extern void vms_c_register_pragma (void);
 
 /* vms.c  */
 void vms_patch_builtins (void);
+
+#ifdef TREE_CODE
+extern section *vms_function_section (tree decl ATTRIBUTE_UNUSED,
+                                      enum node_frequency freq ATTRIBUTE_UNUSED,
+                                      bool startup ATTRIBUTE_UNUSED,
+                                      bool exit ATTRIBUTE_UNUSED);
+#endif /* TREE_CODE */
diff --git a/gcc/config/vms/vms.c b/gcc/config/vms/vms.c
index 63ca9319090f..95cc5defd638 100644
--- a/gcc/config/vms/vms.c
+++ b/gcc/config/vms/vms.c
@@ -180,4 +180,15 @@ vms_patch_builtins (void)
     }
 }
 
+/* Always default to .text section.  */
+
+section *
+vms_function_section (tree decl ATTRIBUTE_UNUSED,
+                      enum node_frequency freq ATTRIBUTE_UNUSED,
+                      bool startup ATTRIBUTE_UNUSED,
+                      bool exit ATTRIBUTE_UNUSED)
+{
+  return NULL;
+}
+
 #include "gt-vms.h"
diff --git a/gcc/config/vms/vms.h b/gcc/config/vms/vms.h
index 62e8636cae4a..ab8f6e0dc4ed 100644
--- a/gcc/config/vms/vms.h
+++ b/gcc/config/vms/vms.h
@@ -61,3 +61,7 @@ extern void vms_c_register_includes (const char *, const char *, int);
 #define SIZE_TYPE "unsigned int"
 #undef PTRDIFF_TYPE
 #define PTRDIFF_TYPE "int"
+
+/* VMS doesn't support other sections than .text for code.  */
+
+#define TARGET_ASM_FUNCTION_SECTION vms_function_section