title: How to assign address to external symbols from another library without including it in the output of ld?
body: <p><strong>Here the context :</strong></p>
  
  <p>I'm developing some kind of micro OS for arduino ( SAMD21 MCU ).
  I would like the boot loader to load the OS (easy part, the official one works, and the OS is linked with a "<em>with-bootloader</em>.ld" script). Then, to load an application from the OS in a similar way the bootloader loads the OS. (easy for the OS part)</p>
  
  <p>Doing so, the OS would not have to be re-programmed and only the application would change.</p>
  
  <p><strong>Here the question :</strong></p>
  
  <p>Since the OS would include most of arduino code, is it possible to link the app to the OS without including the OS in the binary? I mean at the linking step of the app, to replace any references to symbols from the OS by their actual value without re-including the OS code? What would you add to the linker script ?</p>
  
  <p>The goal is to just re-programm the app code at a predefined address without touching to the OS. (the reprogramming stop would be done from the OS code, self-programming the mcu like an vanilla bootloader)</p>