eeprom_write_byte works but eeprom_update_byte doesn't compile

I am including avr/eeprom.h in my ino file

if I use eeprom_write_byte(&OLD_A, OLD_ALARM_FALSE); the code complies well but if there is any instance of eeprom_update_* like eeprom_update_byte(&OLD_A, OLD_ALARM_FALSE); the compiler gives the following error

libc.a(isspace.o):In function `isspace (.text.avr-libc+0x2):relocation truncated to fit: R_AVR_13_PCREL against symbol __ctype_isfalse' defined in .text.avr-libc section in..\avr\lib\avr5\libc.a(cty_isfalse.o) collect2.exe*:error: ld returned 1 exit status Error creating .elf I am not sure why this happens and how to solve it