Skip to content
  • Wolfgang Grandegger's avatar
    core: introduce "sdk" target to make a relocatable SDK · 994301a2
    Wolfgang Grandegger authored
    
    
    We use a separate make target to build a relocatable SDK. We first
    sanitize the RPATH in host tree. Next we also sanitize the
    staging tree. Therefore "sdk" must depend on world.
    
    Sanitizing staging is not really needed, in the sense that any rpath
    in there is simply not going to be used. We want to sanitize staging
    for the following reasons:
    
    - To avoid leaking references to the original output directory. This
      way, we can validate that the SDK is relocatable by running a simple
      "grep -r ${BASE_DIR} ${HOST_DIR}". Obviously RPATH sanitization is
      not sufficient (e.g. also the references to source files have to be
      stripped), but it's a step in the right direction. This reason is
      obviously only relevant for the SDK.
    
    - To make sure that when an executable is copied to target that it
      actually executes correctly. Since within Buildroot we never copy
      stuff from staging to target, this is clearly only relevant for
      the SDK.
    
    Finally we install the script "relocate-sdk.sh" into the top directory
    of the SDK (HOST_DIR) and the SDK location path is stored in the file
    "HOST_DIR/share/buildroot/sdk-location"-
    
    Signed-off-by: default avatarWolfgang Grandegger <wg@grandegger.com>
    Reviewed-by: default avatarArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
    Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
    994301a2