Patchwork [0/6] relocatable SDK

login
register
mail settings
Submitter Laurentiu Palcu
Date July 27, 2012, 11:21 a.m.
Message ID <cover.1343387245.git.laurentiu.palcu@intel.com>
Download mbox
Permalink /patch/33191/
State New
Headers show

Pull-request

git://git.yoctoproject.org/poky-contrib lpalcu/relocatable_sdk

Comments

Laurentiu Palcu - July 27, 2012, 11:21 a.m.
Hi,

This patchset adds relocatable SDK functionality. Instead of a tarball, the
output of "bitbake meta-toolchain/meta-toolchain-sdk" will be a self extracting
archive.

The user will then execute the .sh script and give it the target
directory for SDK installation (default is /opt/poky). The installer will then
extract the embedded tarball to the user provided location and will set up the
SDK: change the paths in the environment script, change the dynamic loader path
in all binaries and, also, change the ls.so.cache path in the dynamic loader
itself, together with the SYSDIR paths/lengths.

With that, no more root privileges are needed in order to install the SDK.

Thanks,
Laurentiu

The following changes since commit 651b223c5fc93c7504e304e954b9ae4640ed47c6:

  usbutils: avoid dependency on bash (2012-07-26 18:52:00 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib lpalcu/relocatable_sdk
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=lpalcu/relocatable_sdk

Laurentiu Palcu (6):
  eglibc: relocatable SDK changes
  binutils: relocatable SDK: change PT_INTERP section size
  scripts: add script for relocating the SDK
  populate_sdk_base.bbclass: create self-extracting archive
  relocatable.bbclass: split it up, to reuse code
  package.bbclass: change RPATHs for nativesdk packages

 meta/classes/chrpath.bbclass                       |   89 +++++++++
 meta/classes/package.bbclass                       |    5 +
 meta/classes/populate_sdk_base.bbclass             |   82 ++++++++
 meta/classes/relocatable.bbclass                   |   91 +--------
 .../eglibc/eglibc-2.15/relocatable_sdk.patch       |   70 +++++++
 meta/recipes-core/eglibc/eglibc_2.15.bb            |    6 +-
 .../binutils/binutils-crosssdk_2.22.bb             |    5 +
 .../binutils/binutils/relocatable_sdk.patch        |   13 ++
 scripts/relocate_sdk.py                            |  200 ++++++++++++++++++++
 9 files changed, 470 insertions(+), 91 deletions(-)
 create mode 100644 meta/classes/chrpath.bbclass
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.15/relocatable_sdk.patch
 create mode 100644 meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch
 create mode 100755 scripts/relocate_sdk.py
Saul Wold - July 27, 2012, 6:05 p.m.
On 07/27/2012 04:21 AM, Laurentiu Palcu wrote:
> Hi,
>
> This patchset adds relocatable SDK functionality. Instead of a tarball, the
> output of "bitbake meta-toolchain/meta-toolchain-sdk" will be a self extracting
> archive.
>
> The user will then execute the .sh script and give it the target
> directory for SDK installation (default is /opt/poky). The installer will then
> extract the embedded tarball to the user provided location and will set up the
> SDK: change the paths in the environment script, change the dynamic loader path
> in all binaries and, also, change the ls.so.cache path in the dynamic loader
> itself, together with the SYSDIR paths/lengths.
>
> With that, no more root privileges are needed in order to install the SDK.
>
> Thanks,
> Laurentiu
>
> The following changes since commit 651b223c5fc93c7504e304e954b9ae4640ed47c6:
>
>    usbutils: avoid dependency on bash (2012-07-26 18:52:00 +0100)
>
> are available in the git repository at:
>
>    git://git.yoctoproject.org/poky-contrib lpalcu/relocatable_sdk
>    http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=lpalcu/relocatable_sdk
>
> Laurentiu Palcu (6):
>    eglibc: relocatable SDK changes
>    binutils: relocatable SDK: change PT_INTERP section size
>    scripts: add script for relocating the SDK
>    populate_sdk_base.bbclass: create self-extracting archive
>    relocatable.bbclass: split it up, to reuse code
>    package.bbclass: change RPATHs for nativesdk packages
>
>   meta/classes/chrpath.bbclass                       |   89 +++++++++
>   meta/classes/package.bbclass                       |    5 +
>   meta/classes/populate_sdk_base.bbclass             |   82 ++++++++
>   meta/classes/relocatable.bbclass                   |   91 +--------
>   .../eglibc/eglibc-2.15/relocatable_sdk.patch       |   70 +++++++
>   meta/recipes-core/eglibc/eglibc_2.15.bb            |    6 +-
>   .../binutils/binutils-crosssdk_2.22.bb             |    5 +
>   .../binutils/binutils/relocatable_sdk.patch        |   13 ++
>   scripts/relocate_sdk.py                            |  200 ++++++++++++++++++++
>   9 files changed, 470 insertions(+), 91 deletions(-)
>   create mode 100644 meta/classes/chrpath.bbclass
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.15/relocatable_sdk.patch
>   create mode 100644 meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch
>   create mode 100755 scripts/relocate_sdk.py
>
Your patches need to have Upstream-Status and Signed-off-by: added along 
with a header explaining why the patch is needed.

Just a quick first pass review, there may be more comments as I review 
deeper.

Sau!
Philip Balister - July 29, 2012, 12:06 p.m.
On 07/27/2012 02:05 PM, Saul Wold wrote:
> On 07/27/2012 04:21 AM, Laurentiu Palcu wrote:
>> Hi,
>>
>> This patchset adds relocatable SDK functionality. Instead of a
>> tarball, the
>> output of "bitbake meta-toolchain/meta-toolchain-sdk" will be a self
>> extracting
>> archive.
>>
>> The user will then execute the .sh script and give it the target
>> directory for SDK installation (default is /opt/poky). The installer

For oe-core the default should be something like /opt/oe-core, not 
/opt/some-distro.

Philip

>> will then
>> extract the embedded tarball to the user provided location and will
>> set up the
>> SDK: change the paths in the environment script, change the dynamic
>> loader path
>> in all binaries and, also, change the ls.so.cache path in the dynamic
>> loader
>> itself, together with the SYSDIR paths/lengths.
>>
>> With that, no more root privileges are needed in order to install the
>> SDK.
>>
>> Thanks,
>> Laurentiu
>>
>> The following changes since commit
>> 651b223c5fc93c7504e304e954b9ae4640ed47c6:
>>
>>    usbutils: avoid dependency on bash (2012-07-26 18:52:00 +0100)
>>
>> are available in the git repository at:
>>
>>    git://git.yoctoproject.org/poky-contrib lpalcu/relocatable_sdk
>>
>> http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=lpalcu/relocatable_sdk
>>
>>
>> Laurentiu Palcu (6):
>>    eglibc: relocatable SDK changes
>>    binutils: relocatable SDK: change PT_INTERP section size
>>    scripts: add script for relocating the SDK
>>    populate_sdk_base.bbclass: create self-extracting archive
>>    relocatable.bbclass: split it up, to reuse code
>>    package.bbclass: change RPATHs for nativesdk packages
>>
>>   meta/classes/chrpath.bbclass                       |   89 +++++++++
>>   meta/classes/package.bbclass                       |    5 +
>>   meta/classes/populate_sdk_base.bbclass             |   82 ++++++++
>>   meta/classes/relocatable.bbclass                   |   91 +--------
>>   .../eglibc/eglibc-2.15/relocatable_sdk.patch       |   70 +++++++
>>   meta/recipes-core/eglibc/eglibc_2.15.bb            |    6 +-
>>   .../binutils/binutils-crosssdk_2.22.bb             |    5 +
>>   .../binutils/binutils/relocatable_sdk.patch        |   13 ++
>>   scripts/relocate_sdk.py                            |  200
>> ++++++++++++++++++++
>>   9 files changed, 470 insertions(+), 91 deletions(-)
>>   create mode 100644 meta/classes/chrpath.bbclass
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.15/relocatable_sdk.patch
>>   create mode 100644
>> meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch
>>   create mode 100755 scripts/relocate_sdk.py
>>
> Your patches need to have Upstream-Status and Signed-off-by: added along
> with a header explaining why the patch is needed.
>
> Just a quick first pass review, there may be more comments as I review
> deeper.
>
> Sau!
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>
Laurentiu Palcu - July 30, 2012, 8:50 a.m.
Hi Philip,

>>> The user will then execute the .sh script and give it the target
>>> directory for SDK installation (default is /opt/poky). The installer
> 
> For oe-core the default should be something like /opt/oe-core, not 
> /opt/some-distro.
This a good observation.

SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}"

I will change the installer/setup scripts so that the default SDK
installation directory takes into account the DISTRO variable.

Thanks,
Laurentiu

> 
> Philip
Richard Purdie - July 30, 2012, 12:30 p.m.
On Mon, 2012-07-30 at 11:50 +0300, Laurentiu Palcu wrote:
> Hi Philip,
> 
> >>> The user will then execute the .sh script and give it the target
> >>> directory for SDK installation (default is /opt/poky). The installer
> > 
> > For oe-core the default should be something like /opt/oe-core, not 
> > /opt/some-distro.
> This a good observation.
> 
> SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}"
> 
> I will change the installer/setup scripts so that the default SDK
> installation directory takes into account the DISTRO variable.

SDKPATH is the right variable to use for this. The above is from
poky.conf and is a valid distro configuration option. The OE-Core
default doesn't use distro and installs into /usr/local/oecore/

Cheers,

Richard