Using Arduino Uno instead of FTDI cable to program 1284p w/ Optiboot

You must be using a different toolchain to what I am. Try moving the word PROGMEM around a bit, eg.

byte ATmegaBOOT_168_atmega1280_hex [] PROGMEM = {