title: how to fix a local symbol' can not be used when making a shared object error?
body: <p>My compilation of c source files  failed with the following error:</p>
  
  <blockquote>
    <p>libservices.a(protocol.o): relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC<br>
    libservices.a: error adding symbols: Bad value collect2.exe:<br>
    error: ld returned 1 exit status  </p>
  </blockquote>
  
  <p>I didn't do any changes other than adding an extra file to the source directory and things went for a toss. It was working fine without these warnings even though I have not used <code>-fPIC</code> option. Since I didn't make any make file changes I am curious to know why this error and what's the meaning of this, and how to get out of this issue. Help is appreciated.</p>