All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv2] meta-toolchain-arago: make SDK/devkit relocatable
@ 2012-11-07 21:03 Denys Dmytriyenko
  2012-11-07 21:05 ` Denys Dmytriyenko
  0 siblings, 1 reply; 4+ messages in thread
From: Denys Dmytriyenko @ 2012-11-07 21:03 UTC (permalink / raw)
  To: meta-arago

Implement poor man's relocation technique for self-contained crosssdk binaries

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
---
In v2 use stub shell scripts instead of aliases, to work in Makefiles

 meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb b/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
index d2fe982..81bdeed 100644
--- a/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
+++ b/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
@@ -4,7 +4,7 @@ TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-${ARMPKGARCH}-${TARGET_OS}-sdk-${SDK_ARCH}"
 
 require recipes-core/meta/meta-toolchain.bb
 
-PR = "r5"
+PR = "r6"
 
 SDKTARGETSYSROOT = "${SDKPATH}/${ARAGO_TARGET_SYS}"
 
@@ -28,6 +28,7 @@ toolchain_create_sdk_env_script () {
 	echo 'export TARGET_SYS=${ARAGO_TARGET_SYS}' >> $script
 	echo 'export TARGET_PREFIX=$TARGET_SYS-' >> $script
 	echo 'export PATH=$SDK_PATH/bin:$PATH' >> $script
+	echo 'export LD_LIBRARY_PATH=$SDK_PATH/lib:$LD_LIBRARY_PATH' >> $script
 	echo 'export CPATH=$SDK_PATH/$TARGET_SYS/usr/include:$CPATH' >> $script
 	echo 'export PKG_CONFIG_SYSROOT_DIR=$SDK_PATH/$TARGET_SYS' >> $script
 	echo 'export PKG_CONFIG_PATH=$SDK_PATH/$TARGET_SYS${libdir}/pkgconfig' >> $script
@@ -55,3 +56,13 @@ toolchain_create_sdk_env_script () {
 	echo 'export OECORE_DISTRO_VERSION="${DISTRO_VERSION}"' >> $script
 	echo 'export OECORE_SDK_VERSION="${SDK_VERSION}"' >> $script
 }
+
+populate_sdk_ipk_append () {
+	cd ${SDK_OUTPUT}/${SDKPATH}/bin
+	binfiles=`find ! -name "${ARAGO_TARGET_SYS}-*" -type f -perm +111 -exec file {} \;|grep -v ":.*ASCII.*text"|cut -d":" -f1|cut -c3-`
+	for i in $binfiles; do
+		mv $i $i.real
+		printf "#!/bin/sh\n\x24SDK_PATH/lib/ld-linux.so.2 \x24SDK_PATH/bin/$i.real \x24\x2a\n" > $i
+		chmod +x $i
+	done
+}
-- 
1.8.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCHv2] meta-toolchain-arago: make SDK/devkit relocatable
  2012-11-07 21:03 [PATCHv2] meta-toolchain-arago: make SDK/devkit relocatable Denys Dmytriyenko
@ 2012-11-07 21:05 ` Denys Dmytriyenko
  2012-11-07 23:11   ` Cooper Jr., Franklin
  0 siblings, 1 reply; 4+ messages in thread
From: Denys Dmytriyenko @ 2012-11-07 21:05 UTC (permalink / raw)
  To: meta-arago

On Wed, Nov 07, 2012 at 04:03:00PM -0500, Denys Dmytriyenko wrote:
> Implement poor man's relocation technique for self-contained crosssdk binaries
> 
> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
> ---
> In v2 use stub shell scripts instead of aliases, to work in Makefiles

Ok, this seems to work fine in shell and in Makefiles too. And it also works 
when environment-setup is sources before calling make, but not inside the 
Makefile.


>  meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb b/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
> index d2fe982..81bdeed 100644
> --- a/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
> +++ b/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
> @@ -4,7 +4,7 @@ TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-${ARMPKGARCH}-${TARGET_OS}-sdk-${SDK_ARCH}"
>  
>  require recipes-core/meta/meta-toolchain.bb
>  
> -PR = "r5"
> +PR = "r6"
>  
>  SDKTARGETSYSROOT = "${SDKPATH}/${ARAGO_TARGET_SYS}"
>  
> @@ -28,6 +28,7 @@ toolchain_create_sdk_env_script () {
>  	echo 'export TARGET_SYS=${ARAGO_TARGET_SYS}' >> $script
>  	echo 'export TARGET_PREFIX=$TARGET_SYS-' >> $script
>  	echo 'export PATH=$SDK_PATH/bin:$PATH' >> $script
> +	echo 'export LD_LIBRARY_PATH=$SDK_PATH/lib:$LD_LIBRARY_PATH' >> $script
>  	echo 'export CPATH=$SDK_PATH/$TARGET_SYS/usr/include:$CPATH' >> $script
>  	echo 'export PKG_CONFIG_SYSROOT_DIR=$SDK_PATH/$TARGET_SYS' >> $script
>  	echo 'export PKG_CONFIG_PATH=$SDK_PATH/$TARGET_SYS${libdir}/pkgconfig' >> $script
> @@ -55,3 +56,13 @@ toolchain_create_sdk_env_script () {
>  	echo 'export OECORE_DISTRO_VERSION="${DISTRO_VERSION}"' >> $script
>  	echo 'export OECORE_SDK_VERSION="${SDK_VERSION}"' >> $script
>  }
> +
> +populate_sdk_ipk_append () {
> +	cd ${SDK_OUTPUT}/${SDKPATH}/bin
> +	binfiles=`find ! -name "${ARAGO_TARGET_SYS}-*" -type f -perm +111 -exec file {} \;|grep -v ":.*ASCII.*text"|cut -d":" -f1|cut -c3-`
> +	for i in $binfiles; do
> +		mv $i $i.real
> +		printf "#!/bin/sh\n\x24SDK_PATH/lib/ld-linux.so.2 \x24SDK_PATH/bin/$i.real \x24\x2a\n" > $i
> +		chmod +x $i
> +	done
> +}
> -- 
> 1.8.0
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCHv2] meta-toolchain-arago: make SDK/devkit relocatable
  2012-11-07 21:05 ` Denys Dmytriyenko
@ 2012-11-07 23:11   ` Cooper Jr., Franklin
  2012-11-08  1:19     ` Denys Dmytriyenko
  0 siblings, 1 reply; 4+ messages in thread
From: Cooper Jr., Franklin @ 2012-11-07 23:11 UTC (permalink / raw)
  To: Dmytriyenko, Denys, meta-arago@arago-project.org



-----Original Message-----
From: meta-arago-bounces@arago-project.org [mailto:meta-arago-bounces@arago-project.org] On Behalf Of Dmytriyenko, Denys
Sent: Wednesday, November 07, 2012 3:06 PM
To: meta-arago@arago-project.org
Subject: Re: [meta-arago] [PATCHv2] meta-toolchain-arago: make SDK/devkit relocatable

On Wed, Nov 07, 2012 at 04:03:00PM -0500, Denys Dmytriyenko wrote:
> Implement poor man's relocation technique for self-contained crosssdk 
> binaries
> 
> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
> ---
> In v2 use stub shell scripts instead of aliases, to work in Makefiles

Ok, this seems to work fine in shell and in Makefiles too. And it also works when environment-setup is sources before calling make, but not inside the Makefile.

Franklin:
export LD_LIBRARY_PATH=$SDK_PATH/lib:$LD_LIBRARY_PATH is causing issues. Once I source that file I get a Segmentation fault when calling qmake, make,arm-arago-linux-gnueabi-gcc,ls , etc....
Removing that line from environment-setup gets rid of the Segmentation fault issue but of course qmake and the other executables don't work. I get a "error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory".

Since you got this working is there anything the host machine needs to configure to get this to work?

>  meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb | 13 
> ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git 
> a/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb 
> b/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
> index d2fe982..81bdeed 100644
> --- a/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
> +++ b/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
> @@ -4,7 +4,7 @@ TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-${ARMPKGARCH}-${TARGET_OS}-sdk-${SDK_ARCH}"
>  
>  require recipes-core/meta/meta-toolchain.bb
>  
> -PR = "r5"
> +PR = "r6"
>  
>  SDKTARGETSYSROOT = "${SDKPATH}/${ARAGO_TARGET_SYS}"
>  
> @@ -28,6 +28,7 @@ toolchain_create_sdk_env_script () {
>  	echo 'export TARGET_SYS=${ARAGO_TARGET_SYS}' >> $script
>  	echo 'export TARGET_PREFIX=$TARGET_SYS-' >> $script
>  	echo 'export PATH=$SDK_PATH/bin:$PATH' >> $script
> +	echo 'export LD_LIBRARY_PATH=$SDK_PATH/lib:$LD_LIBRARY_PATH' >> 
> +$script
>  	echo 'export CPATH=$SDK_PATH/$TARGET_SYS/usr/include:$CPATH' >> $script
>  	echo 'export PKG_CONFIG_SYSROOT_DIR=$SDK_PATH/$TARGET_SYS' >> $script
>  	echo 'export 
> PKG_CONFIG_PATH=$SDK_PATH/$TARGET_SYS${libdir}/pkgconfig' >> $script @@ -55,3 +56,13 @@ toolchain_create_sdk_env_script () {
>  	echo 'export OECORE_DISTRO_VERSION="${DISTRO_VERSION}"' >> $script
>  	echo 'export OECORE_SDK_VERSION="${SDK_VERSION}"' >> $script  }
> +
> +populate_sdk_ipk_append () {
> +	cd ${SDK_OUTPUT}/${SDKPATH}/bin
> +	binfiles=`find ! -name "${ARAGO_TARGET_SYS}-*" -type f -perm +111 -exec file {} \;|grep -v ":.*ASCII.*text"|cut -d":" -f1|cut -c3-`
> +	for i in $binfiles; do
> +		mv $i $i.real
> +		printf "#!/bin/sh\n\x24SDK_PATH/lib/ld-linux.so.2 \x24SDK_PATH/bin/$i.real \x24\x2a\n" > $i
> +		chmod +x $i
> +	done
> +}
> --
> 1.8.0
> 
_______________________________________________
meta-arago mailing list
meta-arago@arago-project.org
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCHv2] meta-toolchain-arago: make SDK/devkit relocatable
  2012-11-07 23:11   ` Cooper Jr., Franklin
@ 2012-11-08  1:19     ` Denys Dmytriyenko
  0 siblings, 0 replies; 4+ messages in thread
From: Denys Dmytriyenko @ 2012-11-08  1:19 UTC (permalink / raw)
  To: Cooper Jr., Franklin; +Cc: meta-arago@arago-project.org

On Wed, Nov 07, 2012 at 11:11:05PM +0000, Cooper Jr., Franklin wrote:
> 
> 
> -----Original Message-----
> From: meta-arago-bounces@arago-project.org [mailto:meta-arago-bounces@arago-project.org] On Behalf Of Dmytriyenko, Denys
> Sent: Wednesday, November 07, 2012 3:06 PM
> To: meta-arago@arago-project.org
> Subject: Re: [meta-arago] [PATCHv2] meta-toolchain-arago: make SDK/devkit relocatable
> 
> On Wed, Nov 07, 2012 at 04:03:00PM -0500, Denys Dmytriyenko wrote:
> > Implement poor man's relocation technique for self-contained crosssdk 
> > binaries
> > 
> > Signed-off-by: Denys Dmytriyenko <denys@ti.com>
> > ---
> > In v2 use stub shell scripts instead of aliases, to work in Makefiles
> 
> Ok, this seems to work fine in shell and in Makefiles too. And it also works 
> when environment-setup is sources before calling make, but not inside the 
> Makefile.
> 
> Franklin:
> export LD_LIBRARY_PATH=$SDK_PATH/lib:$LD_LIBRARY_PATH is causing issues. 
> Once I source that file I get a Segmentation fault when calling qmake, 
> make,arm-arago-linux-gnueabi-gcc,ls , etc....
> Removing that line from environment-setup gets rid of the Segmentation fault 
> issue but of course qmake and the other executables don't work. I get a 
> "error while loading shared libraries: libstdc++.so.6: cannot open shared 
> object file: No such file or directory".

Yeah, that explains the segfault Chase was seeing. I didn't see the segfault 
on regular system apps, like make, ls etc. But it did segfault on Arago 
toolchain binaries, like arm-arago-linux-gnueabi-gcc etc. It's better to set 
LD_LIBRARY_PATH variable only for select SDK tools that we have shell stubs 
for, instead of globally. The fix is now in.


> Since you got this working is there anything the host machine needs to 
> configure to get this to work?

I guess it's rather host system specific...


> >  meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb | 13 
> > ++++++++++++-
> >  1 file changed, 12 insertions(+), 1 deletion(-)
> > 
> > diff --git 
> > a/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb 
> > b/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
> > index d2fe982..81bdeed 100644
> > --- a/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
> > +++ b/meta-arago-extras/recipes-core/meta/meta-toolchain-arago.bb
> > @@ -4,7 +4,7 @@ TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-${ARMPKGARCH}-${TARGET_OS}-sdk-${SDK_ARCH}"
> >  
> >  require recipes-core/meta/meta-toolchain.bb
> >  
> > -PR = "r5"
> > +PR = "r6"
> >  
> >  SDKTARGETSYSROOT = "${SDKPATH}/${ARAGO_TARGET_SYS}"
> >  
> > @@ -28,6 +28,7 @@ toolchain_create_sdk_env_script () {
> >  	echo 'export TARGET_SYS=${ARAGO_TARGET_SYS}' >> $script
> >  	echo 'export TARGET_PREFIX=$TARGET_SYS-' >> $script
> >  	echo 'export PATH=$SDK_PATH/bin:$PATH' >> $script
> > +	echo 'export LD_LIBRARY_PATH=$SDK_PATH/lib:$LD_LIBRARY_PATH' >> 
> > +$script
> >  	echo 'export CPATH=$SDK_PATH/$TARGET_SYS/usr/include:$CPATH' >> $script
> >  	echo 'export PKG_CONFIG_SYSROOT_DIR=$SDK_PATH/$TARGET_SYS' >> $script
> >  	echo 'export 
> > PKG_CONFIG_PATH=$SDK_PATH/$TARGET_SYS${libdir}/pkgconfig' >> $script @@ -55,3 +56,13 @@ toolchain_create_sdk_env_script () {
> >  	echo 'export OECORE_DISTRO_VERSION="${DISTRO_VERSION}"' >> $script
> >  	echo 'export OECORE_SDK_VERSION="${SDK_VERSION}"' >> $script  }
> > +
> > +populate_sdk_ipk_append () {
> > +	cd ${SDK_OUTPUT}/${SDKPATH}/bin
> > +	binfiles=`find ! -name "${ARAGO_TARGET_SYS}-*" -type f -perm +111 -exec file {} \;|grep -v ":.*ASCII.*text"|cut -d":" -f1|cut -c3-`
> > +	for i in $binfiles; do
> > +		mv $i $i.real
> > +		printf "#!/bin/sh\n\x24SDK_PATH/lib/ld-linux.so.2 \x24SDK_PATH/bin/$i.real \x24\x2a\n" > $i
> > +		chmod +x $i
> > +	done
> > +}
> > --
> > 1.8.0
> > 
> _______________________________________________
> meta-arago mailing list
> meta-arago@arago-project.org
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
> _______________________________________________
> meta-arago mailing list
> meta-arago@arago-project.org
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-11-08  1:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-07 21:03 [PATCHv2] meta-toolchain-arago: make SDK/devkit relocatable Denys Dmytriyenko
2012-11-07 21:05 ` Denys Dmytriyenko
2012-11-07 23:11   ` Cooper Jr., Franklin
2012-11-08  1:19     ` Denys Dmytriyenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.