On Fri, Apr 23, 2010 at 11:07:33AM -0700, Tom Rini wrote:
> On Fri, 2010-04-23 at 13:07 +0200, Koen Kooi wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> > 
> > Ping
> 
> It's better than what we have today, true.  And SDKPATH already contains
> DISTRO, which is the likely changer of TOOLCHAIN_*_TASK.  So...
> 
> Acked-by: Tom Rini <[email protected]>

In general:

Acked-by: Denys Dmytriyenko <[email protected]>

But, should we then create an arch-specific environment-setup scripts (e.g. 
one for armv4 and another for armv7a, as per your example below)?

> > On 21-04-10 14:21, Koen Kooi wrote:
> > > From: Koen Kooi <[email protected]>
> > > 
> > > This is the first step to be able to mix multiple arm archs (and ABIs) 
> > > when installing multiple SDKs on one buildhost (e.g. armv4 and armv7a).
> > > 
> > > ---
> > >  recipes/meta/meta-toolchain.bb |   50 
> > > ++++++++++++++++++++--------------------
> > >  1 files changed, 25 insertions(+), 25 deletions(-)
> > > 
> > > diff --git a/recipes/meta/meta-toolchain.bb 
> > > b/recipes/meta/meta-toolchain.bb
> > > index adc057a..2e2196a 100644
> > > --- a/recipes/meta/meta-toolchain.bb
> > > +++ b/recipes/meta/meta-toolchain.bb
> > > @@ -10,7 +10,7 @@ SDK_OUTPUT2 = "${SDK_DIR}/image-extras"
> > >  SDK_DEPLOY = "${DEPLOY_DIR}/sdk"
> > >  
> > >  IPKG_HOST = "opkg-cl -f ${IPKGCONF_SDK} -o ${SDK_OUTPUT}"
> > > -IPKG_TARGET = "opkg-cl -f ${IPKGCONF_TARGET} -o 
> > > ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}"
> > > +IPKG_TARGET = "opkg-cl -f ${IPKGCONF_TARGET} -o 
> > > ${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS}"
> > >  
> > >  TOOLCHAIN_HOST_TASK ?= "task-sdk-host"
> > >  TOOLCHAIN_TARGET_TASK ?= "task-sdk-bare"
> > > @@ -26,14 +26,14 @@ RDEPENDS = "${DISTRO_FEED_CONFIGS} 
> > > ${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TAS
> > >  TOOLCHAIN_FEED_URI ?= "${DISTRO_FEED_URI}"
> > >  
> > >  modify_opkg_conf () {
> > > -        
> > > OUTPUT_OPKGCONF_TARGET="${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}/opkg.conf"
> > > -        
> > > OUTPUT_OPKGCONF_HOST="${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}/opkg-sdk.conf"
> > > +        
> > > OUTPUT_OPKGCONF_TARGET="${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS}/${sysconfdir}/opkg.conf"
> > > +        
> > > OUTPUT_OPKGCONF_HOST="${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS}/${sysconfdir}/opkg-sdk.conf"
> > >          OUTPUT_OPKGCONF_SDK="${SDK_OUTPUT}/${sysconfdir}/opkg-sdk.conf"
> > >          rm -f ${OUTPUT_OPKGCONF_TARGET}
> > >          rm -f ${OUTPUT_OPKGCONF_HOST}
> > >          rm -f ${OUTPUT_OPKGCONF_SDK}
> > >  
> > > -        if [ -e 
> > > ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}/opkg/arch.conf ] ; 
> > > then
> > > +        if [ -e 
> > > ${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS}/${sysconfdir}/opkg/arch.conf
> > >  ] ; then
> > >              echo "Creating empty opkg.conf since arch.conf is already 
> > > present"
> > >              echo > ${OUTPUT_OPKGCONF_TARGET} 
> > >          else
> > > @@ -53,7 +53,7 @@ do_populate_sdk() {
> > >   rm -rf ${SDK_OUTPUT}
> > >   mkdir -p ${SDK_OUTPUT}
> > >   mkdir -p ${SDK_OUTPUT}${libdir}/opkg/
> > > - mkdir -p ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}${libdir}/opkg/
> > > + mkdir -p ${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS}${libdir}/opkg/
> > >  
> > >   package_generate_ipkg_conf
> > >  
> > > @@ -79,17 +79,17 @@ do_populate_sdk() {
> > >   # Clean up empty directories from excluded packages
> > >   find ${SDK_OUTPUT} -depth -type d -empty -print0 | xargs -r0 /bin/rmdir
> > >  
> > > - install -d ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}
> > > - install -m 0644 ${IPKGCONF_TARGET} ${IPKGCONF_SDK} 
> > > ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}/
> > > + install -d 
> > > ${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS}/${sysconfdir}
> > > + install -m 0644 ${IPKGCONF_TARGET} ${IPKGCONF_SDK} 
> > > ${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS}/${sysconfdir}/
> > >  
> > >   install -d ${SDK_OUTPUT}/${SDKPATH}/${sysconfdir}
> > >   install -m 0644 ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKPATH}/${sysconfdir}/
> > >  
> > >   # extract and store ipks, pkgdata and shlibs data
> > > - target_pkgs=`cat 
> > > ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/usr/lib/opkg/status | grep 
> > > Package: | cut -f 2 -d ' '`
> > > + target_pkgs=`cat 
> > > ${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS}/usr/lib/opkg/status | 
> > > grep Package: | cut -f 2 -d ' '`
> > >   mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/ipk/
> > >   mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/runtime/
> > > - mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/${TARGET_SYS}/shlibs/
> > > + mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/${MULTIMACH_TARGET_SYS}/shlibs/
> > >   for pkg in $target_pkgs ; do
> > >           for arch in $revipkgarchs; do
> > >                   pkgnames=${DEPLOY_DIR_IPK}/$arch/${pkg}_*_$arch.ipk
> > > @@ -107,7 +107,7 @@ do_populate_sdk() {
> > >                                           cp 
> > > ${TMPDIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged 
> > > ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/runtime/
> > >                                   fi
> > >                                   if [ -e 
> > > ${STAGING_DIR_TARGET}/shlibs/$subpkg.list ]; then
> > > -                                         cp 
> > > ${STAGING_DIR_TARGET}/shlibs/$subpkg.* 
> > > ${SDK_OUTPUT2}/${SDKPATH}/${TARGET_SYS}/shlibs/
> > > +                                         cp 
> > > ${STAGING_DIR_TARGET}/shlibs/$subpkg.* 
> > > ${SDK_OUTPUT2}/${SDKPATH}/${MULTIMACH_TARGET_SYS}/shlibs/
> > >                                   fi
> > >                           done
> > >                           break
> > > @@ -119,20 +119,20 @@ do_populate_sdk() {
> > >   # libgcc-dev should be responsible for that, but it's not getting built
> > >   # RP: it gets smashed up depending on the order that gcc, gcc-cross and 
> > >   # gcc-cross-sdk get built :( (30/11/07)
> > > - ln -sf libgcc_s.so.1 
> > > ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/lib/libgcc_s.so
> > > + ln -sf libgcc_s.so.1 
> > > ${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS}/lib/libgcc_s.so
> > >  
> > >   # With sysroot support, gcc expects the default C++ headers to be
> > >   # in a specific place.
> > > - install -d ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/include
> > > - mv ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/usr/include/c++ \
> > > -         ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/include/
> > > + install -d ${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS}/include
> > > + mv ${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS}/usr/include/c++ \
> > > +         ${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS}/include/
> > >  
> > >   # Fix or remove broken .la files
> > > - for i in `find ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS} -name \*.la`; do
> > > -         sed -i  -e 
> > > "/^dependency_libs=/s,\([[:space:]']\)${base_libdir},\1\$SDK_PATH/\$TARGET_SYS${base_libdir},g"
> > >  \
> > > -                 -e 
> > > "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1\$SDK_PATH/\$TARGET_SYS${libdir},g"
> > >  \
> > > -                 -e 
> > > "/^dependency_libs=/s,\-\([LR]\)${base_libdir},-\1\$SDK_PATH/\$TARGET_SYS${base_libdir},g"
> > >  \
> > > -                 -e 
> > > "/^dependency_libs=/s,\-\([LR]\)${libdir},-\1\$SDK_PATH/\$TARGET_SYS${libdir},g"
> > >  \
> > > + for i in `find ${SDK_OUTPUT}/${SDKPATH}/${MULTIMACH_TARGET_SYS} -name 
> > > \*.la`; do
> > > +         sed -i  -e 
> > > "/^dependency_libs=/s,\([[:space:]']\)${base_libdir},\1\$SDK_PATH/\$MULTIMACH_TARGET_SYS${base_libdir},g"
> > >  \
> > > +                 -e 
> > > "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1\$SDK_PATH/\$MULTIMACH_TARGET_SYS${libdir},g"
> > >  \
> > > +                 -e 
> > > "/^dependency_libs=/s,\-\([LR]\)${base_libdir},-\1\$SDK_PATH/\$MULTIMACH_TARGET_SYS${base_libdir},g"
> > >  \
> > > +                 -e 
> > > "/^dependency_libs=/s,\-\([LR]\)${libdir},-\1\$SDK_PATH/\$MULTIMACH_TARGET_SYS${libdir},g"
> > >  \
> > >                   -e 's/^installed=yes$/installed=no/' $i
> > >   done
> > >   rm -f ${SDK_OUTPUT}/${SDKPATH}/lib/*.la
> > > @@ -148,15 +148,15 @@ do_populate_sdk() {
> > >   script=${SDK_OUTPUT}/${SDKPATH}/environment-setup
> > >   touch $script
> > >   echo 'export SDK_PATH=${SDKPATH}' >> $script
> > > - echo 'export TARGET_SYS=${TARGET_SYS}' >> $script
> > > + echo 'export MULTIMACH_TARGET_SYS=${MULTIMACH_TARGET_SYS}' >> $script
> > >   echo 'export PATH=$SDK_PATH/bin:$PATH' >> $script
> > > - echo 'export CPATH=$SDK_PATH/$TARGET_SYS/usr/include:$CPATH' >> $script
> > > - echo 'export LIBTOOL_SYSROOT_PATH=$SDK_PATH/$TARGET_SYS' >> $script
> > > - echo 'export PKG_CONFIG_SYSROOT_DIR=$SDK_PATH/$TARGET_SYS' >> $script
> > > - echo 'export PKG_CONFIG_PATH=$SDK_PATH/$TARGET_SYS${libdir}/pkgconfig' 
> > > >> $script
> > > + echo 'export CPATH=$SDK_PATH/$MULTIMACH_TARGET_SYS/usr/include:$CPATH' 
> > > >> $script
> > > + echo 'export LIBTOOL_SYSROOT_PATH=$SDK_PATH/$MULTIMACH_TARGET_SYS' >> 
> > > $script
> > > + echo 'export PKG_CONFIG_SYSROOT_DIR=$SDK_PATH/$MULTIMACH_TARGET_SYS' >> 
> > > $script
> > > + echo 'export 
> > > PKG_CONFIG_PATH=$SDK_PATH/$MULTIMACH_TARGET_SYS${libdir}/pkgconfig' >> 
> > > $script
> > >   echo 'export CONFIG_SITE=$SDK_PATH/site-config' >> $script
> > >   echo 'alias opkg="LD_LIBRARY_PATH=$SDK_PATH/lib $SDK_PATH/bin/opkg-cl 
> > > -f $SDK_PATH/${sysconfdir}/opkg-sdk.conf -o $SDK_PATH"' >> $script
> > > - echo 'alias opkg-target="LD_LIBRARY_PATH=$SDK_PATH/lib 
> > > $SDK_PATH/bin/opkg-cl -f $SDK_PATH/$TARGET_SYS${sysconfdir}/opkg.conf -o 
> > > $SDK_PATH/$TARGET_SYS"' >> $script
> > > + echo 'alias opkg-target="LD_LIBRARY_PATH=$SDK_PATH/lib 
> > > $SDK_PATH/bin/opkg-cl -f 
> > > $SDK_PATH/$MULTIMACH_TARGET_SYS${sysconfdir}/opkg.conf -o 
> > > $SDK_PATH/$MULTIMACH_TARGET_SYS"' >> $script
> > >  
> > >   # Add version information
> > >   versionfile=${SDK_OUTPUT}/${SDKPATH}/version
> > 
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.4.5 (Darwin)
> > 
> > iD8DBQFL0X+LMkyGM64RGpERAjk7AJ44eTjMVw7SD+Qapa1LdwJO5tiEXQCcCw2S
> > EHftzrdtZOChyR9eIKhJ0aw=
> > =AHEQ
> > -----END PGP SIGNATURE-----
> > 
> > 
> > _______________________________________________
> > Openembedded-devel mailing list
> > [email protected]
> > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
> 
> 
> -- 
> Tom Rini <[email protected]>
> Mentor Graphics Corporation
> 
> _______________________________________________
> Openembedded-devel mailing list
> [email protected]
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

Reply via email to