Updating the mighty-1284p core

yes!

One way you could do to include the "non standard" pin mapping variants (such, as, er, "standard")

is to have them define three macros in their variants pins_arduino.h file.

#define ENET_INIT_SS DDRB|=_BV(4)
#define ENET_SET_SS PORTB&=~_BV(4) 
#define ENET_RESET_SS PORTB|=_BV(4)

or whatever is appropriate for their pin mapping to toggle whatever pin is connected to SS on the Ethernet shield.

And then write:

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__)
#if defined(ENET_INIT_SS) && defined(ENET_SET_SS) && defined(ENET_RESET_SS) 
  inline static void initSS()    { ENET_INIT_SS; }
  inline static void setSS()     { ENET_SET_SS; }
  inline static void resetSS()   { ENET_RESET_SS; }
#else
  inline static void initSS()    { DDRB  |=  _BV(4); }
  inline static void setSS()     { PORTB &= ~_BV(4); }
  inline static void resetSS()   { PORTB |=  _BV(4); }
#endif

This gives the guys with pin mappings where SS != D10 a chance to use the etherent shield, at least.

For "standard shield" mappings (Bobuino, Goldilocks, SB (I think ?)) the default could be used, and the macros wouldn't need to be defined. For "standard", and other non-standard mappings, they would have define the three macros.

Just a thought.

BTW, I removed the trailing ; after the inline function definitions (shouldn't really be there, since the closing brace closes a function definition, not a statement.)