diff --git a/cores/arduino/syscalls.h b/cores/arduino/syscalls.h
index 845b4b5d..0cac7095 100644
--- a/cores/arduino/syscalls.h
+++ b/cores/arduino/syscalls.h
@@ -40,7 +40,7 @@ extern "C" {
 
 extern caddr_t _sbrk( int incr ) ;
 
-extern int link( char *cOld, char *cNew ) ;
+extern int link( const char *cOld, const char *cNew ) ;
 
 extern int _close( int file ) ;
 
diff --git a/cores/arduino/syscalls_sam3.c b/cores/arduino/syscalls_sam3.c
index 6728c9e0..1a29be43 100644
--- a/cores/arduino/syscalls_sam3.c
+++ b/cores/arduino/syscalls_sam3.c
@@ -77,7 +77,7 @@ extern caddr_t _sbrk ( int incr )
     return (caddr_t) prev_heap ;
 }
 
-extern int link( UNUSED(char *cOld), UNUSED(char *cNew) )
+extern int link( UNUSED(const char *cOld), UNUSED(const char *cNew) )
 {
     return -1 ;
 }