board.h:37: redefinition of `struct global_board_data'
board.h:56: redefinition of `GLOBAL_BOARD_DATA'
board.h:56: `GLOBAL_BOARD_DATA' previously declared here
I can tell you what it means, and possible action. Specifics will depend on what your code looks like.
As it says, its tried defining the struct for global_board_data twice, which implies you have some form of line of the layout
typedef struct global_board_data
declared with a slight typo which could result in decleration twice in the same statement (although not the first line its the first thing that popped into my head).
grep for GLOBAL_BOARD_DATA in you .h files and see where the repeats are same for the struct decleration.
If there are no repeats one other possibility is that you are #include'ing the board.h file too many times and its trying to define everything twice that way. In which case either look at all you #include's for board.h and ensure you aren't doubling up or put safe guards in like this around the entire contents of board.h
// check to see if board.h has already been included, if not include else skip it
/** All your Board.h should go here