title: What does this GCC error "... relocation truncated to fit..." mean?
body: <p>I am programming the host side of a host-accelerator system. The host runs on the PC under Ubuntu Linux and communicates with the embedded hardware via a USB connection. The communication is performed by copying memory chunks to and from the embedded hardware's memory.</p>
  <p>On the board's memory there is a memory region which I use as a mailbox where I write and read the data. The mailbox is defined as a structure and I use the same definition to allocate a mirror mailbox in my host space.</p>
  <p>I used this technique successfully in the past so now I copied the host Eclipse project to my current project's workspace, and made the appropriate name changes. The strange thing is that when building the host project I now get the following message:</p>
  <blockquote>
  <p>Building target: fft2d_host<br />
  Invoking: GCC C Linker<br />
  gcc -L/opt/adapteva/esdk/tools/host/x86_64/lib -o &quot;fft2d_host&quot;  ./src/fft2d_host.o   -le_host -lrt</p>
  <p>./src/fft2d_host.o: In function `main':</p>
  <p><strong>fft2d_host.c:(.text+0x280): relocation truncated to fit: R_X86_64_PC32 against symbol `Mailbox' defined in COMMON section in ./src/fft2d_host.o</strong></p>
  </blockquote>
  <p>What does this error mean and why it won't build on the current project, while it is OK with the older project?</p>