diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cc8dc86701600744708e99954ff418ab40ba1f12..c773d7d6c23bb4a429d13b46666d1a464f5ee422 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-12-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
+
+        * config/avr/avr.c (avr_option_override): Warn if asked to generate
+        position independent code.
+        * config/avr/avr.h: Modify LINK_SPEC to reject -shared.
+
 2013-12-03   H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR target/59363
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 8d98c811d9b75edd3d1a6eed2644c581da803a7b..76fd7bbe27ebe88ae222d82bd3a48a85d6a2dc82 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -314,6 +314,15 @@ avr_option_override (void)
       flag_omit_frame_pointer = 0;
     }
 
+  if (flag_pic == 1)
+    warning (OPT_fpic, "-fpic is not supported");
+  if (flag_pic == 2)
+    warning (OPT_fPIC, "-fPIC is not supported");
+  if (flag_pie == 1)
+    warning (OPT_fpie, "-fpie is not supported");
+  if (flag_pie == 2)
+    warning (OPT_fPIE, "-fPIE is not supported");
+
   avr_current_device = &avr_mcu_types[avr_mcu_index];
   avr_current_arch = &avr_arch_types[avr_current_device->arch];
 
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index f223a6148ee17cccd9f124823ee299bd37ea5f5e..079752ae430d52cb6ab9c897fb7a0a049f7d01b5 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -522,7 +522,8 @@ extern const char *avr_device_to_sp8 (int argc, const char **argv);
                                mmcu=at90can64*|\
                                mmcu=at90usb64*:--pmem-wrap-around=64k}}}\
 %:device_to_ld(%{mmcu=*:%*})\
-%:device_to_data_start(%{mmcu=*:%*})"
+%:device_to_data_start(%{mmcu=*:%*})\
+%{shared:%eshared is not supported}"
 
 #define LIB_SPEC \
   "%{!mmcu=at90s1*:%{!mmcu=attiny11:%{!mmcu=attiny12:%{!mmcu=attiny15:%{!mmcu=attiny28: -lc }}}}}"