Date   

Re: Eclipse Plugin

Zhang, Jessica
 

So can you upgrade to eclipse Juno, base on the error org.eclipse.cdt.autotools.core could not be found, the yocto plug-in you're installing is for Juno.

-----Original Message-----
From: yocto-bounces@... [mailto:yocto-bounces@...] On Behalf Of Flavio Castro Alves Filho
Sent: Friday, January 18, 2013 5:11 AM
To: Björn Arnelid
Cc: yocto@...
Subject: Re: [yocto] Eclipse Plugin

The problem right now is not regarding compilation issues, but Eclipse plugin is not launching the compilation correctly.

I tried to install Eclipse Indigo, with the instructions from Yocto dev manual.

I installed Eclipse, its components and when I try to install the Yocto component, I have the following error:

Cannot complete the install because one or more required items could not be found.
Software being installed: Yocto Plugin for Eclipse
1.2.0.201210102158 (org.yocto.sdk.feature.group 1.2.0.201210102158)
Missing requirement: Yocto Plugin for Eclipse 1.2.0.201210102158 (org.yocto.sdk.feature.group 1.2.0.201210102158) requires 'org.eclipse.cdt.autotools.core 1.1.0' but it could not be found

I searched for this component in my eclipse/plugins directory and it is not available.

But ... when I see the installed components in Eclipse (from the UI), it indicates that autotools for CDT is installed.


2013/1/18 Björn Arnelid <bjorn.arnelid@...>:
2013-01-18 13:24, Flavio Castro Alves Filho skrev:

Hello,

I'm facing similar issue (in fact, Raul and I are working together on
this deploy).

I'll describe the steps that we followed. Our system is Ubuntu 12.04
LTS and our Eclipse version is Juno.

1) We build core-image-minimal using poky 1.3 (danny), meta-ti,
meta-openembedded/meta-oe

2) We build toolchain from the build system, using meta-ide-support

3) We downloaded Eclipse classic from Eclipse's website

4) We installed the Eclipse's components, according to Yocto dev
manual instructions

5) We installed Yocto ADT plugin from the repository (version 1.3)

We extracted the generated root filesystem in another directory, in
order to properly configure the Eclipse Yocto plugin.

For now, installation worked fine. The problem occurs when we try to
build the hello world application.

We followed the steps from the Yocto dev manual.

Before starting the build, I lanched the reconfigure option. After,
when started to build, the error message indicates 'no make target'.

Looking at the files, I could see that autogen.sh was executed, but
the configure script don't. I believe that there is some isse where
the IDE is not executing the configure script.

Do you have any clue about how to solve this issue?

Best regards,

Flavio


2013/1/17 Zhang, Jessica <jessica.zhang@...>:

Hi Raul,



Before we can help you debug your issue, can you provide more info
regarding
to:



1. How did you setup your cross toolchain? ADT installer or
toolchain
tarball (your build if so, how did you build it. If not, which one
did you
download?)

2. And also, please provide more info what's your toolchain setup
in
Eclipse, specifically the Yocto Project ADT preference config under
Window?

Thanks,

Jessica



From: yocto-bounces@...
[mailto:yocto-bounces@...]
On Behalf Of Raul Rosetto Munoz
Sent: Thursday, January 17, 2013 4:10 AM
To: yocto@...
Subject: [yocto] Eclipse Plugin



Hello All,

I followed the ADT manual to create a eclipse environment.



After create a default Hello World Yocto project I get some compile
errors.



At file config.log I saw some errors lines:





configure:2861: checking for arm-poky-linux-gnueabi-gcc

configure:2888: result: arm-poky-linux-gnueabi-gcc -march=armv5te
-marm -mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm

configure:3157: checking for C compiler version

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm --version >&5

arm-poky-linux-gnueabi-gcc (GCC) 4.7.2

Copyright (C) 2012 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There
is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.



configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -v >&5

Using built-in specs.

COLLECT_GCC=arm-poky-linux-gnueabi-gcc


COLLECT_LTO_WRAPPER=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/li
bexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/lt
o-wrapper

Target: arm-poky-linux-gnueabi

Configured with:

/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/
build/tmp/work-shared/gcc-4.7.2-r13/gcc-4.7.2/configure
--build=x86_64-linux --host=i686-pokysdk-linux
--target=arm-poky-linux-gnueabi
--prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr
--exec_prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr

--bindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-p
oky-linux-gnueabi

--sbindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-
poky-linux-gnueabi

--libexecdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/a
rmv5te-poky-linux-gnueabi
--datadir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share
--sysconfdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/etc
--sharedstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/com
--localstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/var

--libdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/lib/armv5te-p
oky-linux-gnueabi
--includedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include
--oldincludedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/includ
e --infodir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/info
--mandir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/man
--disable-silent-rules --disable-dependency-tracking

--with-libtool-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-s
lave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-lin
ux --with-gnu-ld --enable-shared --enable-languages=c,c++
--enable-threads=posix --disable-multilib --enable-c99
--enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch
--program-prefix=arm-poky-linux-gnueabi- --without-local-prefix
--enable-target-optspace --enable-lto --enable-libssp
--disable-bootstrap --disable-libgomp --disable-libmudflap
--with-system-zlib --with-linker-hash-style=gnu --with-ppl=no
--with-cloog=no --enable-checking=release --enable-cheaders=c_global
--with-float=soft

--with-gxx-include-dir=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnu
eabi/usr/include/c++

--with-build-time-tools=/srv/home/pokybuild/yocto-autobuilder/yocto-
slave/nightly-arm/build/build/tmp/sysroots/x86_64-linux/usr/arm-poky
-linux-gnueabi/bin
--with-sysroot=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi

--with-build-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-sla
ve/nightly-arm/build/build/tmp/sysroots/qemuarm
--disable-libunwind-exceptions --disable-libssp --disable-libgomp
--disable-libmudflap

--with-mpfr=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightl
y-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux

--with-mpc=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly
-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--enable-nls

Thread model: posix

gcc version 4.7.2 (GCC)

configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -V >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option '-V'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -qversion >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option
'-qversion'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3197: checking whether the C compiler works

configure:3219: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -g -O0
--sysroot=/opt/poky/1.3 --sysroot=/opt/poky/1.3
--sysroot=/opt/poky/1.3 conftest.c >&5


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crt1.o: No such file or directory


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crti.o: No such file or directory


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtbegin.o: No such file or directory


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc_s


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lc


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc_s


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtend.o: No such file or directory


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtn.o: No such file or directory

collect2: error: ld returned 1 exit status

configure:3223: $? = 1

configure:3261: result: no

configure: failed program was:

| /* confdefs.h */

| #define PACKAGE_NAME "teste"

| #define PACKAGE_TARNAME "teste"

| #define PACKAGE_VERSION "0.1.0"

| #define PACKAGE_STRING "teste 0.1.0"

| #define PACKAGE_BUGREPORT ""

| #define PACKAGE_URL ""

| #define PACKAGE "teste"

| #define VERSION "0.1.0"

| /* end confdefs.h. */

|

| int

| main ()

| {

|

| ;

| return 0;

| }

configure:3266: error: in `/home/prjs/compsis0001/workspace/teste':

configure:3268: error: C compiler cannot create executables

See `config.log' for more details



## ---------------- ##

## Cache variables. ##

## ---------------- ##

...

...

...

## ----------------- ##

## Output variables. ##

## ----------------- ##

...

...

...

/* confdefs.h */

#define PACKAGE_NAME "teste"

#define PACKAGE_TARNAME "teste"

#define PACKAGE_VERSION "0.1.0"

#define PACKAGE_STRING "teste 0.1.0"

#define PACKAGE_BUGREPORT ""

#define PACKAGE_URL ""

#define PACKAGE "teste"

#define VERSION "0.1.0"



configure: exit 77





Some One can Help me?



Thanks



--
Raul Rosetto Muñoz


_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto
Don't you need to develop against a -sdk image?
Try building a debug image, extract the file-system and point to that
when developing.

regards,
Björn


--
Björn Arnelid | Software Engineer
M: +46-70-971 4459 | björn.arnelid@... XDIN AB | Knarrarnäsgatan
7 | SE-164 40 Kista | xdin.com

Xdin develop and deliver expertise through committed engineering and
IT consultants.


_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto


--
Flavio de Castro Alves Filho

flavio.alves@...
www.linuxembarcado.com
Twitter: http://twitter.com/#!/fraviofii LinkedIn profile: www.linkedin.com/in/flaviocastroalves
_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto


Re: Eclipse Plugin

Flavio Castro Alves Filho <flavio.alves@...>
 

I believe that the best solution is to check why is it not working on
Eclipse Juno.

2013/1/18 Björn Arnelid <bjorn.arnelid@...>:

Yeah, sounds like problems with your installation.
remove eclipse and try to set it up again - or try to manually copy
autotools into your plugin folder.

regards,
Björn

2013-01-18 14:10, Flavio Castro Alves Filho skrev:

The problem right now is not regarding compilation issues, but Eclipse
plugin is not launching the compilation correctly.

I tried to install Eclipse Indigo, with the instructions from Yocto dev
manual.

I installed Eclipse, its components and when I try to install the
Yocto component, I have the following error:

Cannot complete the install because one or more required items could
not be found.
Software being installed: Yocto Plugin for Eclipse
1.2.0.201210102158 (org.yocto.sdk.feature.group 1.2.0.201210102158)
Missing requirement: Yocto Plugin for Eclipse 1.2.0.201210102158
(org.yocto.sdk.feature.group 1.2.0.201210102158) requires
'org.eclipse.cdt.autotools.core 1.1.0' but it could not be found

I searched for this component in my eclipse/plugins directory and it
is not available.

But ... when I see the installed components in Eclipse (from the UI),
it indicates that autotools for CDT is installed.


2013/1/18 Björn Arnelid <bjorn.arnelid@...>:

2013-01-18 13:24, Flavio Castro Alves Filho skrev:

Hello,

I'm facing similar issue (in fact, Raul and I are working together on
this deploy).

I'll describe the steps that we followed. Our system is Ubuntu 12.04
LTS and our Eclipse version is Juno.

1) We build core-image-minimal using poky 1.3 (danny), meta-ti,
meta-openembedded/meta-oe

2) We build toolchain from the build system, using meta-ide-support

3) We downloaded Eclipse classic from Eclipse's website

4) We installed the Eclipse's components, according to Yocto dev
manual instructions

5) We installed Yocto ADT plugin from the repository (version 1.3)

We extracted the generated root filesystem in another directory, in
order to properly configure the Eclipse Yocto plugin.

For now, installation worked fine. The problem occurs when we try to
build the hello world application.

We followed the steps from the Yocto dev manual.

Before starting the build, I lanched the reconfigure option. After,
when started to build, the error message indicates 'no make target'.

Looking at the files, I could see that autogen.sh was executed, but
the configure script don't. I believe that there is some isse where
the IDE is not executing the configure script.

Do you have any clue about how to solve this issue?

Best regards,

Flavio


2013/1/17 Zhang, Jessica <jessica.zhang@...>:

Hi Raul,



Before we can help you debug your issue, can you provide more info
regarding
to:



1. How did you setup your cross toolchain? ADT installer or
toolchain
tarball (your build if so, how did you build it. If not, which one did
you
download?)

2. And also, please provide more info what’s your toolchain setup
in
Eclipse, specifically the Yocto Project ADT preference config under
Window?

Thanks,

Jessica



From: yocto-bounces@...
[mailto:yocto-bounces@...]
On Behalf Of Raul Rosetto Munoz
Sent: Thursday, January 17, 2013 4:10 AM
To: yocto@...
Subject: [yocto] Eclipse Plugin



Hello All,

I followed the ADT manual to create a eclipse environment.



After create a default Hello World Yocto project I get some compile
errors.



At file config.log I saw some errors lines:





configure:2861: checking for arm-poky-linux-gnueabi-gcc

configure:2888: result: arm-poky-linux-gnueabi-gcc -march=armv5te
-marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm

configure:3157: checking for C compiler version

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm --version >&5

arm-poky-linux-gnueabi-gcc (GCC) 4.7.2

Copyright (C) 2012 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is
NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.



configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -v >&5

Using built-in specs.

COLLECT_GCC=arm-poky-linux-gnueabi-gcc



COLLECT_LTO_WRAPPER=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/lto-wrapper

Target: arm-poky-linux-gnueabi

Configured with:


/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/work-shared/gcc-4.7.2-r13/gcc-4.7.2/configure
--build=x86_64-linux --host=i686-pokysdk-linux
--target=arm-poky-linux-gnueabi
--prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr
--exec_prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr


--bindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi


--sbindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi


--libexecdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi
--datadir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share
--sysconfdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/etc
--sharedstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/com
--localstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/var


--libdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/lib/armv5te-poky-linux-gnueabi
--includedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include
--oldincludedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include
--infodir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/info
--mandir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/man
--disable-silent-rules --disable-dependency-tracking


--with-libtool-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--with-gnu-ld --enable-shared --enable-languages=c,c++
--enable-threads=posix --disable-multilib --enable-c99
--enable-long-long
--enable-symvers=gnu --enable-libstdcxx-pch
--program-prefix=arm-poky-linux-gnueabi- --without-local-prefix
--enable-target-optspace --enable-lto --enable-libssp
--disable-bootstrap
--disable-libgomp --disable-libmudflap --with-system-zlib
--with-linker-hash-style=gnu --with-ppl=no --with-cloog=no
--enable-checking=release --enable-cheaders=c_global --with-float=soft


--with-gxx-include-dir=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi/usr/include/c++


--with-build-time-tools=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/x86_64-linux/usr/arm-poky-linux-gnueabi/bin
--with-sysroot=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi


--with-build-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/qemuarm
--disable-libunwind-exceptions --disable-libssp --disable-libgomp
--disable-libmudflap


--with-mpfr=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux


--with-mpc=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--enable-nls

Thread model: posix

gcc version 4.7.2 (GCC)

configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -V >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option
'-V'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -qversion >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option
'-qversion'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3197: checking whether the C compiler works

configure:3219: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -g -O0
--sysroot=/opt/poky/1.3 --sysroot=/opt/poky/1.3
--sysroot=/opt/poky/1.3
conftest.c >&5



/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crt1.o: No such file or directory



/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crti.o: No such file or directory



/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtbegin.o: No such file or directory



/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc



/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc_s



/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lc



/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc



/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc_s



/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtend.o: No such file or directory



/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtn.o: No such file or directory

collect2: error: ld returned 1 exit status

configure:3223: $? = 1

configure:3261: result: no

configure: failed program was:

| /* confdefs.h */

| #define PACKAGE_NAME "teste"

| #define PACKAGE_TARNAME "teste"

| #define PACKAGE_VERSION "0.1.0"

| #define PACKAGE_STRING "teste 0.1.0"

| #define PACKAGE_BUGREPORT ""

| #define PACKAGE_URL ""

| #define PACKAGE "teste"

| #define VERSION "0.1.0"

| /* end confdefs.h. */

|

| int

| main ()

| {

|

| ;

| return 0;

| }

configure:3266: error: in `/home/prjs/compsis0001/workspace/teste':

configure:3268: error: C compiler cannot create executables

See `config.log' for more details



## ---------------- ##

## Cache variables. ##

## ---------------- ##

...

...

...

## ----------------- ##

## Output variables. ##

## ----------------- ##

...

...

...

/* confdefs.h */

#define PACKAGE_NAME "teste"

#define PACKAGE_TARNAME "teste"

#define PACKAGE_VERSION "0.1.0"

#define PACKAGE_STRING "teste 0.1.0"

#define PACKAGE_BUGREPORT ""

#define PACKAGE_URL ""

#define PACKAGE "teste"

#define VERSION "0.1.0"



configure: exit 77





Some One can Help me?



Thanks



--
Raul Rosetto Muñoz


_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto
Don't you need to develop against a -sdk image?
Try building a debug image, extract the file-system and point to that
when
developing.

regards,
Björn


--
Björn Arnelid | Software Engineer
M: +46-70-971 4459 | björn.arnelid@...
XDIN AB | Knarrarnäsgatan 7 | SE-164 40 Kista | xdin.com

Xdin develop and deliver expertise through committed engineering and IT
consultants.


_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto


--
Björn Arnelid | Software Engineer
M: +46-70-971 4459 | björn.arnelid@...
XDIN AB | Knarrarnäsgatan 7 | SE-164 40 Kista | xdin.com

Xdin develop and deliver expertise through committed engineering and IT
consultants.
--
Flavio de Castro Alves Filho

flavio.alves@...
www.linuxembarcado.com
Twitter: http://twitter.com/#!/fraviofii
LinkedIn profile: www.linkedin.com/in/flaviocastroalves


Re: Eclipse Plugin

Björn Arnelid <bjorn.arnelid@...>
 

Yeah, sounds like problems with your installation.
remove eclipse and try to set it up again - or try to manually copy autotools into your plugin folder.

regards,
Björn

2013-01-18 14:10, Flavio Castro Alves Filho skrev:

The problem right now is not regarding compilation issues, but Eclipse
plugin is not launching the compilation correctly.

I tried to install Eclipse Indigo, with the instructions from Yocto dev manual.

I installed Eclipse, its components and when I try to install the
Yocto component, I have the following error:

Cannot complete the install because one or more required items could
not be found.
Software being installed: Yocto Plugin for Eclipse
1.2.0.201210102158 (org.yocto.sdk.feature.group 1.2.0.201210102158)
Missing requirement: Yocto Plugin for Eclipse 1.2.0.201210102158
(org.yocto.sdk.feature.group 1.2.0.201210102158) requires
'org.eclipse.cdt.autotools.core 1.1.0' but it could not be found

I searched for this component in my eclipse/plugins directory and it
is not available.

But ... when I see the installed components in Eclipse (from the UI),
it indicates that autotools for CDT is installed.


2013/1/18 Björn Arnelid <bjorn.arnelid@...>:
2013-01-18 13:24, Flavio Castro Alves Filho skrev:

Hello,

I'm facing similar issue (in fact, Raul and I are working together on
this deploy).

I'll describe the steps that we followed. Our system is Ubuntu 12.04
LTS and our Eclipse version is Juno.

1) We build core-image-minimal using poky 1.3 (danny), meta-ti,
meta-openembedded/meta-oe

2) We build toolchain from the build system, using meta-ide-support

3) We downloaded Eclipse classic from Eclipse's website

4) We installed the Eclipse's components, according to Yocto dev
manual instructions

5) We installed Yocto ADT plugin from the repository (version 1.3)

We extracted the generated root filesystem in another directory, in
order to properly configure the Eclipse Yocto plugin.

For now, installation worked fine. The problem occurs when we try to
build the hello world application.

We followed the steps from the Yocto dev manual.

Before starting the build, I lanched the reconfigure option. After,
when started to build, the error message indicates 'no make target'.

Looking at the files, I could see that autogen.sh was executed, but
the configure script don't. I believe that there is some isse where
the IDE is not executing the configure script.

Do you have any clue about how to solve this issue?

Best regards,

Flavio


2013/1/17 Zhang, Jessica <jessica.zhang@...>:
Hi Raul,



Before we can help you debug your issue, can you provide more info
regarding
to:



1. How did you setup your cross toolchain? ADT installer or
toolchain
tarball (your build if so, how did you build it. If not, which one did
you
download?)

2. And also, please provide more info what’s your toolchain setup
in
Eclipse, specifically the Yocto Project ADT preference config under
Window?

Thanks,

Jessica



From: yocto-bounces@...
[mailto:yocto-bounces@...]
On Behalf Of Raul Rosetto Munoz
Sent: Thursday, January 17, 2013 4:10 AM
To: yocto@...
Subject: [yocto] Eclipse Plugin



Hello All,

I followed the ADT manual to create a eclipse environment.



After create a default Hello World Yocto project I get some compile
errors.



At file config.log I saw some errors lines:





configure:2861: checking for arm-poky-linux-gnueabi-gcc

configure:2888: result: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm

configure:3157: checking for C compiler version

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm --version >&5

arm-poky-linux-gnueabi-gcc (GCC) 4.7.2

Copyright (C) 2012 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is
NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.



configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -v >&5

Using built-in specs.

COLLECT_GCC=arm-poky-linux-gnueabi-gcc


COLLECT_LTO_WRAPPER=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/lto-wrapper

Target: arm-poky-linux-gnueabi

Configured with:

/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/work-shared/gcc-4.7.2-r13/gcc-4.7.2/configure
--build=x86_64-linux --host=i686-pokysdk-linux
--target=arm-poky-linux-gnueabi
--prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr
--exec_prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr

--bindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi

--sbindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi

--libexecdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi
--datadir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share
--sysconfdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/etc
--sharedstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/com
--localstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/var

--libdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/lib/armv5te-poky-linux-gnueabi
--includedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include
--oldincludedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include
--infodir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/info
--mandir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/man
--disable-silent-rules --disable-dependency-tracking

--with-libtool-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--with-gnu-ld --enable-shared --enable-languages=c,c++
--enable-threads=posix --disable-multilib --enable-c99 --enable-long-long
--enable-symvers=gnu --enable-libstdcxx-pch
--program-prefix=arm-poky-linux-gnueabi- --without-local-prefix
--enable-target-optspace --enable-lto --enable-libssp --disable-bootstrap
--disable-libgomp --disable-libmudflap --with-system-zlib
--with-linker-hash-style=gnu --with-ppl=no --with-cloog=no
--enable-checking=release --enable-cheaders=c_global --with-float=soft

--with-gxx-include-dir=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi/usr/include/c++

--with-build-time-tools=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/x86_64-linux/usr/arm-poky-linux-gnueabi/bin
--with-sysroot=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi

--with-build-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/qemuarm
--disable-libunwind-exceptions --disable-libssp --disable-libgomp
--disable-libmudflap

--with-mpfr=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux

--with-mpc=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--enable-nls

Thread model: posix

gcc version 4.7.2 (GCC)

configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -V >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option '-V'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -qversion >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option
'-qversion'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3197: checking whether the C compiler works

configure:3219: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -g -O0
--sysroot=/opt/poky/1.3 --sysroot=/opt/poky/1.3 --sysroot=/opt/poky/1.3
conftest.c >&5


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crt1.o: No such file or directory


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crti.o: No such file or directory


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtbegin.o: No such file or directory


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc_s


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lc


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc_s


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtend.o: No such file or directory


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtn.o: No such file or directory

collect2: error: ld returned 1 exit status

configure:3223: $? = 1

configure:3261: result: no

configure: failed program was:

| /* confdefs.h */

| #define PACKAGE_NAME "teste"

| #define PACKAGE_TARNAME "teste"

| #define PACKAGE_VERSION "0.1.0"

| #define PACKAGE_STRING "teste 0.1.0"

| #define PACKAGE_BUGREPORT ""

| #define PACKAGE_URL ""

| #define PACKAGE "teste"

| #define VERSION "0.1.0"

| /* end confdefs.h. */

|

| int

| main ()

| {

|

| ;

| return 0;

| }

configure:3266: error: in `/home/prjs/compsis0001/workspace/teste':

configure:3268: error: C compiler cannot create executables

See `config.log' for more details



## ---------------- ##

## Cache variables. ##

## ---------------- ##

...

...

...

## ----------------- ##

## Output variables. ##

## ----------------- ##

...

...

...

/* confdefs.h */

#define PACKAGE_NAME "teste"

#define PACKAGE_TARNAME "teste"

#define PACKAGE_VERSION "0.1.0"

#define PACKAGE_STRING "teste 0.1.0"

#define PACKAGE_BUGREPORT ""

#define PACKAGE_URL ""

#define PACKAGE "teste"

#define VERSION "0.1.0"



configure: exit 77





Some One can Help me?



Thanks



--
Raul Rosetto Muñoz


_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto
Don't you need to develop against a -sdk image?
Try building a debug image, extract the file-system and point to that when
developing.

regards,
Björn


--
Björn Arnelid | Software Engineer
M: +46-70-971 4459 | björn.arnelid@...
XDIN AB | Knarrarnäsgatan 7 | SE-164 40 Kista | xdin.com

Xdin develop and deliver expertise through committed engineering and IT
consultants.


_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto
--
Björn Arnelid | Software Engineer
M: +46-70-971 4459 | björn.arnelid@...
XDIN AB | Knarrarnäsgatan 7 | SE-164 40 Kista | xdin.com

Xdin develop and deliver expertise through committed engineering and IT consultants.


Re: Eclipse Plugin

Flavio Castro Alves Filho <flavio.alves@...>
 

The problem right now is not regarding compilation issues, but Eclipse
plugin is not launching the compilation correctly.

I tried to install Eclipse Indigo, with the instructions from Yocto dev manual.

I installed Eclipse, its components and when I try to install the
Yocto component, I have the following error:

Cannot complete the install because one or more required items could
not be found.
Software being installed: Yocto Plugin for Eclipse
1.2.0.201210102158 (org.yocto.sdk.feature.group 1.2.0.201210102158)
Missing requirement: Yocto Plugin for Eclipse 1.2.0.201210102158
(org.yocto.sdk.feature.group 1.2.0.201210102158) requires
'org.eclipse.cdt.autotools.core 1.1.0' but it could not be found

I searched for this component in my eclipse/plugins directory and it
is not available.

But ... when I see the installed components in Eclipse (from the UI),
it indicates that autotools for CDT is installed.


2013/1/18 Björn Arnelid <bjorn.arnelid@...>:

2013-01-18 13:24, Flavio Castro Alves Filho skrev:

Hello,

I'm facing similar issue (in fact, Raul and I are working together on
this deploy).

I'll describe the steps that we followed. Our system is Ubuntu 12.04
LTS and our Eclipse version is Juno.

1) We build core-image-minimal using poky 1.3 (danny), meta-ti,
meta-openembedded/meta-oe

2) We build toolchain from the build system, using meta-ide-support

3) We downloaded Eclipse classic from Eclipse's website

4) We installed the Eclipse's components, according to Yocto dev
manual instructions

5) We installed Yocto ADT plugin from the repository (version 1.3)

We extracted the generated root filesystem in another directory, in
order to properly configure the Eclipse Yocto plugin.

For now, installation worked fine. The problem occurs when we try to
build the hello world application.

We followed the steps from the Yocto dev manual.

Before starting the build, I lanched the reconfigure option. After,
when started to build, the error message indicates 'no make target'.

Looking at the files, I could see that autogen.sh was executed, but
the configure script don't. I believe that there is some isse where
the IDE is not executing the configure script.

Do you have any clue about how to solve this issue?

Best regards,

Flavio


2013/1/17 Zhang, Jessica <jessica.zhang@...>:

Hi Raul,



Before we can help you debug your issue, can you provide more info
regarding
to:



1. How did you setup your cross toolchain? ADT installer or
toolchain
tarball (your build if so, how did you build it. If not, which one did
you
download?)

2. And also, please provide more info what’s your toolchain setup
in
Eclipse, specifically the Yocto Project ADT preference config under
Window?

Thanks,

Jessica



From: yocto-bounces@...
[mailto:yocto-bounces@...]
On Behalf Of Raul Rosetto Munoz
Sent: Thursday, January 17, 2013 4:10 AM
To: yocto@...
Subject: [yocto] Eclipse Plugin



Hello All,

I followed the ADT manual to create a eclipse environment.



After create a default Hello World Yocto project I get some compile
errors.



At file config.log I saw some errors lines:





configure:2861: checking for arm-poky-linux-gnueabi-gcc

configure:2888: result: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm

configure:3157: checking for C compiler version

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm --version >&5

arm-poky-linux-gnueabi-gcc (GCC) 4.7.2

Copyright (C) 2012 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is
NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.



configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -v >&5

Using built-in specs.

COLLECT_GCC=arm-poky-linux-gnueabi-gcc


COLLECT_LTO_WRAPPER=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/lto-wrapper

Target: arm-poky-linux-gnueabi

Configured with:

/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/work-shared/gcc-4.7.2-r13/gcc-4.7.2/configure
--build=x86_64-linux --host=i686-pokysdk-linux
--target=arm-poky-linux-gnueabi
--prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr
--exec_prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr

--bindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi

--sbindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi

--libexecdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi
--datadir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share
--sysconfdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/etc
--sharedstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/com
--localstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/var

--libdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/lib/armv5te-poky-linux-gnueabi
--includedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include
--oldincludedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include
--infodir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/info
--mandir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/man
--disable-silent-rules --disable-dependency-tracking

--with-libtool-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--with-gnu-ld --enable-shared --enable-languages=c,c++
--enable-threads=posix --disable-multilib --enable-c99 --enable-long-long
--enable-symvers=gnu --enable-libstdcxx-pch
--program-prefix=arm-poky-linux-gnueabi- --without-local-prefix
--enable-target-optspace --enable-lto --enable-libssp --disable-bootstrap
--disable-libgomp --disable-libmudflap --with-system-zlib
--with-linker-hash-style=gnu --with-ppl=no --with-cloog=no
--enable-checking=release --enable-cheaders=c_global --with-float=soft

--with-gxx-include-dir=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi/usr/include/c++

--with-build-time-tools=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/x86_64-linux/usr/arm-poky-linux-gnueabi/bin
--with-sysroot=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi

--with-build-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/qemuarm
--disable-libunwind-exceptions --disable-libssp --disable-libgomp
--disable-libmudflap

--with-mpfr=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux

--with-mpc=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--enable-nls

Thread model: posix

gcc version 4.7.2 (GCC)

configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -V >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option '-V'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -qversion >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option
'-qversion'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3197: checking whether the C compiler works

configure:3219: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -g -O0
--sysroot=/opt/poky/1.3 --sysroot=/opt/poky/1.3 --sysroot=/opt/poky/1.3
conftest.c >&5


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crt1.o: No such file or directory


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crti.o: No such file or directory


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtbegin.o: No such file or directory


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc_s


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lc


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc_s


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtend.o: No such file or directory


/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtn.o: No such file or directory

collect2: error: ld returned 1 exit status

configure:3223: $? = 1

configure:3261: result: no

configure: failed program was:

| /* confdefs.h */

| #define PACKAGE_NAME "teste"

| #define PACKAGE_TARNAME "teste"

| #define PACKAGE_VERSION "0.1.0"

| #define PACKAGE_STRING "teste 0.1.0"

| #define PACKAGE_BUGREPORT ""

| #define PACKAGE_URL ""

| #define PACKAGE "teste"

| #define VERSION "0.1.0"

| /* end confdefs.h. */

|

| int

| main ()

| {

|

| ;

| return 0;

| }

configure:3266: error: in `/home/prjs/compsis0001/workspace/teste':

configure:3268: error: C compiler cannot create executables

See `config.log' for more details



## ---------------- ##

## Cache variables. ##

## ---------------- ##

...

...

...

## ----------------- ##

## Output variables. ##

## ----------------- ##

...

...

...

/* confdefs.h */

#define PACKAGE_NAME "teste"

#define PACKAGE_TARNAME "teste"

#define PACKAGE_VERSION "0.1.0"

#define PACKAGE_STRING "teste 0.1.0"

#define PACKAGE_BUGREPORT ""

#define PACKAGE_URL ""

#define PACKAGE "teste"

#define VERSION "0.1.0"



configure: exit 77





Some One can Help me?



Thanks



--
Raul Rosetto Muñoz


_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto
Don't you need to develop against a -sdk image?
Try building a debug image, extract the file-system and point to that when
developing.

regards,
Björn


--
Björn Arnelid | Software Engineer
M: +46-70-971 4459 | björn.arnelid@...
XDIN AB | Knarrarnäsgatan 7 | SE-164 40 Kista | xdin.com

Xdin develop and deliver expertise through committed engineering and IT
consultants.


_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto
--
Flavio de Castro Alves Filho

flavio.alves@...
www.linuxembarcado.com
Twitter: http://twitter.com/#!/fraviofii
LinkedIn profile: www.linkedin.com/in/flaviocastroalves


Re: Eclipse Plugin

Björn Arnelid <bjorn.arnelid@...>
 

2013-01-18 13:24, Flavio Castro Alves Filho skrev:
Hello,

I'm facing similar issue (in fact, Raul and I are working together on
this deploy).

I'll describe the steps that we followed. Our system is Ubuntu 12.04
LTS and our Eclipse version is Juno.

1) We build core-image-minimal using poky 1.3 (danny), meta-ti,
meta-openembedded/meta-oe

2) We build toolchain from the build system, using meta-ide-support

3) We downloaded Eclipse classic from Eclipse's website

4) We installed the Eclipse's components, according to Yocto dev
manual instructions

5) We installed Yocto ADT plugin from the repository (version 1.3)

We extracted the generated root filesystem in another directory, in
order to properly configure the Eclipse Yocto plugin.

For now, installation worked fine. The problem occurs when we try to
build the hello world application.

We followed the steps from the Yocto dev manual.

Before starting the build, I lanched the reconfigure option. After,
when started to build, the error message indicates 'no make target'.

Looking at the files, I could see that autogen.sh was executed, but
the configure script don't. I believe that there is some isse where
the IDE is not executing the configure script.

Do you have any clue about how to solve this issue?

Best regards,

Flavio


2013/1/17 Zhang, Jessica <jessica.zhang@...>:
Hi Raul,



Before we can help you debug your issue, can you provide more info regarding
to:



1. How did you setup your cross toolchain? ADT installer or toolchain
tarball (your build if so, how did you build it. If not, which one did you
download?)

2. And also, please provide more info what’s your toolchain setup in
Eclipse, specifically the Yocto Project ADT preference config under Window?

Thanks,

Jessica



From: yocto-bounces@... [mailto:yocto-bounces@...]
On Behalf Of Raul Rosetto Munoz
Sent: Thursday, January 17, 2013 4:10 AM
To: yocto@...
Subject: [yocto] Eclipse Plugin



Hello All,

I followed the ADT manual to create a eclipse environment.



After create a default Hello World Yocto project I get some compile errors.



At file config.log I saw some errors lines:





configure:2861: checking for arm-poky-linux-gnueabi-gcc

configure:2888: result: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm

configure:3157: checking for C compiler version

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm --version >&5

arm-poky-linux-gnueabi-gcc (GCC) 4.7.2

Copyright (C) 2012 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -v >&5

Using built-in specs.

COLLECT_GCC=arm-poky-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/lto-wrapper

Target: arm-poky-linux-gnueabi

Configured with:
/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/work-shared/gcc-4.7.2-r13/gcc-4.7.2/configure
--build=x86_64-linux --host=i686-pokysdk-linux
--target=arm-poky-linux-gnueabi
--prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr
--exec_prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr
--bindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi
--sbindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi
--libexecdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi
--datadir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share
--sysconfdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/etc
--sharedstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/com
--localstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/var
--libdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/lib/armv5te-poky-linux-gnueabi
--includedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include
--oldincludedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include
--infodir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/info
--mandir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/man
--disable-silent-rules --disable-dependency-tracking
--with-libtool-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--with-gnu-ld --enable-shared --enable-languages=c,c++
--enable-threads=posix --disable-multilib --enable-c99 --enable-long-long
--enable-symvers=gnu --enable-libstdcxx-pch
--program-prefix=arm-poky-linux-gnueabi- --without-local-prefix
--enable-target-optspace --enable-lto --enable-libssp --disable-bootstrap
--disable-libgomp --disable-libmudflap --with-system-zlib
--with-linker-hash-style=gnu --with-ppl=no --with-cloog=no
--enable-checking=release --enable-cheaders=c_global --with-float=soft
--with-gxx-include-dir=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi/usr/include/c++
--with-build-time-tools=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/x86_64-linux/usr/arm-poky-linux-gnueabi/bin
--with-sysroot=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi
--with-build-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/qemuarm
--disable-libunwind-exceptions --disable-libssp --disable-libgomp
--disable-libmudflap
--with-mpfr=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--with-mpc=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--enable-nls

Thread model: posix

gcc version 4.7.2 (GCC)

configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -V >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option '-V'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -qversion >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option
'-qversion'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3197: checking whether the C compiler works

configure:3219: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -g -O0
--sysroot=/opt/poky/1.3 --sysroot=/opt/poky/1.3 --sysroot=/opt/poky/1.3
conftest.c >&5

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crt1.o: No such file or directory

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crti.o: No such file or directory

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtbegin.o: No such file or directory

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc_s

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lc

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc_s

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtend.o: No such file or directory

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtn.o: No such file or directory

collect2: error: ld returned 1 exit status

configure:3223: $? = 1

configure:3261: result: no

configure: failed program was:

| /* confdefs.h */

| #define PACKAGE_NAME "teste"

| #define PACKAGE_TARNAME "teste"

| #define PACKAGE_VERSION "0.1.0"

| #define PACKAGE_STRING "teste 0.1.0"

| #define PACKAGE_BUGREPORT ""

| #define PACKAGE_URL ""

| #define PACKAGE "teste"

| #define VERSION "0.1.0"

| /* end confdefs.h. */

|

| int

| main ()

| {

|

| ;

| return 0;

| }

configure:3266: error: in `/home/prjs/compsis0001/workspace/teste':

configure:3268: error: C compiler cannot create executables

See `config.log' for more details



## ---------------- ##

## Cache variables. ##

## ---------------- ##

...

...

...

## ----------------- ##

## Output variables. ##

## ----------------- ##

...

...

...

/* confdefs.h */

#define PACKAGE_NAME "teste"

#define PACKAGE_TARNAME "teste"

#define PACKAGE_VERSION "0.1.0"

#define PACKAGE_STRING "teste 0.1.0"

#define PACKAGE_BUGREPORT ""

#define PACKAGE_URL ""

#define PACKAGE "teste"

#define VERSION "0.1.0"



configure: exit 77





Some One can Help me?



Thanks



--
Raul Rosetto Muñoz


_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto
Don't you need to develop against a -sdk image?
Try building a debug image, extract the file-system and point to that when developing.

regards,
Björn


--
Björn Arnelid | Software Engineer
M: +46-70-971 4459 | björn.arnelid@...
XDIN AB | Knarrarnäsgatan 7 | SE-164 40 Kista | xdin.com

Xdin develop and deliver expertise through committed engineering and IT consultants.


Re: Eclipse Plugin

Flavio Castro Alves Filho <flavio.alves@...>
 

Hello,

I'm facing similar issue (in fact, Raul and I are working together on
this deploy).

I'll describe the steps that we followed. Our system is Ubuntu 12.04
LTS and our Eclipse version is Juno.

1) We build core-image-minimal using poky 1.3 (danny), meta-ti,
meta-openembedded/meta-oe

2) We build toolchain from the build system, using meta-ide-support

3) We downloaded Eclipse classic from Eclipse's website

4) We installed the Eclipse's components, according to Yocto dev
manual instructions

5) We installed Yocto ADT plugin from the repository (version 1.3)

We extracted the generated root filesystem in another directory, in
order to properly configure the Eclipse Yocto plugin.

For now, installation worked fine. The problem occurs when we try to
build the hello world application.

We followed the steps from the Yocto dev manual.

Before starting the build, I lanched the reconfigure option. After,
when started to build, the error message indicates 'no make target'.

Looking at the files, I could see that autogen.sh was executed, but
the configure script don't. I believe that there is some isse where
the IDE is not executing the configure script.

Do you have any clue about how to solve this issue?

Best regards,

Flavio


2013/1/17 Zhang, Jessica <jessica.zhang@...>:

Hi Raul,



Before we can help you debug your issue, can you provide more info regarding
to:



1. How did you setup your cross toolchain? ADT installer or toolchain
tarball (your build if so, how did you build it. If not, which one did you
download?)

2. And also, please provide more info what’s your toolchain setup in
Eclipse, specifically the Yocto Project ADT preference config under Window?

Thanks,

Jessica



From: yocto-bounces@... [mailto:yocto-bounces@...]
On Behalf Of Raul Rosetto Munoz
Sent: Thursday, January 17, 2013 4:10 AM
To: yocto@...
Subject: [yocto] Eclipse Plugin



Hello All,

I followed the ADT manual to create a eclipse environment.



After create a default Hello World Yocto project I get some compile errors.



At file config.log I saw some errors lines:





configure:2861: checking for arm-poky-linux-gnueabi-gcc

configure:2888: result: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm

configure:3157: checking for C compiler version

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm --version >&5

arm-poky-linux-gnueabi-gcc (GCC) 4.7.2

Copyright (C) 2012 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -v >&5

Using built-in specs.

COLLECT_GCC=arm-poky-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/lto-wrapper

Target: arm-poky-linux-gnueabi

Configured with:
/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/work-shared/gcc-4.7.2-r13/gcc-4.7.2/configure
--build=x86_64-linux --host=i686-pokysdk-linux
--target=arm-poky-linux-gnueabi
--prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr
--exec_prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr
--bindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi
--sbindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi
--libexecdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi
--datadir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share
--sysconfdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/etc
--sharedstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/com
--localstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/var
--libdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/lib/armv5te-poky-linux-gnueabi
--includedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include
--oldincludedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include
--infodir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/info
--mandir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/man
--disable-silent-rules --disable-dependency-tracking
--with-libtool-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--with-gnu-ld --enable-shared --enable-languages=c,c++
--enable-threads=posix --disable-multilib --enable-c99 --enable-long-long
--enable-symvers=gnu --enable-libstdcxx-pch
--program-prefix=arm-poky-linux-gnueabi- --without-local-prefix
--enable-target-optspace --enable-lto --enable-libssp --disable-bootstrap
--disable-libgomp --disable-libmudflap --with-system-zlib
--with-linker-hash-style=gnu --with-ppl=no --with-cloog=no
--enable-checking=release --enable-cheaders=c_global --with-float=soft
--with-gxx-include-dir=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi/usr/include/c++
--with-build-time-tools=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/x86_64-linux/usr/arm-poky-linux-gnueabi/bin
--with-sysroot=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi
--with-build-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/qemuarm
--disable-libunwind-exceptions --disable-libssp --disable-libgomp
--disable-libmudflap
--with-mpfr=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--with-mpc=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux
--enable-nls

Thread model: posix

gcc version 4.7.2 (GCC)

configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -V >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option '-V'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3166: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -qversion >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option
'-qversion'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3197: checking whether the C compiler works

configure:3219: arm-poky-linux-gnueabi-gcc -march=armv5te -marm
-mthumb-interwork -mtune=arm926ej-s
--sysroot=/home/prjs/compsis0001/philinux/arm -g -O0
--sysroot=/opt/poky/1.3 --sysroot=/opt/poky/1.3 --sysroot=/opt/poky/1.3
conftest.c >&5

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crt1.o: No such file or directory

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crti.o: No such file or directory

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtbegin.o: No such file or directory

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc_s

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lc

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find -lgcc_s

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtend.o: No such file or directory

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld:
cannot find crtn.o: No such file or directory

collect2: error: ld returned 1 exit status

configure:3223: $? = 1

configure:3261: result: no

configure: failed program was:

| /* confdefs.h */

| #define PACKAGE_NAME "teste"

| #define PACKAGE_TARNAME "teste"

| #define PACKAGE_VERSION "0.1.0"

| #define PACKAGE_STRING "teste 0.1.0"

| #define PACKAGE_BUGREPORT ""

| #define PACKAGE_URL ""

| #define PACKAGE "teste"

| #define VERSION "0.1.0"

| /* end confdefs.h. */

|

| int

| main ()

| {

|

| ;

| return 0;

| }

configure:3266: error: in `/home/prjs/compsis0001/workspace/teste':

configure:3268: error: C compiler cannot create executables

See `config.log' for more details



## ---------------- ##

## Cache variables. ##

## ---------------- ##

...

...

...

## ----------------- ##

## Output variables. ##

## ----------------- ##

...

...

...

/* confdefs.h */

#define PACKAGE_NAME "teste"

#define PACKAGE_TARNAME "teste"

#define PACKAGE_VERSION "0.1.0"

#define PACKAGE_STRING "teste 0.1.0"

#define PACKAGE_BUGREPORT ""

#define PACKAGE_URL ""

#define PACKAGE "teste"

#define VERSION "0.1.0"



configure: exit 77





Some One can Help me?



Thanks



--
Raul Rosetto Muñoz


_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto
--
Flavio de Castro Alves Filho

flavio.alves@...
www.linuxembarcado.com
Twitter: http://twitter.com/#!/fraviofii
LinkedIn profile: www.linkedin.com/in/flaviocastroalves


Re: Eclipse Plugin

Zhang, Jessica
 

Hi Raul,

 

Before we can help you debug your issue, can you provide more info regarding to:

 

1.       How did you setup your cross toolchain? ADT installer or toolchain tarball (your build if so, how did you build it.  If not, which one did you download?)

2.       And also, please provide more info what’s your toolchain setup in Eclipse, specifically the Yocto Project ADT preference config under Window?

Thanks,

Jessica

 

From: yocto-bounces@... [mailto:yocto-bounces@...] On Behalf Of Raul Rosetto Munoz
Sent: Thursday, January 17, 2013 4:10 AM
To: yocto@...
Subject: [yocto] Eclipse Plugin

 

Hello All,

I followed the ADT manual to create a eclipse environment.

 

After create a default Hello World Yocto project I get some compile errors.

 

At file config.log I saw some errors lines:

 

 

configure:2861: checking for arm-poky-linux-gnueabi-gcc

configure:2888: result: arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/prjs/compsis0001/philinux/arm

configure:3157: checking for C compiler version

configure:3166: arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/prjs/compsis0001/philinux/arm --version >&5

arm-poky-linux-gnueabi-gcc (GCC) 4.7.2

Copyright (C) 2012 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 

configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/prjs/compsis0001/philinux/arm -v >&5

Using built-in specs.

COLLECT_GCC=arm-poky-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/lto-wrapper

Target: arm-poky-linux-gnueabi

Configured with: /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/work-shared/gcc-4.7.2-r13/gcc-4.7.2/configure --build=x86_64-linux --host=i686-pokysdk-linux --target=arm-poky-linux-gnueabi --prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr --exec_prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr --bindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi --sbindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi --libexecdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi --datadir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share --sysconfdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/etc --sharedstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/com --localstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/var --libdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/lib/armv5te-poky-linux-gnueabi --includedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include --oldincludedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include --infodir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/info --mandir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux --with-gnu-ld --enable-shared --enable-languages=c,c++ --enable-threads=posix --disable-multilib --enable-c99 --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch --program-prefix=arm-poky-linux-gnueabi- --without-local-prefix --enable-target-optspace --enable-lto --enable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap --with-system-zlib --with-linker-hash-style=gnu --with-ppl=no --with-cloog=no --enable-checking=release --enable-cheaders=c_global --with-float=soft --with-gxx-include-dir=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi/usr/include/c++ --with-build-time-tools=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/x86_64-linux/usr/arm-poky-linux-gnueabi/bin --with-sysroot=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi --with-build-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/qemuarm --disable-libunwind-exceptions --disable-libssp --disable-libgomp --disable-libmudflap --with-mpfr=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux --with-mpc=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux --enable-nls

Thread model: posix

gcc version 4.7.2 (GCC) 

configure:3177: $? = 0

configure:3166: arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/prjs/compsis0001/philinux/arm -V >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option '-V'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3166: arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/prjs/compsis0001/philinux/arm -qversion >&5

arm-poky-linux-gnueabi-gcc: error: unrecognized command line option '-qversion'

arm-poky-linux-gnueabi-gcc: fatal error: no input files

compilation terminated.

configure:3177: $? = 1

configure:3197: checking whether the C compiler works

configure:3219: arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/prjs/compsis0001/philinux/arm  -g -O0  --sysroot=/opt/poky/1.3  --sysroot=/opt/poky/1.3  --sysroot=/opt/poky/1.3 conftest.c  >&5

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find crt1.o: No such file or directory

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find crti.o: No such file or directory

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find crtbegin.o: No such file or directory

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find -lgcc

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find -lgcc_s

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find -lc

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find -lgcc

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find -lgcc_s

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find crtend.o: No such file or directory

/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find crtn.o: No such file or directory

collect2: error: ld returned 1 exit status

configure:3223: $? = 1

configure:3261: result: no

configure: failed program was:

| /* confdefs.h */

| #define PACKAGE_NAME "teste"

| #define PACKAGE_TARNAME "teste"

| #define PACKAGE_VERSION "0.1.0"

| #define PACKAGE_STRING "teste 0.1.0"

| #define PACKAGE_BUGREPORT ""

| #define PACKAGE_URL ""

| #define PACKAGE "teste"

| #define VERSION "0.1.0"

| /* end confdefs.h.  */

| int

| main ()

| {

|   ;

|   return 0;

| }

configure:3266: error: in `/home/prjs/compsis0001/workspace/teste':

configure:3268: error: C compiler cannot create executables

See `config.log' for more details

 

## ---------------- ##

## Cache variables. ##

## ---------------- ##

...

...

...

## ----------------- ##

## Output variables. ##

## ----------------- ##

...

...

...

/* confdefs.h */

#define PACKAGE_NAME "teste"

#define PACKAGE_TARNAME "teste"

#define PACKAGE_VERSION "0.1.0"

#define PACKAGE_STRING "teste 0.1.0"

#define PACKAGE_BUGREPORT ""

#define PACKAGE_URL ""

#define PACKAGE "teste"

#define VERSION "0.1.0"

 

configure: exit 77

 

 

Some One can Help me?

 

Thanks 

 

--
Raul Rosetto Muñoz


[PATCH v2] [local patch for org.eclipse.rse.services] Fix race conditions for reading output from local processes

Ioana Grigoropol <ioanax.grigoropol@...>
 

When creating a new LocalHostShell a new LocalHostThread is created, along side with two LocalShellOutputReaders (output and error).
Both readers will receive a reference to one of the localhostThread's readers.
When the thread finishes its task, the reader is closed. If any of the readers is "late" trying to read data, will through an error similar to "Ensure open stream" or "Pipe closed".
Any reading done on the reader should be done atomically, such that no reader should be caught off-guard when the stream closes.
Also, the readers should reference the thread's reader, otherwise nulling this reference will be useless.

Signed-off-by: Ioana Grigoropol <ioanax.grigoropol@...>
---
.../dstore/shells/DStoreShellOutputReader.java | 52 ++++++++++++--------
.../services/local/shells/LocalHostShell.java | 22 ++++-----
.../local/shells/LocalShellOutputReader.java | 52 ++++++++++++++------
.../services/local/shells/LocalShellThread.java | 24 +++++++--
.../.settings/.api_filters | 38 +++++++++++---
.../shells/TerminalServiceShellOutputReader.java | 25 +++++++---
.../services/shells/IHostShellOutputReader.java | 21 ++++++--
7 files changed, 162 insertions(+), 72 deletions(-)

diff --git a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/shells/DStoreShellOutputReader.java b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/shells/DStoreShellOutputReader.java
index 84c9bb9..3f3e476 100644
--- a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/shells/DStoreShellOutputReader.java
+++ b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/shells/DStoreShellOutputReader.java
@@ -7,16 +7,19 @@
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
+ * component that contains this file: David McKnight, Kushal Munir,
+ * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
+ *
* Contributors:
* David McKnight (IBM) - [286671] return null when status is null
*******************************************************************************/

package org.eclipse.rse.internal.services.dstore.shells;

+import java.io.BufferedReader;
+import java.util.concurrent.locks.Lock;
+
import org.eclipse.dstore.core.model.DataElement;
import org.eclipse.dstore.extra.DomainEvent;
import org.eclipse.dstore.extra.IDomainListener;
@@ -41,13 +44,13 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
_status.getDataStore().getDomainNotifier().addDomainListener(this);
}
}
-
+
public String getWorkingDirectory()
{
String pwd = _status.getSource();
return pwd;
}
-
+
protected IHostOutput internalReadLine()
{
if (_status != null && _keepRunning)
@@ -57,9 +60,9 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
while (newSize > _statusOffset)
{
DataElement line = _status.get(_statusOffset++);
-
-
-
+
+
+
String type = line.getType();
boolean isError = type.equals("error") || type.equals("stderr"); //$NON-NLS-1$ //$NON-NLS-2$
if (_isErrorReader && isError)
@@ -71,13 +74,13 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
return new DStoreHostOutput(line);
}
}
-
-
+
+
try
{
if (_hostShell.isActive())
{
- waitForResponse();
+ waitForResponse();
return internalReadLine();
}
else
@@ -86,7 +89,7 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
}
}
catch (Exception e)
- {
+ {
e.printStackTrace();
}
}
@@ -128,7 +131,7 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
// for now, this is pulled via internalReadLine()
notifyResponse();
}
-
+
}

/**
@@ -138,16 +141,16 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
{
try
{
- wait();
+ wait();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
-
+
/**
- * Causes all threads waiting for this
+ * Causes all threads waiting for this
* to wake up.
*/
public synchronized void notifyResponse()
@@ -161,13 +164,22 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
e.printStackTrace();
}
}
-
+
public void finish()
{
super.finish();
notifyResponse();
}
-
+
+ public BufferedReader getReader() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Lock getReaderLock() {
+ return null;
+ }
+
/*
private void handleInput()
{
@@ -177,7 +189,7 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
int currentSize = _linesOfOutput.size();

for (int loop = currentSize; loop < totalSize; loop++)
- {
+ {
DataElement result = (DataElement) results.get(loop);
addLine(result.getName());
}
@@ -185,4 +197,4 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
*/

}
-
+
diff --git a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalHostShell.java b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalHostShell.java
index 250a904..d272989 100644
--- a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalHostShell.java
+++ b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalHostShell.java
@@ -7,10 +7,10 @@
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
+ * component that contains this file: David McKnight, Kushal Munir,
+ * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
+ *
* Contributors:
* Martin Oberhuber (Wind River) - [161838] local shell reports isActive() wrong
*******************************************************************************/
@@ -18,8 +18,6 @@
package org.eclipse.rse.internal.services.local.shells;

import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.rse.internal.services.local.shells.LocalShellOutputReader;
-import org.eclipse.rse.internal.services.local.shells.LocalShellThread;
import org.eclipse.rse.services.shells.AbstractHostShell;
import org.eclipse.rse.services.shells.IHostShell;
import org.eclipse.rse.services.shells.IHostShellOutputReader;
@@ -33,19 +31,19 @@ public class LocalHostShell extends AbstractHostShell implements IHostShell
private LocalShellThread _shellThread;
private LocalShellOutputReader _stdoutHandler;
private LocalShellOutputReader _stderrHandler;
-
+
public LocalHostShell(String initialWorkingDirectory, String invocation, String encoding, String[] environment)
{
- _shellThread = new LocalShellThread(initialWorkingDirectory, invocation, encoding, environment);
- _stdoutHandler = new LocalShellOutputReader(this, _shellThread.getOutputStream(), false);
- _stderrHandler = new LocalShellOutputReader(this, _shellThread.getErrorStream(),true);
+ _shellThread = new LocalShellThread(initialWorkingDirectory, invocation, encoding, environment);
+ _stdoutHandler = new LocalShellOutputReader(this, _shellThread.getOutputStream(), _shellThread, false);
+ _stderrHandler = new LocalShellOutputReader(this, _shellThread.getErrorStream(), _shellThread, true);
}
-
+
protected void run(IProgressMonitor monitor)
{
_shellThread.start();
}
-
+

/* (non-Javadoc)
* @see org.eclipse.rse.services.shells.IHostShell#isActive()
@@ -68,7 +66,7 @@ public class LocalHostShell extends AbstractHostShell implements IHostShell
{
_shellThread.sendInput(command);
}
-
+
public IHostShellOutputReader getStandardOutputReader()
{
return _stdoutHandler;
diff --git a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellOutputReader.java b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellOutputReader.java
index ab8ff5c..ad3fa86 100644
--- a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellOutputReader.java
+++ b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellOutputReader.java
@@ -7,10 +7,10 @@
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
+ * component that contains this file: David McKnight, Kushal Munir,
+ * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
+ *
* Contributors:
* {Name} (company) - description of contribution.
*******************************************************************************/
@@ -19,6 +19,7 @@ package org.eclipse.rse.internal.services.local.shells;

import java.io.BufferedReader;
import java.io.IOException;
+import java.util.concurrent.locks.Lock;

import org.eclipse.rse.internal.services.local.Activator;
import org.eclipse.rse.services.shells.AbstractHostShellOutputReader;
@@ -33,14 +34,16 @@ import org.eclipse.rse.services.shells.SimpleHostOutput;
*/
public class LocalShellOutputReader extends AbstractHostShellOutputReader implements IHostShellOutputReader
{
- protected BufferedReader _reader;
+// protected volatile BufferedReader _reader;
+ private LocalShellThread _shellThread;
private String fPromptChars = ">$%#]"; //Characters we accept as the end of a prompt //$NON-NLS-1$;

-
- public LocalShellOutputReader(IHostShell hostShell, BufferedReader reader, boolean isErrorReader)
+
+ public LocalShellOutputReader(IHostShell hostShell, BufferedReader reader, LocalShellThread shellThread, boolean isErrorReader)
{
super(hostShell, isErrorReader);
- _reader = reader;
+// _reader = reader;
+ _shellThread = shellThread;
}
/*
protected Object internalReadLine()
@@ -137,9 +140,11 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
}
*/
protected IHostOutput internalReadLine() {
- if (_reader == null) {
+ getLock().lock();
+ if (getReader() == null) {
//Our workaround sets the stderr reader to null, so we never give any stderr output.
//TODO Check if ssh supports some method of having separate stdout and stderr streams
+ getLock().unlock();
return null;
}
StringBuffer theLine = new StringBuffer();
@@ -149,12 +154,14 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
boolean done = false;
while (!done && !isFinished()) {
try {
- ch = _reader.read();
+ ch = getReader().read();
switch (ch) {
case -1:
case 65535:
- if (theLine.length() == 0) // End of Reader
+ if (theLine.length() == 0) {// End of Reader
+ getLock().unlock();
return null;
+ }
done = true;
break;
case '\b': //backspace
@@ -185,13 +192,13 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
theLine.append(tch); // Any other character
} else if (ch == 27) {
// Escape: ignore next char too
- int nch = _reader.read();
+ int nch = getReader().read();
if (theDebugLine!=null) theDebugLine.append((char)nch);
if (nch == 91) {
//vt100 escape sequence: read until end-of-command (skip digits and semicolon)
//e.g. \x1b;13;m --> ignore the entire command, including the trailing m
do {
- nch = _reader.read();
+ nch = getReader().read();
if (theDebugLine!=null) theDebugLine.append((char)nch);
} while (Character.isDigit((char)nch) || nch == ';');
}
@@ -202,9 +209,9 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
// there are more characters
// in the Buffer...If not, then we assume it is waiting for
// input.
- if (!done && !_reader.ready()) {
- // wait to make sure -- max. 500 msec to wait for new chars
- // if we are not at a CRLF seems to be appropriate for the
+ if (!done && !getReader().ready()) {
+ // wait to make sure -- max. 500 msec to wait for new chars
+ // if we are not at a CRLF seems to be appropriate for the
// Pipes and Threads in ssh.
long waitIncrement = 500;
// Check if we think we are at a prompt
@@ -219,7 +226,7 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
Thread.sleep(waitIncrement);
} catch (InterruptedException e) {
}
- if (!_reader.ready()) {
+ if (!getReader().ready()) {
done = true;
}
}
@@ -228,6 +235,7 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
//our reader thread completely... the exception could just be
//temporary, and we should keep running!
Activator.getDefault().logException(e);
+ getLock().unlock();
return null;
}
}
@@ -235,8 +243,20 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
String debugLine = theDebugLine.toString();
debugLine.compareTo(""); //$NON-NLS-1$
}
+ getLock().unlock();
return new SimpleHostOutput(theLine.toString());
}
+ private Lock getLock() {
+ return _shellThread.getLock();
+ }
+ public BufferedReader getReader() {
+ if (isErrorReader())
+ return _shellThread.getErrorStream();
+ return _shellThread.getOutputStream();
+ }
+ public Lock getReaderLock() {
+ return _shellThread.getLock();
+ }


}
diff --git a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellThread.java b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellThread.java
index 0a33ad4..7407f2e 100644
--- a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellThread.java
+++ b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellThread.java
@@ -16,7 +16,7 @@
* Lothar Werzinger (Tradescape) - [161838] Support terminating local shells
* David McKnight (IBM) - [189387] Use specified encoding for shell output
* Martin Oberhuber (Wind River) - [161838] local shell reports isActive() wrong
- * Anna Dushistova (MontaVsita) - [249354] Incorrect behaviour of local shells subsystem runCommand method
+ * Anna Dushistova (MontaVsita) - [249354] Incorrect behaviour of local shells subsystem runCommand method
*******************************************************************************/

package org.eclipse.rse.internal.services.local.shells;
@@ -29,6 +29,8 @@ import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.URL;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;

import org.eclipse.core.runtime.FileLocator;

@@ -62,9 +64,10 @@ public class LocalShellThread extends Thread
private BufferedReader _stdInput;
private BufferedReader _stdError;

+ private Lock _lock;
/**
* constructor for local command shell monitor
- *
+ *
* @param cwd initial working directory
* @param invocation launch shell command
* @param encoding encoding to use or <code>null</code> for default
@@ -192,7 +195,7 @@ public class LocalShellThread extends Thread
args = new String[1];
args[0] = _invocation;
_theProcess = Runtime.getRuntime().exec(args[0], envVars, theDirectory);
- } else {
+ } else {
args = new String[3];
args[0] = theShell;
args[1] = "-c";//$NON-NLS-1$
@@ -260,6 +263,7 @@ public class LocalShellThread extends Thread

_stdError = new BufferedReader(new InputStreamReader(_theProcess.getErrorStream()));

+ _lock = new ReentrantLock();
}
catch (IOException e)
{
@@ -438,9 +442,14 @@ public class LocalShellThread extends Thread
_isDone = true;
try
{
+ _lock.lock();
_stdInput.close();
_stdError.close();

+ _stdInput = null;
+ _stdError = null;
+
+ _lock.unlock();
if (_theProcess != null)
{

@@ -511,4 +520,13 @@ public class LocalShellThread extends Thread
}


+ public Lock getLock() {
+ return _lock;
+ }
+
+
+ public void setLock(Lock _lock) {
+ this._lock = _lock;
+ }
+
}
diff --git a/rse/plugins/org.eclipse.rse.services/.settings/.api_filters b/rse/plugins/org.eclipse.rse.services/.settings/.api_filters
index 19273c2..b550320 100644
--- a/rse/plugins/org.eclipse.rse.services/.settings/.api_filters
+++ b/rse/plugins/org.eclipse.rse.services/.settings/.api_filters
@@ -1,5 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<component id="org.eclipse.rse.services" version="2">
+ <resource path="META-INF/MANIFEST.MF">
+ <filter id="923795461">
+ <message_arguments>
+ <message_argument value="3.2.200"/>
+ <message_argument value="3.2.200"/>
+ </message_arguments>
+ </filter>
+ </resource>
<resource path="META-INF/MANIFEST.MF" type="org.eclipse.rse.internal.services.terminals.AbstractTerminalService">
<filter id="305324134">
<message_arguments>
@@ -32,13 +40,13 @@
<filter id="305324134">
<message_arguments>
<message_argument value="org.eclipse.rse.internal.services.terminals.BaseShellDecorator"/>
- <message_argument value="org.eclipse.rse.services_3.1.1"/>
+ <message_argument value="org.eclipse.rse.services_3.1.0"/>
</message_arguments>
</filter>
<filter id="305324134">
<message_arguments>
<message_argument value="org.eclipse.rse.internal.services.terminals.BaseShellDecorator"/>
- <message_argument value="org.eclipse.rse.services_3.1.0"/>
+ <message_argument value="org.eclipse.rse.services_3.1.1"/>
</message_arguments>
</filter>
</resource>
@@ -46,13 +54,13 @@
<filter id="305324134">
<message_arguments>
<message_argument value="org.eclipse.rse.internal.services.terminals.IBaseShell"/>
- <message_argument value="org.eclipse.rse.services_3.1.1"/>
+ <message_argument value="org.eclipse.rse.services_3.1.0"/>
</message_arguments>
</filter>
<filter id="305324134">
<message_arguments>
<message_argument value="org.eclipse.rse.internal.services.terminals.IBaseShell"/>
- <message_argument value="org.eclipse.rse.services_3.1.0"/>
+ <message_argument value="org.eclipse.rse.services_3.1.1"/>
</message_arguments>
</filter>
</resource>
@@ -88,13 +96,13 @@
<filter id="305324134">
<message_arguments>
<message_argument value="org.eclipse.rse.internal.services.terminals.TerminalShellDecorator"/>
- <message_argument value="org.eclipse.rse.services_3.1.1"/>
+ <message_argument value="org.eclipse.rse.services_3.1.0"/>
</message_arguments>
</filter>
<filter id="305324134">
<message_arguments>
<message_argument value="org.eclipse.rse.internal.services.terminals.TerminalShellDecorator"/>
- <message_argument value="org.eclipse.rse.services_3.1.0"/>
+ <message_argument value="org.eclipse.rse.services_3.1.1"/>
</message_arguments>
</filter>
</resource>
@@ -109,13 +117,27 @@
<filter id="305365105">
<message_arguments>
<message_argument value="org.eclipse.rse.internal.services.terminals.ProcessBaseShell"/>
- <message_argument value="org.eclipse.rse.services_3.1.1"/>
+ <message_argument value="org.eclipse.rse.services_3.1.0"/>
</message_arguments>
</filter>
<filter id="305365105">
<message_arguments>
<message_argument value="org.eclipse.rse.internal.services.terminals.ProcessBaseShell"/>
- <message_argument value="org.eclipse.rse.services_3.1.0"/>
+ <message_argument value="org.eclipse.rse.services_3.1.1"/>
+ </message_arguments>
+ </filter>
+ </resource>
+ <resource path="src/org/eclipse/rse/services/shells/IHostShellOutputReader.java" type="org.eclipse.rse.services.shells.IHostShellOutputReader">
+ <filter id="403804204">
+ <message_arguments>
+ <message_argument value="org.eclipse.rse.services.shells.IHostShellOutputReader"/>
+ <message_argument value="getReader()"/>
+ </message_arguments>
+ </filter>
+ <filter id="403804204">
+ <message_arguments>
+ <message_argument value="org.eclipse.rse.services.shells.IHostShellOutputReader"/>
+ <message_argument value="getReaderLock()"/>
</message_arguments>
</filter>
</resource>
diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/shells/TerminalServiceShellOutputReader.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/shells/TerminalServiceShellOutputReader.java
index 16364e1..fef0032 100644
--- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/shells/TerminalServiceShellOutputReader.java
+++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/shells/TerminalServiceShellOutputReader.java
@@ -7,13 +7,13 @@
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
+ * component that contains this file: David McKnight, Kushal Munir,
+ * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
+ *
* Contributors:
- * Martin Oberhuber (Wind River) - Adapted from LocalShellOutputReader.
- * Martin Oberhuber (Wind River) - Added vt100 escape sequence ignoring.
+ * Martin Oberhuber (Wind River) - Adapted from LocalShellOutputReader.
+ * Martin Oberhuber (Wind River) - Added vt100 escape sequence ignoring.
* Anna Dushistova (MontaVista) - adapted from SshShellOutputReader
* Anna Dushistova (MontaVista) - [240523] [rseterminals] Provide a generic adapter factory that adapts any ITerminalService to an IShellService
* Rob Stryker (JBoss) - [335059] TerminalServiceShellOutputReader logs error when hostShell.exit() is called
@@ -23,6 +23,7 @@ package org.eclipse.rse.internal.services.shells;

import java.io.BufferedReader;
import java.io.IOException;
+import java.util.concurrent.locks.Lock;

import org.eclipse.rse.internal.services.Activator;
import org.eclipse.rse.services.shells.AbstractHostShellOutputReader;
@@ -125,8 +126,8 @@ public class TerminalServiceShellOutputReader extends
// in the Buffer...If not, then we assume it is waiting for
// input.
if (!done && !fReader.ready()) {
- // wait to make sure -- max. 500 msec to wait for new chars
- // if we are not at a CRLF seems to be appropriate for the
+ // wait to make sure -- max. 500 msec to wait for new chars
+ // if we are not at a CRLF seems to be appropriate for the
// Pipes and Threads in ssh.
long waitIncrement = 500;
// Check if we think we are at a prompt
@@ -163,7 +164,7 @@ public class TerminalServiceShellOutputReader extends
}
return new SimpleHostOutput(theLine.toString());
}
-
+
/**
* Stop the reader Thread, forcing internalReadLine() to return.
* Does not close the Stream.
@@ -174,4 +175,12 @@ public class TerminalServiceShellOutputReader extends
fReaderThread.interrupt();
}
}
+
+ public BufferedReader getReader() {
+ return fReader;
+ }
+
+ public Lock getReaderLock() {
+ return null;
+ }
}
diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/IHostShellOutputReader.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/IHostShellOutputReader.java
index 103c31f..f8d49b0 100644
--- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/IHostShellOutputReader.java
+++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/shells/IHostShellOutputReader.java
@@ -1,21 +1,24 @@
/********************************************************************************
* Copyright (c) 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and is
+ * of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
- *
+ *
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
+ * component that contains this file: David McKnight, Kushal Munir,
+ * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
+ *
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/

package org.eclipse.rse.services.shells;

+import java.io.BufferedReader;
+import java.util.concurrent.locks.Lock;
+
public interface IHostShellOutputReader extends IHostShellOutputNotifier
{
public IHostOutput readLine();
@@ -23,4 +26,12 @@ public interface IHostShellOutputReader extends IHostShellOutputNotifier
public void addOutputListener(IHostShellOutputListener listener);
public boolean isErrorReader();
public void finish();
+ /**
+ * @since 3.2
+ */
+ public BufferedReader getReader();
+ /**
+ * @since 3.2
+ */
+ public Lock getReaderLock();
}
\ No newline at end of file
--
1.7.9.5


Eclipse Plugin

Raul Mu?oz
 

Hello All,
I followed the ADT manual to create a eclipse environment.

After create a default Hello World Yocto project I get some compile errors.

At file config.log I saw some errors lines:


configure:2861: checking for arm-poky-linux-gnueabi-gcc
configure:2888: result: arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/prjs/compsis0001/philinux/arm
configure:3157: checking for C compiler version
configure:3166: arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/prjs/compsis0001/philinux/arm --version >&5
arm-poky-linux-gnueabi-gcc (GCC) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:3177: $? = 0
configure:3166: arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/prjs/compsis0001/philinux/arm -v >&5
Using built-in specs.
COLLECT_GCC=arm-poky-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/lto-wrapper
Target: arm-poky-linux-gnueabi
Configured with: /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/work-shared/gcc-4.7.2-r13/gcc-4.7.2/configure --build=x86_64-linux --host=i686-pokysdk-linux --target=arm-poky-linux-gnueabi --prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr --exec_prefix=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr --bindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi --sbindir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi --libexecdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi --datadir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share --sysconfdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/etc --sharedstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/com --localstatedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/var --libdir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/lib/armv5te-poky-linux-gnueabi --includedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include --oldincludedir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/include --infodir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/info --mandir=/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux --with-gnu-ld --enable-shared --enable-languages=c,c++ --enable-threads=posix --disable-multilib --enable-c99 --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch --program-prefix=arm-poky-linux-gnueabi- --without-local-prefix --enable-target-optspace --enable-lto --enable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap --with-system-zlib --with-linker-hash-style=gnu --with-ppl=no --with-cloog=no --enable-checking=release --enable-cheaders=c_global --with-float=soft --with-gxx-include-dir=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi/usr/include/c++ --with-build-time-tools=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/x86_64-linux/usr/arm-poky-linux-gnueabi/bin --with-sysroot=/opt/poky/1.3/sysroots/armv5te-poky-linux-gnueabi --with-build-sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/qemuarm --disable-libunwind-exceptions --disable-libssp --disable-libgomp --disable-libmudflap --with-mpfr=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux --with-mpc=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/sysroots/i686-nativesdk-pokysdk-linux --enable-nls
Thread model: posix
gcc version 4.7.2 (GCC) 
configure:3177: $? = 0
configure:3166: arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/prjs/compsis0001/philinux/arm -V >&5
arm-poky-linux-gnueabi-gcc: error: unrecognized command line option '-V'
arm-poky-linux-gnueabi-gcc: fatal error: no input files
compilation terminated.
configure:3177: $? = 1
configure:3166: arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/prjs/compsis0001/philinux/arm -qversion >&5
arm-poky-linux-gnueabi-gcc: error: unrecognized command line option '-qversion'
arm-poky-linux-gnueabi-gcc: fatal error: no input files
compilation terminated.
configure:3177: $? = 1
configure:3197: checking whether the C compiler works
configure:3219: arm-poky-linux-gnueabi-gcc  -march=armv5te  -marm -mthumb-interwork  -mtune=arm926ej-s --sysroot=/home/prjs/compsis0001/philinux/arm  -g -O0  --sysroot=/opt/poky/1.3  --sysroot=/opt/poky/1.3  --sysroot=/opt/poky/1.3 conftest.c  >&5
/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find crt1.o: No such file or directory
/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find crti.o: No such file or directory
/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find crtbegin.o: No such file or directory
/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find -lgcc
/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find -lgcc_s
/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find -lc
/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find -lgcc
/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find -lgcc_s
/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find crtend.o: No such file or directory
/opt/poky/1.3/sysroots/i686-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.7.2/ld: cannot find crtn.o: No such file or directory
collect2: error: ld returned 1 exit status
configure:3223: $? = 1
configure:3261: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "teste"
| #define PACKAGE_TARNAME "teste"
| #define PACKAGE_VERSION "0.1.0"
| #define PACKAGE_STRING "teste 0.1.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "teste"
| #define VERSION "0.1.0"
| /* end confdefs.h.  */
| int
| main ()
| {
|   ;
|   return 0;
| }
configure:3266: error: in `/home/prjs/compsis0001/workspace/teste':
configure:3268: error: C compiler cannot create executables
See `config.log' for more details

## ---------------- ##
## Cache variables. ##
## ---------------- ##
...
...
...
## ----------------- ##
## Output variables. ##
## ----------------- ##
...
...
...
/* confdefs.h */
#define PACKAGE_NAME "teste"
#define PACKAGE_TARNAME "teste"
#define PACKAGE_VERSION "0.1.0"
#define PACKAGE_STRING "teste 0.1.0"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
#define PACKAGE "teste"
#define VERSION "0.1.0"

configure: exit 77


Some One can Help me?

Thanks 

--
Raul Rosetto Muñoz


Re: Remove unwanted package from Qt

Eric Bénard <eric@...>
 

Hi Jon,

Le Wed, 16 Jan 2013 13:49:25 -0500,
Jon Szymaniak <jon.szymaniak@...> a écrit :
I'm not doing anything too unusual for "installing" Qt. My recipes for
my Qt application simply inherit qt4e, and list qt4-embedded in
DEPENDS.
"inherit qt4e" is enough, no need to add qt4-embedded to DEPENDS.

The only place where I deviated a bit from the norm is that I use a
qt4-embedded_4.8.3.bbappend to set up QT_CONFIG_FLAGS exactly as I
want them, and to rm ${D}/usr/bin/qtopia. Below's my bbappend. I'd be
interested to hear if there's a better way to clean out unneeded
directories from a rootfs (in my case ${D}/usr/bin/qtopia).

DEPENDS = "qt4-tools-native freetype jpeg libpng zlib"

# Override provided recipe and configure Qt4 to...
# - Disable irrelevant functionality and output
# - Disable SQL Plugins
# - Disable unused input/ouput
# - Have keyboard input and mouse input via /dev/input/mice
# - Have Linux framebuffer support
# - Use QML (so we need the declarative engine)
#
# Note, some of these might be extraneous, and this is a work in progress.
# (You've been warned!)
QT_CONFIG_FLAGS = "\
-embedded ${QT_ARCH} -qtlibinfix ${QT_LIBINFIX} \
-release -no-rpath -reduce-relocations -shared -no-exceptions \
-no-mmx -no-3dnow -no-sse -no-sse2 -no-sse3 -no-sse4.1 -no-sse4.2 -no-avx \
-no-glib -no-largefile -no-accessibility -no-openssl -no-gtkstyle \
-no-xcursor -no-xinerama -no-phonon -no-phonon-backend -no-svg -no-webkit \
-no-libmng -no-accessibility -no-qt3support -no-xmlpatterns \
-no-audio-backend -no-gif -nomake examples -nomake demos -no-javascript-jit \
-no-nis -no-cups -no-declarative-debug \
-no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc \
-no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds \
-no-xkb -no-kbd-tty -no-kbd-qnx -no-mouse-linuxinput \
-no-mouse-tslib -no-mouse-qnx -no-mouse-linuxtp \
-qt-mouse-pc -qt-kbd-linuxinput \
-qt-gfx-linuxfb -qt-gfx-multiscreen \
-depths 8,16,24,32 \
-declarative -script"

PRINC := "${@int(PRINC) + 1}"

# Despite not building them, qt4.inc creates /usr/bin/qtopia/ with
# only demo/ and example/ underneath. Let's get rid of these...
do_install_append() {
rm -rf ${D}/usr/bin/qtopia
}
strange, demos and examples are packaged in ${QT_BASE_NAME}-demos and
${QT_BASE_NAME}-examples packages so if you find these directories on
your target, that means you requested qt4-embedded-demos and
qt4-embedded-examples to be installed in your image.

Are you installing packagegroup-core-qt4e in your image like in
qt4e-demo-image ? If yes, that's where you pull demos & examples.

To get a minimal image, you could simply have :
IMAGE_INSTALL += "\
${CORE_IMAGE_BASE_INSTALL} \
you_qt_app \
some qt4-embedded-fonts or qt4-embedded-plugin you may need
(check packagegroup-core-qt4e.bb for the exact names) \
"
inherit core-image

The Qt libraries your application is linked with will be automatically
installed and you won't get extra unwanted packages in your image.

Best regards,
Eric


core-image-sato for beagleboard problem

Raul Mu?oz
 

Hello all,

I created a simple core-image-minimal for beagleboard using meta-ti, poky and meta-oe in danny version.

For the core-image-minimal all work fine but for the core-image-sato I get this error:

arm-poky-linux-gnueabi-libtool: link: `gtktreeview.lo' is not a valid libtool object
make[4]: *** [libgtk-x11-2.0.la] Error 1
make[4]: Leaving directory `/home/prjs/video0001/linux-beagle/linux-beagleboard/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/gtk+-2.24.8-r7/gtk+-2.24.8/gtk'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/prjs/video0001/linux-beagle/linux-beagleboard/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/gtk+-2.24.8-r7/gtk+-2.24.8/gtk'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/prjs/video0001/linux-beagle/linux-beagleboard/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/gtk+-2.24.8-r7/gtk+-2.24.8/gtk'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/prjs/video0001/linux-beagle/linux-beagleboard/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/gtk+-2.24.8-r7/gtk+-2.24.8'
make: *** [all] Error 2
ERROR: oe_runmake failed
ERROR: Function failed: do_compile (see /home/prjs/video0001/linux-beagle/linux-beagleboard/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/gtk+-2.24.8-r7/temp/log.do_compile.17652 for further information)


Some one can Help me?

Thanks

--
Raul Rosetto Muñoz


Re: How to force newly-compiled busybox into core-image-minimal (restating an earlier post)

Brian Smucker
 

Gary,

Thank you. It seems the bitbake -C option was indeed what I wanted.
And researching it helped fill in some of the gaps in my understanding.

Thanks,

Brian

On 1/16/2013 11:09 AM, Gary Thomas wrote:
On 2013-01-16 12:02, Brian Smucker wrote:
Hello all,

I'm not sure if my prior question was unclear or if the question was something nobody knows the answer to.

I think there's probably a simple answer, but maybe not.

So the background is this: A poky/danny setup where I have previously-compiled core-image-minimal.

I force busybox to be recompiled: bitbake -c -f compile busybox
I clean core-image-minimal: bitbake -c -f cleansstate core-image-minimal
I rebuild the core image: bitbake core-image-minimal

Result: The busybox that is included in the core-image rootfs is a busybox that was compiled earlier. It has an earlier timestamp.

Question: How do I force the newly-compiled busybox to be included in the core-image rootfs, so that the rootfs generation process does not retrieve some stale version of busybox
from a cache somewhere? (Without deleting the tmp directory. I know that works.)

There's got to be a simple answer.

Thanks,

Brian

ps. This is merely an interim way to test a particular permutation of the busybox config. I know how to make a recipe using bbappend and a new defconfig for busybox. But I want
to do a series of quick-and-dirty tests with various busybox config options.
The problem is that your rebuild of busybox only ran the compile step,
not any of the install or packaging steps.

Thankfully there is a new bitbake option which makes this much easier.
See if this does what you want:
% bitbake busybox -C compile
% bitbake core-image-minimal


[PATCH] [local patch for org.eclipse.rse.services] Fix race conditions for reading output from local processes

Ioana Grigoropol <ioanax.grigoropol@...>
 

When creating a new LocalHostShell a new LocalHostThread is created, along side with two LocalShellOutputReaders (output and error).
Both readers will receive a reference to one of the localhostThread's readers.
When the thread finishes its task, the reader is closed. If any of the readers is "late" trying to read data, will through an error similar to "Ensure open stream" or "Pipe closed".
Any reading done on the reader should be done atomically, such that no reader should be caught off-guard when the stream closes.
Also, the readers should reference the thread's reader, otherwise nulling this reference will be useless.

Signed-off-by: Ioana Grigoropol <ioanax.grigoropol@...>
---
.../dstore/shells/DStoreShellOutputReader.java | 52 ++++++++++++--------
.../services/local/shells/LocalHostShell.java | 22 ++++-----
.../local/shells/LocalShellOutputReader.java | 52 ++++++++++++++------
.../services/local/shells/LocalShellThread.java | 24 +++++++--
.../shells/TerminalServiceShellOutputReader.java | 25 +++++++---
5 files changed, 116 insertions(+), 59 deletions(-)

diff --git a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/shells/DStoreShellOutputReader.java b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/shells/DStoreShellOutputReader.java
index 84c9bb9..3f3e476 100644
--- a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/shells/DStoreShellOutputReader.java
+++ b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/shells/DStoreShellOutputReader.java
@@ -7,16 +7,19 @@
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
+ * component that contains this file: David McKnight, Kushal Munir,
+ * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
+ *
* Contributors:
* David McKnight (IBM) - [286671] return null when status is null
*******************************************************************************/

package org.eclipse.rse.internal.services.dstore.shells;

+import java.io.BufferedReader;
+import java.util.concurrent.locks.Lock;
+
import org.eclipse.dstore.core.model.DataElement;
import org.eclipse.dstore.extra.DomainEvent;
import org.eclipse.dstore.extra.IDomainListener;
@@ -41,13 +44,13 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
_status.getDataStore().getDomainNotifier().addDomainListener(this);
}
}
-
+
public String getWorkingDirectory()
{
String pwd = _status.getSource();
return pwd;
}
-
+
protected IHostOutput internalReadLine()
{
if (_status != null && _keepRunning)
@@ -57,9 +60,9 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
while (newSize > _statusOffset)
{
DataElement line = _status.get(_statusOffset++);
-
-
-
+
+
+
String type = line.getType();
boolean isError = type.equals("error") || type.equals("stderr"); //$NON-NLS-1$ //$NON-NLS-2$
if (_isErrorReader && isError)
@@ -71,13 +74,13 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
return new DStoreHostOutput(line);
}
}
-
-
+
+
try
{
if (_hostShell.isActive())
{
- waitForResponse();
+ waitForResponse();
return internalReadLine();
}
else
@@ -86,7 +89,7 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
}
}
catch (Exception e)
- {
+ {
e.printStackTrace();
}
}
@@ -128,7 +131,7 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
// for now, this is pulled via internalReadLine()
notifyResponse();
}
-
+
}

/**
@@ -138,16 +141,16 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
{
try
{
- wait();
+ wait();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
-
+
/**
- * Causes all threads waiting for this
+ * Causes all threads waiting for this
* to wake up.
*/
public synchronized void notifyResponse()
@@ -161,13 +164,22 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
e.printStackTrace();
}
}
-
+
public void finish()
{
super.finish();
notifyResponse();
}
-
+
+ public BufferedReader getReader() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Lock getReaderLock() {
+ return null;
+ }
+
/*
private void handleInput()
{
@@ -177,7 +189,7 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
int currentSize = _linesOfOutput.size();

for (int loop = currentSize; loop < totalSize; loop++)
- {
+ {
DataElement result = (DataElement) results.get(loop);
addLine(result.getName());
}
@@ -185,4 +197,4 @@ public class DStoreShellOutputReader extends AbstractHostShellOutputReader imple
*/

}
-
+
diff --git a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalHostShell.java b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalHostShell.java
index 250a904..d272989 100644
--- a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalHostShell.java
+++ b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalHostShell.java
@@ -7,10 +7,10 @@
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
+ * component that contains this file: David McKnight, Kushal Munir,
+ * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
+ *
* Contributors:
* Martin Oberhuber (Wind River) - [161838] local shell reports isActive() wrong
*******************************************************************************/
@@ -18,8 +18,6 @@
package org.eclipse.rse.internal.services.local.shells;

import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.rse.internal.services.local.shells.LocalShellOutputReader;
-import org.eclipse.rse.internal.services.local.shells.LocalShellThread;
import org.eclipse.rse.services.shells.AbstractHostShell;
import org.eclipse.rse.services.shells.IHostShell;
import org.eclipse.rse.services.shells.IHostShellOutputReader;
@@ -33,19 +31,19 @@ public class LocalHostShell extends AbstractHostShell implements IHostShell
private LocalShellThread _shellThread;
private LocalShellOutputReader _stdoutHandler;
private LocalShellOutputReader _stderrHandler;
-
+
public LocalHostShell(String initialWorkingDirectory, String invocation, String encoding, String[] environment)
{
- _shellThread = new LocalShellThread(initialWorkingDirectory, invocation, encoding, environment);
- _stdoutHandler = new LocalShellOutputReader(this, _shellThread.getOutputStream(), false);
- _stderrHandler = new LocalShellOutputReader(this, _shellThread.getErrorStream(),true);
+ _shellThread = new LocalShellThread(initialWorkingDirectory, invocation, encoding, environment);
+ _stdoutHandler = new LocalShellOutputReader(this, _shellThread.getOutputStream(), _shellThread, false);
+ _stderrHandler = new LocalShellOutputReader(this, _shellThread.getErrorStream(), _shellThread, true);
}
-
+
protected void run(IProgressMonitor monitor)
{
_shellThread.start();
}
-
+

/* (non-Javadoc)
* @see org.eclipse.rse.services.shells.IHostShell#isActive()
@@ -68,7 +66,7 @@ public class LocalHostShell extends AbstractHostShell implements IHostShell
{
_shellThread.sendInput(command);
}
-
+
public IHostShellOutputReader getStandardOutputReader()
{
return _stdoutHandler;
diff --git a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellOutputReader.java b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellOutputReader.java
index ab8ff5c..ad3fa86 100644
--- a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellOutputReader.java
+++ b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellOutputReader.java
@@ -7,10 +7,10 @@
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
+ * component that contains this file: David McKnight, Kushal Munir,
+ * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
+ *
* Contributors:
* {Name} (company) - description of contribution.
*******************************************************************************/
@@ -19,6 +19,7 @@ package org.eclipse.rse.internal.services.local.shells;

import java.io.BufferedReader;
import java.io.IOException;
+import java.util.concurrent.locks.Lock;

import org.eclipse.rse.internal.services.local.Activator;
import org.eclipse.rse.services.shells.AbstractHostShellOutputReader;
@@ -33,14 +34,16 @@ import org.eclipse.rse.services.shells.SimpleHostOutput;
*/
public class LocalShellOutputReader extends AbstractHostShellOutputReader implements IHostShellOutputReader
{
- protected BufferedReader _reader;
+// protected volatile BufferedReader _reader;
+ private LocalShellThread _shellThread;
private String fPromptChars = ">$%#]"; //Characters we accept as the end of a prompt //$NON-NLS-1$;

-
- public LocalShellOutputReader(IHostShell hostShell, BufferedReader reader, boolean isErrorReader)
+
+ public LocalShellOutputReader(IHostShell hostShell, BufferedReader reader, LocalShellThread shellThread, boolean isErrorReader)
{
super(hostShell, isErrorReader);
- _reader = reader;
+// _reader = reader;
+ _shellThread = shellThread;
}
/*
protected Object internalReadLine()
@@ -137,9 +140,11 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
}
*/
protected IHostOutput internalReadLine() {
- if (_reader == null) {
+ getLock().lock();
+ if (getReader() == null) {
//Our workaround sets the stderr reader to null, so we never give any stderr output.
//TODO Check if ssh supports some method of having separate stdout and stderr streams
+ getLock().unlock();
return null;
}
StringBuffer theLine = new StringBuffer();
@@ -149,12 +154,14 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
boolean done = false;
while (!done && !isFinished()) {
try {
- ch = _reader.read();
+ ch = getReader().read();
switch (ch) {
case -1:
case 65535:
- if (theLine.length() == 0) // End of Reader
+ if (theLine.length() == 0) {// End of Reader
+ getLock().unlock();
return null;
+ }
done = true;
break;
case '\b': //backspace
@@ -185,13 +192,13 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
theLine.append(tch); // Any other character
} else if (ch == 27) {
// Escape: ignore next char too
- int nch = _reader.read();
+ int nch = getReader().read();
if (theDebugLine!=null) theDebugLine.append((char)nch);
if (nch == 91) {
//vt100 escape sequence: read until end-of-command (skip digits and semicolon)
//e.g. \x1b;13;m --> ignore the entire command, including the trailing m
do {
- nch = _reader.read();
+ nch = getReader().read();
if (theDebugLine!=null) theDebugLine.append((char)nch);
} while (Character.isDigit((char)nch) || nch == ';');
}
@@ -202,9 +209,9 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
// there are more characters
// in the Buffer...If not, then we assume it is waiting for
// input.
- if (!done && !_reader.ready()) {
- // wait to make sure -- max. 500 msec to wait for new chars
- // if we are not at a CRLF seems to be appropriate for the
+ if (!done && !getReader().ready()) {
+ // wait to make sure -- max. 500 msec to wait for new chars
+ // if we are not at a CRLF seems to be appropriate for the
// Pipes and Threads in ssh.
long waitIncrement = 500;
// Check if we think we are at a prompt
@@ -219,7 +226,7 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
Thread.sleep(waitIncrement);
} catch (InterruptedException e) {
}
- if (!_reader.ready()) {
+ if (!getReader().ready()) {
done = true;
}
}
@@ -228,6 +235,7 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
//our reader thread completely... the exception could just be
//temporary, and we should keep running!
Activator.getDefault().logException(e);
+ getLock().unlock();
return null;
}
}
@@ -235,8 +243,20 @@ public class LocalShellOutputReader extends AbstractHostShellOutputReader implem
String debugLine = theDebugLine.toString();
debugLine.compareTo(""); //$NON-NLS-1$
}
+ getLock().unlock();
return new SimpleHostOutput(theLine.toString());
}
+ private Lock getLock() {
+ return _shellThread.getLock();
+ }
+ public BufferedReader getReader() {
+ if (isErrorReader())
+ return _shellThread.getErrorStream();
+ return _shellThread.getOutputStream();
+ }
+ public Lock getReaderLock() {
+ return _shellThread.getLock();
+ }


}
diff --git a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellThread.java b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellThread.java
index 0a33ad4..7407f2e 100644
--- a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellThread.java
+++ b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/shells/LocalShellThread.java
@@ -16,7 +16,7 @@
* Lothar Werzinger (Tradescape) - [161838] Support terminating local shells
* David McKnight (IBM) - [189387] Use specified encoding for shell output
* Martin Oberhuber (Wind River) - [161838] local shell reports isActive() wrong
- * Anna Dushistova (MontaVsita) - [249354] Incorrect behaviour of local shells subsystem runCommand method
+ * Anna Dushistova (MontaVsita) - [249354] Incorrect behaviour of local shells subsystem runCommand method
*******************************************************************************/

package org.eclipse.rse.internal.services.local.shells;
@@ -29,6 +29,8 @@ import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.URL;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;

import org.eclipse.core.runtime.FileLocator;

@@ -62,9 +64,10 @@ public class LocalShellThread extends Thread
private BufferedReader _stdInput;
private BufferedReader _stdError;

+ private Lock _lock;
/**
* constructor for local command shell monitor
- *
+ *
* @param cwd initial working directory
* @param invocation launch shell command
* @param encoding encoding to use or <code>null</code> for default
@@ -192,7 +195,7 @@ public class LocalShellThread extends Thread
args = new String[1];
args[0] = _invocation;
_theProcess = Runtime.getRuntime().exec(args[0], envVars, theDirectory);
- } else {
+ } else {
args = new String[3];
args[0] = theShell;
args[1] = "-c";//$NON-NLS-1$
@@ -260,6 +263,7 @@ public class LocalShellThread extends Thread

_stdError = new BufferedReader(new InputStreamReader(_theProcess.getErrorStream()));

+ _lock = new ReentrantLock();
}
catch (IOException e)
{
@@ -438,9 +442,14 @@ public class LocalShellThread extends Thread
_isDone = true;
try
{
+ _lock.lock();
_stdInput.close();
_stdError.close();

+ _stdInput = null;
+ _stdError = null;
+
+ _lock.unlock();
if (_theProcess != null)
{

@@ -511,4 +520,13 @@ public class LocalShellThread extends Thread
}


+ public Lock getLock() {
+ return _lock;
+ }
+
+
+ public void setLock(Lock _lock) {
+ this._lock = _lock;
+ }
+
}
diff --git a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/shells/TerminalServiceShellOutputReader.java b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/shells/TerminalServiceShellOutputReader.java
index 16364e1..fef0032 100644
--- a/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/shells/TerminalServiceShellOutputReader.java
+++ b/rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/internal/services/shells/TerminalServiceShellOutputReader.java
@@ -7,13 +7,13 @@
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
+ * component that contains this file: David McKnight, Kushal Munir,
+ * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
+ *
* Contributors:
- * Martin Oberhuber (Wind River) - Adapted from LocalShellOutputReader.
- * Martin Oberhuber (Wind River) - Added vt100 escape sequence ignoring.
+ * Martin Oberhuber (Wind River) - Adapted from LocalShellOutputReader.
+ * Martin Oberhuber (Wind River) - Added vt100 escape sequence ignoring.
* Anna Dushistova (MontaVista) - adapted from SshShellOutputReader
* Anna Dushistova (MontaVista) - [240523] [rseterminals] Provide a generic adapter factory that adapts any ITerminalService to an IShellService
* Rob Stryker (JBoss) - [335059] TerminalServiceShellOutputReader logs error when hostShell.exit() is called
@@ -23,6 +23,7 @@ package org.eclipse.rse.internal.services.shells;

import java.io.BufferedReader;
import java.io.IOException;
+import java.util.concurrent.locks.Lock;

import org.eclipse.rse.internal.services.Activator;
import org.eclipse.rse.services.shells.AbstractHostShellOutputReader;
@@ -125,8 +126,8 @@ public class TerminalServiceShellOutputReader extends
// in the Buffer...If not, then we assume it is waiting for
// input.
if (!done && !fReader.ready()) {
- // wait to make sure -- max. 500 msec to wait for new chars
- // if we are not at a CRLF seems to be appropriate for the
+ // wait to make sure -- max. 500 msec to wait for new chars
+ // if we are not at a CRLF seems to be appropriate for the
// Pipes and Threads in ssh.
long waitIncrement = 500;
// Check if we think we are at a prompt
@@ -163,7 +164,7 @@ public class TerminalServiceShellOutputReader extends
}
return new SimpleHostOutput(theLine.toString());
}
-
+
/**
* Stop the reader Thread, forcing internalReadLine() to return.
* Does not close the Stream.
@@ -174,4 +175,12 @@ public class TerminalServiceShellOutputReader extends
fReaderThread.interrupt();
}
}
+
+ public BufferedReader getReader() {
+ return fReader;
+ }
+
+ public Lock getReaderLock() {
+ return null;
+ }
}
--
1.7.9.5


Re: YPDD access code.

Scott Garman <scott.a.garman@...>
 

On 01/16/2013 02:20 PM, Scott Garman wrote:
Hello,

To Yocto core team members who will be attending YPDD at ELC in February
- the access code this year for Yocto staff is YPDD13STF. You will be
asked to provide this code while registering for ELC.
I'm really sorry I sent this to the wrong address. Please understand that the above code is only to be used for staff members who will be running YPDD. The event is free, so it's not like you'd get anything extra for signing up as staff. We simply keep the category separate so we don't end up counting staff members the same as attendees.

Scott

--
Scott Garman
Embedded Linux Engineer - Yocto Project
Intel Open Source Technology Center


[PATCH] [eclipse-poky][branch:windows-build]Performance fix for Linux implementation

Ioana Grigoropol <ioanax.grigoropol@...>
 

- run each command in a separate shell - needs explicit sourcing of environment and closing for each command
- tested only against Linux host & Linux local host connection
- needs local patch for upstream API

Signed-off-by: Ioana Grigoropol <ioanax.grigoropol@...>
---
plugins/org.yocto.bc.ui/META-INF/MANIFEST.MF | 1 +
.../src/org/yocto/bc/bitbake/BBRecipe.java | 5 +-
.../src/org/yocto/bc/bitbake/ShellSession.java | 23 ++-
.../org/yocto/bc/remote/utils/CommandRunnable.java | 90 +++++++++
.../yocto/bc/remote/utils/ProcessStreamBuffer.java | 12 +-
.../org/yocto/bc/remote/utils/RemoteHelper.java | 98 ++++------
.../org/yocto/bc/remote/utils/RemoteMachine.java | 127 +++++++++++--
.../remote/utils/YoctoHostShellProcessAdapter.java | 198 --------------------
.../bc/remote/utils/YoctoRunnableWithProgress.java | 191 ++++++++++++++++---
.../bc/ui/wizards/NewBitBakeFileRecipeWizard.java | 2 +-
.../ui/wizards/NewBitBakeFileRecipeWizardPage.java | 71 ++++---
.../yocto/bc/ui/wizards/install/InstallWizard.java | 29 +--
12 files changed, 467 insertions(+), 380 deletions(-)
create mode 100644 plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/CommandRunnable.java
delete mode 100644 plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoHostShellProcessAdapter.java

diff --git a/plugins/org.yocto.bc.ui/META-INF/MANIFEST.MF b/plugins/org.yocto.bc.ui/META-INF/MANIFEST.MF
index 1f0e63e..4e57f33 100644
--- a/plugins/org.yocto.bc.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.yocto.bc.ui/META-INF/MANIFEST.MF
@@ -29,6 +29,7 @@ Import-Package: org.eclipse.cdt.managedbuilder.core,
org.eclipse.rse.core,
org.eclipse.rse.core.model,
org.eclipse.rse.core.subsystems,
+ org.eclipse.rse.internal.services.local.shells,
org.eclipse.rse.services,
org.eclipse.rse.services.clientserver.messages,
org.eclipse.rse.services.files,
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBRecipe.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBRecipe.java
index 6a33ade..6d003ce 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBRecipe.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBRecipe.java
@@ -26,9 +26,9 @@ public class BBRecipe extends BBSession {
super(session.shell, session.pinfo.getURI());
this.session = session;
this.fileURI = filePath;
- this.parsingCmd = "DISABLE_SANITY_CHECKS=\"1\" bitbake -e -b " + filePath.getPath();
+ this.parsingCmd = "DISABLE_SANITY_CHECKS=\"1\" bitbake -e -b " + filePath.getPath() + " >& " + BB_ENV_FILE;
}
-
+
@Override
public void initialize() throws Exception {
if (this.size() == 0) {
@@ -37,6 +37,7 @@ public class BBRecipe extends BBSession {
}
}

+ @Override
protected URI getDefaultDepends() {
return this.fileURI;
}
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/ShellSession.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/ShellSession.java
index 6441029..ef01d96 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/ShellSession.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/ShellSession.java
@@ -48,6 +48,7 @@ public class ShellSession {
public static final String LT = System.getProperty("line.separator");
public static final String exportCmd = "export BB_ENV_EXTRAWHITE=\"DISABLE_SANITY_CHECKS $BB_ENV_EXTRAWHITE\"";
public static final String exportColumnsCmd = "export COLUMNS=1000";
+ private static final String BUILD_DIR = "/build/";

public static String getFilePath(String file) throws IOException {
File f = new File(file);
@@ -87,8 +88,11 @@ public class ShellSession {
private void initializeShell(IProgressMonitor monitor) throws IOException {
try {
if (root != null) {
- RemoteHelper.runCommandRemote(projectInfo.getConnection(), new YoctoCommand("source " + initCmd, root.getAbsolutePath(), ""));
- RemoteHelper.runCommandRemote(projectInfo.getConnection(), new YoctoCommand(exportCmd, root.getAbsolutePath(), ""));
+ IHost connection = projectInfo.getConnection();
+// RemoteHelper.runCommandRemote(projectInfo.getConnection(), new YoctoCommand("source " + initCmd, root.getAbsolutePath(), ""));
+ RemoteHelper.handleRunCommandRemote(connection, new YoctoCommand("source " + initCmd, root.getAbsolutePath(), ""), monitor);
+// RemoteHelper.runCommandRemote(projectInfo.getConnection(), new YoctoCommand(exportCmd, root.getAbsolutePath(), ""));
+ RemoteHelper.handleRunCommandRemote(connection, new YoctoCommand(exportCmd, root.getAbsolutePath(), ""), monitor);
} else {
throw new Exception("Root file not found!");
}
@@ -107,9 +111,11 @@ public class ShellSession {

try {
if (projectInfo.getConnection() != null) {
- hasErrors = RemoteHelper.runCommandRemote(projectInfo.getConnection(), new YoctoCommand(command, root.getAbsolutePath() + "/build/", ""));
+// hasErrors = RemoteHelper.runCommandRemote(projectInfo.getConnection(), new YoctoCommand(command, root.getAbsolutePath() + "/build/", ""));
+ command = getInitCmd() + command;
+ RemoteHelper.handleRunCommandRemote(projectInfo.getConnection(), new YoctoCommand(command, getBuildDirAbsolutePath(), ""), new NullProgressMonitor());
// return RemoteHelper.getProcessBuffer(projectInfo.getConnection()).getMergedOutputLines();
- return root.getAbsolutePath() + "/build/";
+ return getBuildDirAbsolutePath();
}
return null;
} catch (Exception e) {
@@ -118,9 +124,16 @@ public class ShellSession {
return null;
}

+ private String getBuildDirAbsolutePath(){
+ return root.getAbsolutePath() + BUILD_DIR;
+ }
+
+ private String getInitCmd() {
+ return "source " + initCmd + " " + getBuildDirAbsolutePath() + " > tempsf; rm -rf tempsf;";
+ }
+
synchronized
public void execute(String command, ICommandResponseHandler handler) throws IOException {
- System.out.println(command);
execute(command, TERMINATOR, handler);
}

diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/CommandRunnable.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/CommandRunnable.java
new file mode 100644
index 0000000..fe8b7a7
--- /dev/null
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/CommandRunnable.java
@@ -0,0 +1,90 @@
+package org.yocto.bc.remote.utils;
+
+import java.io.BufferedReader;
+import java.util.concurrent.locks.Lock;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.rse.core.model.IHost;
+import org.eclipse.rse.services.shells.IHostShell;
+
+public class CommandRunnable implements Runnable{
+ private IHostShell hostShell;
+ private IHost connection;
+ private YoctoCommand cmd;
+ private IProgressMonitor monitor;
+ private CommandResponseHandler cmdHandler;
+
+ CommandRunnable(IHost connection, YoctoCommand cmd, IProgressMonitor monitor){
+ this.connection = connection;
+ this.cmdHandler = RemoteHelper.getCommandHandler(connection);
+ this.cmd = cmd;
+ this.monitor = monitor;
+ this.hostShell = null;
+ }
+ @Override
+ public void run() {
+ try {
+ hostShell = RemoteHelper.runCommandRemote(connection, cmd, monitor);
+ cmd.setProcessBuffer(processOutput());
+ } catch (CoreException e) {
+ e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ private ProcessStreamBuffer processOutput() throws Exception {
+ if (hostShell == null)
+ throw new Exception("An error has occured while trying to run remote command!");
+
+ Lock lock = hostShell.getStandardOutputReader().getReaderLock();
+ lock.lock();
+ ProcessStreamBuffer processBuffer = new ProcessStreamBuffer();
+ BufferedReader inbr = hostShell.getStandardOutputReader().getReader();
+ BufferedReader errbr = hostShell.getStandardErrorReader().getReader();
+ boolean cancel = false;
+ while (!cancel) {
+ if(monitor.isCanceled()) {
+ cancel = true;
+ lock.unlock();
+ throw new InterruptedException("User Cancelled");
+ }
+ StringBuffer buffer = new StringBuffer();
+ int c;
+ while ((c = errbr.read()) != -1) {
+ char ch = (char) c;
+ buffer.append(ch);
+ if (ch == '\n'){
+ String str = buffer.toString();
+ processBuffer.addErrorLine(str);
+ System.out.println(str);
+ if (str.trim().equals(RemoteHelper.TERMINATOR)) {
+ break;
+ }
+ cmdHandler.response(str, true);
+ buffer.delete(0, buffer.length());
+ }
+ }
+
+ while ((c = inbr.read()) != -1) {
+ char ch = (char) c;
+ buffer.append(ch);
+ if (ch == '\n'){
+ String str = buffer.toString();
+ processBuffer.addOutputLine(str);
+ System.out.println(str);
+ if (str.trim().equals(RemoteHelper.TERMINATOR)) {
+ break;
+ }
+ cmdHandler.response(str, false);
+ buffer.delete(0, buffer.length());
+ }
+ }
+ cancel = true;
+ }
+ lock.unlock();
+ return processBuffer;
+ }
+
+}
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/ProcessStreamBuffer.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/ProcessStreamBuffer.java
index 2c6d122..e0d502c 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/ProcessStreamBuffer.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/ProcessStreamBuffer.java
@@ -8,27 +8,27 @@ public class ProcessStreamBuffer {
private static final String WHITESPACES = "\\s+";
List<String> errorLines;
List<String> outputLines;
-
+
ProcessStreamBuffer(){
errorLines = new ArrayList<String>();
outputLines = new ArrayList<String>();
}
-
+
public void addErrorLine(String line){
errorLines.add(line);
}
public void addOutputLine(String line){
outputLines.add(line);
}
-
+
public List<String> getOutputLines(){
return outputLines;
}
-
+
public List<String> getErrorLines(){
return errorLines;
}
-
+
public String getMergedOutputLines(){
String returnVal = "";
for (int i = 0; i < outputLines.size(); i++) {
@@ -65,6 +65,6 @@ public class ProcessStreamBuffer {
}
}
}
- return null;
+ return "";
}
}
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteHelper.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteHelper.java
index 814e3a5..1134c8e 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteHelper.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteHelper.java
@@ -14,7 +14,6 @@ import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;

import org.eclipse.core.runtime.CoreException;
@@ -25,6 +24,7 @@ import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.osgi.util.NLS;
import org.eclipse.ptp.remote.core.IRemoteConnection;
import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.core.model.IHost;
@@ -35,11 +35,11 @@ import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
import org.eclipse.rse.services.files.IFileService;
import org.eclipse.rse.services.files.IHostFile;
import org.eclipse.rse.services.shells.IHostShell;
+import org.eclipse.rse.services.shells.IShellService;
import org.eclipse.rse.subsystems.files.core.model.RemoteFileUtility;
import org.eclipse.rse.subsystems.files.core.servicesubsystem.FileServiceSubSystem;
import org.eclipse.rse.subsystems.files.core.servicesubsystem.IFileServiceSubSystem;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
-import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteCmdSubSystem;
import org.eclipse.ui.console.MessageConsole;
import org.yocto.bc.ui.Activator;
import org.yocto.bc.ui.wizards.install.Messages;
@@ -69,10 +69,6 @@ public class RemoteHelper {
return getRemoteMachine(connection).getCmdHandler();
}

- public static YoctoHostShellProcessAdapter getHostShellProcessAdapter(IHost connection) {
- return getRemoteMachine(connection).getHostShellProcessAdapter();
- }
-
public static ProcessStreamBuffer getProcessBuffer(IHost connection) {
return getRemoteMachine(connection).getProcessBuffer();
}
@@ -198,13 +194,37 @@ public class RemoteHelper {
return getRemoteMachine(connection).getShellService(monitor);
}

- public static ISubSystem getCmdSubsystem(IHost host) {
- if (host == null)
- return null;
- ISubSystem[] subSystems = host.getSubSystems();
- for (int i = 0; i < subSystems.length; i++) {
- if (subSystems[i] instanceof IRemoteCmdSubSystem)
- return subSystems[i];
+ public static void handleRunCommandRemote(IHost connection, YoctoCommand cmd, IProgressMonitor monitor){
+ try {
+ CommandRunnable cmdRun = new CommandRunnable(connection, cmd, monitor);
+ cmdRun.run();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static IHostShell runCommandRemote(IHost connection, YoctoCommand cmd,
+ IProgressMonitor monitor) throws CoreException {
+
+ monitor.beginTask(NLS.bind(Messages.RemoteShellExec_1,
+ cmd, cmd.getArguments()), 10);
+
+ String remoteCommand = cmd.getCommand() + " " + cmd.getArguments() + " ; echo " + TERMINATOR + "; exit ;";
+
+ IShellService shellService;
+ try {
+ shellService = (IShellService) getConnectedShellService(connection, new SubProgressMonitor(monitor, 7));
+
+ String env[] = getRemoteMachine(connection).prepareEnvString(monitor);
+
+ try {
+ IHostShell hostShell = shellService.runCommand(cmd.getInitialDirectory(), remoteCommand, env, new SubProgressMonitor(monitor, 3));
+ return hostShell;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } catch (Exception e1) {
+ e1.printStackTrace();
}
return null;
}
@@ -248,54 +268,6 @@ public class RemoteHelper {
return null;
}

- public static boolean runCommandRemote(final IHost connection, final YoctoCommand cmd) throws Exception {
- final String remoteCommand = cmd.getCommand() + " " + cmd.getArguments();
- final boolean hasErrors = false;
-
- if (!cmd.getInitialDirectory().isEmpty()) {
- writeToShell(connection, "cd " + cmd.getInitialDirectory());
- }
- if (!hasErrors)
- writeToShell(connection, remoteCommand);
-
- return hasErrors;
- }
-
- public static boolean writeToShell(final IHost connection, final String remoteCommand){
- new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- YoctoHostShellProcessAdapter adapter = getHostShellProcessAdapter(connection);
- String fullRemoteCommand = remoteCommand + "; echo " + TERMINATOR + ";";
- adapter.setLastCommand(fullRemoteCommand);
- getHostShell(connection).writeToShell(fullRemoteCommand);
- while (!adapter.isFinished())
- Thread.sleep(2);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }).run();
- return true;
- }
-
- public static void runBatchRemote(IHost connection, List<YoctoCommand> cmds, boolean displayOutput) throws CoreException {
- try {
- String remoteCommand = "";
- for (YoctoCommand cmd : cmds) {
- remoteCommand = cmd.getCommand() + " " + cmd.getArguments();
- if (!cmd.getInitialDirectory().isEmpty()) {
- writeToShell(connection, "cd " + cmd.getInitialDirectory());
- }
- writeToShell(connection, remoteCommand);
- }
-
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- }
-
/**
* Throws a core exception with an error status object built from the given
* message, lower level exception, and error code.
@@ -345,8 +317,4 @@ public class RemoteHelper {
return false;
}

- public static void clearProcessBuffer(IHost connection) {
- getHostShellProcessAdapter(connection).clearProcessBuffer();
- }
-
}
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteMachine.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteMachine.java
index d4cdb23..18c41e1 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteMachine.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteMachine.java
@@ -1,6 +1,10 @@
package org.yocto.bc.remote.utils;

-import java.io.IOException;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
import java.util.Map;

import org.eclipse.core.runtime.CoreException;
@@ -8,10 +12,13 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.subsystems.ISubSystem;
+import org.eclipse.rse.internal.services.local.shells.LocalShellService;
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
import org.eclipse.rse.services.files.IFileService;
+import org.eclipse.rse.services.shells.HostShellProcessAdapter;
import org.eclipse.rse.services.shells.IHostShell;
import org.eclipse.rse.services.shells.IShellService;
import org.eclipse.rse.subsystems.files.core.servicesubsystem.IFileServiceSubSystem;
@@ -26,7 +33,6 @@ public class RemoteMachine {
private MessageConsole console;
private CommandResponseHandler cmdHandler;
private IHostShell hostShell;
- private YoctoHostShellProcessAdapter hostShellProcessAdapter;
private IShellService shellService;
private ProcessStreamBuffer processBuffer;
private IHost connection;
@@ -37,6 +43,111 @@ public class RemoteMachine {
public RemoteMachine(IHost connection) {
setConnection(connection);
}
+ private ProcessStreamBuffer processOutput(Process process, IProgressMonitor monitor) throws Exception {
+ if (process == null)
+ throw new Exception("An error has occured while trying to run remote command!");
+ ProcessStreamBuffer processBuffer = new ProcessStreamBuffer();
+
+ BufferedReader inbr = new BufferedReader(new InputStreamReader(process.getInputStream()));
+ BufferedReader errbr = new BufferedReader(new InputStreamReader(process.getErrorStream()));
+ boolean cancel = false;
+ while (!cancel) {
+ if(monitor.isCanceled()) {
+ cancel = true;
+ throw new InterruptedException("User Cancelled");
+ }
+ StringBuffer buffer = new StringBuffer();
+ int c;
+ while ((c = errbr.read()) != -1) {
+ char ch = (char) c;
+ buffer.append(ch);
+ if (ch == '\n'){
+ String str = buffer.toString();
+ processBuffer.addErrorLine(str);
+ System.out.println(str);
+ if (str.trim().equals(RemoteHelper.TERMINATOR)) {
+ break;
+ }
+ buffer.delete(0, buffer.length());
+ }
+ }
+
+ while ((c = inbr.read()) != -1) {
+ char ch = (char) c;
+ buffer.append(ch);
+ if (ch == '\n'){
+ String str = buffer.toString();
+ processBuffer.addOutputLine(str);
+ System.out.println(str);
+ if (str.trim().equals(RemoteHelper.TERMINATOR)) {
+ break;
+ }
+ buffer.delete(0, buffer.length());
+ }
+ }
+ cancel = true;
+ }
+ return processBuffer;
+ }
+
+ public String[] prepareEnvString(IProgressMonitor monitor){
+ String[] env = null;
+ try {
+ if (shellService instanceof LocalShellService) {
+ env = shellService.getHostEnvironment();
+ } else {
+ List<String> envList = new ArrayList<String>();
+ getRemoteEnvProxyVars(monitor);
+ String value = "";
+ for (String varName : environment.keySet()){
+ value = varName + "=" + environment.get(varName);
+ envList.add(value);
+ }
+ env = envList.toArray(new String[envList.size()]);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return env;
+ }
+ public void getRemoteEnvProxyVars(IProgressMonitor monitor){
+ try {
+ if (environment != null && !environment.isEmpty())
+ return;
+
+ environment = new HashMap<String, String>();
+
+ IShellService shellService = getShellService(new SubProgressMonitor(monitor, 7));
+
+ HostShellProcessAdapter p = null;
+ ProcessStreamBuffer buffer = null;
+ try {
+ SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, 3);
+ IHostShell hostShell = shellService.runCommand("", "env" + " ; echo " + RemoteHelper.TERMINATOR + "; exit;", new String[]{}, subMonitor);
+ p = new HostShellProcessAdapter(hostShell);
+ buffer = processOutput(p, subMonitor);
+ for(int i = 0; i < buffer.getOutputLines().size(); i++) {
+ String out = buffer.getOutputLines().get(i);
+ String[] tokens = out.split("=");
+ if (tokens.length != 2)
+ continue;
+ String varName = tokens[0];
+ String varValue = tokens[1];
+ if (varName.contains(PROXY))
+ environment.put(varName, varValue);
+ }
+ } catch (Exception e) {
+ if (p != null) {
+ p.destroy();
+ }
+ e.printStackTrace();
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }

public Map<String, String> getEnvironment() {
return environment;
@@ -60,6 +171,7 @@ public class RemoteMachine {
try {
if (hostShell == null) {
hostShell = getShellService(new NullProgressMonitor()).launchShell("", new String[]{}, new NullProgressMonitor());
+ prepareEnvString(new NullProgressMonitor());
}
} catch (SystemMessageException e) {
e.printStackTrace();
@@ -69,17 +181,6 @@ public class RemoteMachine {
return hostShell;
}

- public YoctoHostShellProcessAdapter getHostShellProcessAdapter() {
- try {
- if (hostShellProcessAdapter == null)
- hostShellProcessAdapter = new YoctoRunnableWithProgress(getHostShell(), getProcessBuffer(), getCmdHandler());
- return hostShellProcessAdapter;
- } catch (IOException e) {
- e.printStackTrace();
- return null;
- }
- }
-
public IShellService getShellService(IProgressMonitor monitor) throws Exception {
if (shellService != null)
return shellService;
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoHostShellProcessAdapter.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoHostShellProcessAdapter.java
deleted file mode 100644
index aca6a6e..0000000
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoHostShellProcessAdapter.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package org.yocto.bc.remote.utils;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.Semaphore;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.rse.services.shells.HostShellProcessAdapter;
-import org.eclipse.rse.services.shells.IHostOutput;
-import org.eclipse.rse.services.shells.IHostShell;
-import org.eclipse.rse.services.shells.IHostShellChangeEvent;
-import org.eclipse.rse.services.shells.IHostShellOutputReader;
-import org.eclipse.swt.widgets.Display;
-
-public class YoctoHostShellProcessAdapter extends HostShellProcessAdapter {
- private ProcessStreamBuffer processStreamBuffer;
- private CommandResponseHandler commandResponseHandler;
- private boolean isFinished;
- private ICalculatePercentage calculator;
- private int reportedWorkload;
- private boolean isAlive;
-
- private String command;
- private Map<String, IProgressMonitor> commandMonitors;
-
- private Semaphore sem;
-
-
- public YoctoHostShellProcessAdapter(IHostShell hostShell, ProcessStreamBuffer processStreamBuffer, CommandResponseHandler commandResponseHandler) throws IOException {
- super(hostShell);
- this.processStreamBuffer = processStreamBuffer;
- this.commandResponseHandler = commandResponseHandler;
- this.calculator = new GitCalculatePercentage();
- this.sem = new Semaphore(1);
- this.command = "";
- this.commandMonitors = new HashMap<String, IProgressMonitor>();
- }
-
- public String getLastCommand() {
- return command;
- }
-
- public synchronized void setLastCommand(String lastCommand) {
- try {
- // there are still some processes that might take a long time and if we do not wait for them,
- // then the semaphore will not be released, because an interrupted exception will occur
- Thread.sleep(2000);
- isFinished = false;
- sem.acquire();
- this.command = lastCommand.trim();
- this.commandMonitors.put(command, getOwnMonitor());
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
-
- private interface ICalculatePercentage {
- public float calWorkloadDone(String info) throws IllegalArgumentException;
- }
-
- private class GitCalculatePercentage implements ICalculatePercentage {
- final Pattern pattern = Pattern.compile("^Receiving objects:\\s*(\\d+)%.*");
- @Override
- public float calWorkloadDone(String info) throws IllegalArgumentException {
- Matcher m = pattern.matcher(info.trim());
- if(m.matches()) {
- return new Float(m.group(1)) / 100;
- }else {
- throw new IllegalArgumentException();
- }
- }
- }
-
- private IProgressMonitor getMonitor() {
- if (command == null) {
- return null;
- }
- return commandMonitors.get(command);
- }
-
- private void updateMonitor(final int work){
-
- Display.getDefault().asyncExec(new Runnable() {
-
- @Override
- public void run() {
- if (getMonitor() != null) {
- getMonitor().worked(work);
- }
- }
-
- });
- }
-
- private void doneMonitor(){
- Display.getDefault().asyncExec(new Runnable() {
- @Override
- public void run() {
- getMonitor().done();
- }
- });
- }
-
- private void reportProgress(String info) {
- if(calculator == null) {
- updateMonitor(1);
- } else {
- float percentage;
- try {
- percentage = calculator.calWorkloadDone(info);
- } catch (IllegalArgumentException e) {
- System.out.println(info);
- //can't get percentage
- return;
- }
- int delta = (int) (RemoteHelper.TOTALWORKLOAD * percentage - reportedWorkload);
- if( delta > 0 ) {
- updateMonitor(delta);
- reportedWorkload += delta;
- }
-
- if (reportedWorkload == RemoteHelper.TOTALWORKLOAD)
- doneMonitor();
- }
- }
-
- @Override
- public void shellOutputChanged(IHostShellChangeEvent event) {
- IHostShellOutputReader reader = event.getReader();
- IHostOutput[] lines = event.getLines();
- if (reader.isErrorReader()) {
- for (IHostOutput line : lines) {
- String value = line.getString();
- if (value.isEmpty()) {
- continue;
- }
- System.out.println(value);
- this.processStreamBuffer.addErrorLine(value);
- if (this.commandResponseHandler != null)
- this.commandResponseHandler.response(value, false);
- }
- } else {
- for (IHostOutput line : lines) {
- String value = line.getString().trim();
- if (value.isEmpty()) {
- continue;
- }
- if (value.endsWith(RemoteHelper.TERMINATOR)) {
- sem.release();
- isFinished = true;
- }
-
- reportProgress(value);
- System.out.println(value);
- this.processStreamBuffer.addOutputLine(value);
- if (this.commandResponseHandler != null)
- this.commandResponseHandler.response(value, false);
- }
- }
-
- }
- public boolean isFinished() {
- return isFinished;
- }
- public boolean hasErrors(){
- return this.processStreamBuffer.errorLines.size() != 0;
- }
-
- public boolean isAlive() {
- return isAlive;
- }
-
- public void setAlive(boolean isAlive) {
- this.isAlive = isAlive;
- }
-
- public void clearProcessBuffer() {
- this.processStreamBuffer.outputLines.clear();
- this.processStreamBuffer.errorLines.clear();
- }
-
- public IProgressMonitor getOwnMonitor() {
- return new NullProgressMonitor();
- }
-
- public CommandResponseHandler getCommandResponseHandler() {
- return commandResponseHandler;
- }
-
- public void setCommandResponseHandler(CommandResponseHandler commandResponseHandler) {
- this.commandResponseHandler = commandResponseHandler;
- }
-
-}
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoRunnableWithProgress.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoRunnableWithProgress.java
index b6ed2b8..5aa6fd2 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoRunnableWithProgress.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoRunnableWithProgress.java
@@ -1,8 +1,13 @@
package org.yocto.bc.remote.utils;

+import java.io.BufferedReader;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
+import java.util.concurrent.locks.Lock;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;

+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.ptp.remote.core.IRemoteConnection;
@@ -10,21 +15,39 @@ import org.eclipse.ptp.remote.core.IRemoteServices;
import org.eclipse.ptp.remote.core.exception.RemoteConnectionException;
import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.services.shells.IHostShell;
+import org.eclipse.swt.widgets.Display;

-public class YoctoRunnableWithProgress extends YoctoHostShellProcessAdapter
- implements IRunnableWithProgress {
+public class YoctoRunnableWithProgress implements IRunnableWithProgress {

private String taskName;
private IRemoteConnection remoteConnection;
private IRemoteServices remoteServices;
- private String cmd;
- private String args;
private IProgressMonitor monitor;
-
- public YoctoRunnableWithProgress(IHostShell hostShell,
- ProcessStreamBuffer processStreamBuffer,
- CommandResponseHandler commandResponseHandler) throws IOException {
- super(hostShell, processStreamBuffer, commandResponseHandler);
+ private ICalculatePercentage calculator;
+ private int reportedWorkload;
+
+ private YoctoCommand command;
+
+ public YoctoRunnableWithProgress(YoctoCommand command) throws IOException {
+ this.command = command;
+ this.calculator = new GitCalculatePercentage();
+ }
+
+ private interface ICalculatePercentage {
+ public float calWorkloadDone(String info) throws IllegalArgumentException;
+ }
+
+ private class GitCalculatePercentage implements ICalculatePercentage {
+ final Pattern pattern = Pattern.compile("^Receiving objects:\\s*(\\d+)%.*");
+ @Override
+ public float calWorkloadDone(String info) throws IllegalArgumentException {
+ Matcher m = pattern.matcher(info.trim());
+ if(m.matches()) {
+ return new Float(m.group(1)) / 100;
+ }else {
+ throw new IllegalArgumentException();
+ }
+ }
}

@Override
@@ -33,7 +56,7 @@ public class YoctoRunnableWithProgress extends YoctoHostShellProcessAdapter
try {
this.monitor = monitor;
this.monitor.beginTask(taskName, RemoteHelper.TOTALWORKLOAD);
-
+
if (!remoteConnection.isOpen()) {
try {
remoteConnection.open(monitor);
@@ -48,7 +71,8 @@ public class YoctoRunnableWithProgress extends YoctoHostShellProcessAdapter

try {
IHost connection = RemoteHelper.getRemoteConnectionByName(remoteConnection.getName());
- RemoteHelper.runCommandRemote(connection, new YoctoCommand(cmd, "", args));
+ YoctoThread th = new YoctoThread(connection, command);
+ th.run();
} catch (Exception e) {
e.printStackTrace();
} finally {
@@ -59,9 +83,132 @@ public class YoctoRunnableWithProgress extends YoctoHostShellProcessAdapter
}
}

- @Override
- public IProgressMonitor getOwnMonitor() {
- return monitor;
+
+ class YoctoThread implements Runnable{
+ private IHost connection;
+ private YoctoCommand command;
+ private CommandResponseHandler cmdHandler;
+ private IHostShell hostShell;
+
+ YoctoThread(IHost connection, YoctoCommand command){
+ this.connection = connection;
+ this.cmdHandler = RemoteHelper.getCommandHandler(connection);
+ this.command = command;
+ }
+
+ @Override
+ public void run() {
+ try {
+ hostShell = RemoteHelper.runCommandRemote(this.connection, command, monitor);
+ command.setProcessBuffer(processOutput());
+ } catch (CoreException e) {
+ e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ private ProcessStreamBuffer processOutput() throws Exception {
+ if (hostShell == null)
+ throw new Exception("An error has occured while trying to run remote command!");
+ monitor.beginTask(taskName, RemoteHelper.TOTALWORKLOAD);
+ Lock lock = hostShell.getStandardOutputReader().getReaderLock();
+ lock.lock();
+ ProcessStreamBuffer processBuffer = new ProcessStreamBuffer();
+ BufferedReader inbr = hostShell.getStandardOutputReader().getReader();
+ BufferedReader errbr = hostShell.getStandardErrorReader().getReader();
+ boolean cancel = false;
+ while (!cancel) {
+ if(monitor.isCanceled()) {
+ cancel = true;
+ lock.unlock();
+ throw new InterruptedException("User Cancelled");
+ }
+ StringBuffer buffer = new StringBuffer();
+ int c;
+ if (errbr != null) {
+ while ((c = errbr.read()) != -1) {
+ char ch = (char) c;
+ buffer.append(ch);
+ if (ch == '\n' || ch == '\r'){
+ String str = buffer.toString();
+ processBuffer.addOutputLine(str);
+ System.out.println(str);
+ if (ch == '\r')
+ reportProgress(str);
+ if (str.trim().equals(RemoteHelper.TERMINATOR)) {
+ break;
+ }
+ cmdHandler.response(str, false);
+ buffer.delete(0, buffer.length());
+ }
+ }
+ }
+ if (inbr != null) {
+ while ((c = inbr.read()) != -1) {
+ char ch = (char) c;
+ buffer.append(ch);
+ if (ch == '\n'){
+ String str = buffer.toString();
+ processBuffer.addOutputLine(str);
+ System.out.println(str);
+ if (str.trim().equals(RemoteHelper.TERMINATOR)) {
+ break;
+ }
+ cmdHandler.response(str, false);
+ buffer.delete(0, buffer.length());
+ }
+ }
+ }
+ cancel = true;
+ }
+ lock.unlock();
+ return processBuffer;
+ }
+ }
+ private void updateMonitor(final int work){
+
+ Display.getDefault().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ if (monitor != null) {
+ monitor.worked(work);
+ }
+ }
+
+ });
+ }
+
+ private void doneMonitor(){
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ monitor.done();
+ }
+ });
+ }
+
+ public void reportProgress(String info) {
+ if(calculator == null) {
+ updateMonitor(1);
+ } else {
+ float percentage;
+ try {
+ percentage = calculator.calWorkloadDone(info);
+ } catch (IllegalArgumentException e) {
+ System.out.println(info);
+ //can't get percentage
+ return;
+ }
+ int delta = (int) (RemoteHelper.TOTALWORKLOAD * percentage - reportedWorkload);
+ if( delta > 0 ) {
+ updateMonitor(delta);
+ reportedWorkload += delta;
+ }
+
+ if (reportedWorkload == RemoteHelper.TOTALWORKLOAD)
+ doneMonitor();
+ }
}

public IRemoteConnection getRemoteConnection() {
@@ -87,20 +234,4 @@ public class YoctoRunnableWithProgress extends YoctoHostShellProcessAdapter
public void setRemoteServices(IRemoteServices remoteServices) {
this.remoteServices = remoteServices;
}
-
- public String getCmd() {
- return cmd;
- }
-
- public void setCmd(String cmd) {
- this.cmd = cmd;
- }
-
- public String getArgs() {
- return args;
- }
-
- public void setArgs(String args) {
- this.args = args;
- }
}
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/NewBitBakeFileRecipeWizard.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/NewBitBakeFileRecipeWizard.java
index 7345b77..1f15922 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/NewBitBakeFileRecipeWizard.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/NewBitBakeFileRecipeWizard.java
@@ -204,7 +204,7 @@ public class NewBitBakeFileRecipeWizard extends Wizard implements INewWizard {
public void run(IProgressMonitor monitor) throws InvocationTargetException {
try {
doFinish(element, monitor);
- RemoteHelper.runCommandRemote(connection, new YoctoCommand("rm -rf " + element.getMetaDir() + "/temp", "", ""));
+ RemoteHelper.handleRunCommandRemote(connection, new YoctoCommand("rm -rf " + element.getMetaDir() + "/temp", "", ""), monitor);
} catch (Exception e) {
throw new InvocationTargetException(e);
} finally {
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/NewBitBakeFileRecipeWizardPage.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/NewBitBakeFileRecipeWizardPage.java
index c55f8d7..dd6feea 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/NewBitBakeFileRecipeWizardPage.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/NewBitBakeFileRecipeWizardPage.java
@@ -28,6 +28,7 @@ import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -91,7 +92,6 @@ public class NewBitBakeFileRecipeWizardPage extends WizardPage {
private static final String MIRRORS_FILE = "mirrors.bbclass";
private static final String CLASSES_FOLDER = "classes";
private static final String COPYING_FILE = "COPYING";
- private static final String WHITESPACES = "\\s+";
private static final String CMAKE_LIST = "cmakelists.txt";
private static final String CMAKE = "cmake";
private static final String SETUP_SCRIPT = "setup.py";
@@ -104,9 +104,9 @@ public class NewBitBakeFileRecipeWizardPage extends WizardPage {

private HashMap<String, String> mirrorTable;
private URI extractDir;
- private YoctoCommand licenseChecksumCmd;
- protected YoctoCommand md5YCmd;
- protected YoctoCommand sha256YCmd;
+ protected ProcessStreamBuffer md5Buffer;
+ protected ProcessStreamBuffer sha256Buffer;
+ protected ProcessStreamBuffer md5CopyingBuffer;

public NewBitBakeFileRecipeWizardPage(ISelection selection, IHost connection) {
super("wizardPage");
@@ -331,12 +331,11 @@ public class NewBitBakeFileRecipeWizardPage extends WizardPage {
}

private void handleLocalPopulate(URI srcURI, IProgressMonitor monitor) {
- populateLicenseFileChecksum(srcURI);
+ populateLicenseFileChecksum(srcURI, monitor);
populateInheritance(srcURI, monitor);
}

private void handleRemotePopulate(final URI srcURI, IProgressMonitor monitor) throws Exception {
- RemoteHelper.clearProcessBuffer(connection);
populateRecipeName(srcURI);

this.getContainer().run(true, true, new IRunnableWithProgress() {
@@ -345,47 +344,53 @@ public class NewBitBakeFileRecipeWizardPage extends WizardPage {
public void run(IProgressMonitor monitor) throws InvocationTargetException,
InterruptedException {
monitor.beginTask("Populating recipe fields ... ", 100);
- List<YoctoCommand> commands = new ArrayList<YoctoCommand>();

try {
String metaDirLocPath = metaDirLoc.getPath();
-
monitor.subTask("Cleaning environment");
- commands.add(new YoctoCommand("rm -rf " + TEMP_FOLDER_NAME, metaDirLocPath, ""));
- commands.add(new YoctoCommand( "mkdir " + TEMP_FOLDER_NAME, metaDirLocPath, ""));
+ YoctoCommand rmYCmd = new YoctoCommand("rm -rf " + TEMP_FOLDER_NAME, metaDirLocPath, "");
+ RemoteHelper.handleRunCommandRemote(connection, rmYCmd, new SubProgressMonitor(monitor, 5));
+
+ YoctoCommand mkdirYCmd = new YoctoCommand( "mkdir " + TEMP_FOLDER_NAME, metaDirLocPath, "");
+ RemoteHelper.handleRunCommandRemote(connection, mkdirYCmd, new SubProgressMonitor(monitor, 5));
+
updateTempFolderPath();
monitor.worked(10);

monitor.subTask("Downloading package sources");
- commands.add(new YoctoCommand("wget " + srcURI.toURL(), tempFolderPath, ""));

updateTempFolderPath();
- RemoteHelper.runBatchRemote(connection, commands, true);

- commands.clear();
+ YoctoCommand wgetYCmd = new YoctoCommand("wget " + srcURI.toURL(), tempFolderPath, "");
+ RemoteHelper.handleRunCommandRemote(connection, wgetYCmd, new SubProgressMonitor(monitor, 40));
+
monitor.worked(50);

monitor.subTask("Compute package checksums");
String md5Cmd = "md5sum " + srcFileNameExt;
- md5YCmd = new YoctoCommand(md5Cmd, tempFolderPath, "");
- RemoteHelper.runCommandRemote(connection, md5YCmd);
+ YoctoCommand md5YCmd = new YoctoCommand(md5Cmd, tempFolderPath, "");
+
+ RemoteHelper.handleRunCommandRemote(connection, md5YCmd, new SubProgressMonitor(monitor, 10));
+ md5Buffer = md5YCmd.getProcessBuffer();

monitor.worked(60);

String sha256Cmd = "sha256sum " + srcFileNameExt;
- sha256YCmd = new YoctoCommand(sha256Cmd, tempFolderPath, "");
- RemoteHelper.runCommandRemote(connection, sha256YCmd);
+ YoctoCommand sha256YCmd = new YoctoCommand(sha256Cmd, tempFolderPath, "");
+ RemoteHelper.handleRunCommandRemote(connection, sha256YCmd, new SubProgressMonitor(monitor, 10));
+ sha256Buffer = sha256YCmd.getProcessBuffer();

monitor.worked(70);

monitor.subTask("Extracting package");
- extractDir = extractPackage(srcURI);
+ extractDir = extractPackage(srcURI, new SubProgressMonitor(monitor, 0));
monitor.worked(80);

- licenseChecksumCmd = populateLicenseFileChecksum(extractDir);
+ YoctoCommand licenseChecksumCmd = populateLicenseFileChecksum(extractDir, new SubProgressMonitor(monitor, 10));
+ md5CopyingBuffer = licenseChecksumCmd.getProcessBuffer();

monitor.subTask("Creating mirror lookup table");
- mirrorTable = createMirrorLookupTable();
+ mirrorTable = createMirrorLookupTable(new SubProgressMonitor(monitor, 10));

monitor.worked(90);
monitor.done();
@@ -397,23 +402,15 @@ public class NewBitBakeFileRecipeWizardPage extends WizardPage {
updateSrcUri(mirrorTable, srcURI);
populateInheritance(extractDir, monitor);

- String md5Val = retrieveSum(srcFileNameExt, md5Pattern);
+ String md5Val = md5Buffer.getOutputLineContaining(srcFileNameExt, md5Pattern);
md5sumText.setText(Pattern.matches(md5Pattern, md5Val) ? md5Val : "");
- String sha256Val = retrieveSum(srcFileNameExt, sha256Pattern);
+ String sha256Val = sha256Buffer.getOutputLineContaining(srcFileNameExt, sha256Pattern);
sha256sumText.setText(Pattern.matches(sha256Pattern, sha256Val) ? sha256Val : "");
- String checkSumVal = retrieveSum(COPYING_FILE, md5Pattern);
+ String checkSumVal = md5CopyingBuffer.getOutputLineContaining(COPYING_FILE, md5Pattern);
checksumText.setText(RemoteHelper.createNewURI(extractDir, COPYING_FILE).toString() + ";md5=" + (Pattern.matches(md5Pattern, checkSumVal) ? checkSumVal : ""));
}

- private String retrieveSum(String arg, String pattern) {
- ProcessStreamBuffer buffer = RemoteHelper.getProcessBuffer(this.connection);
- String sum = buffer.getOutputLineContaining(arg, pattern);
- if (sum == null)
- return "";
- return sum;
- }
-
- private URI extractPackage(URI srcURI) {
+ private URI extractPackage(URI srcURI, IProgressMonitor monitor) {
try {
String path = srcFileNameExt;
String tarCmd = "tar ";
@@ -423,7 +420,7 @@ public class NewBitBakeFileRecipeWizardPage extends WizardPage {
tarCmd += "-xvf ";
}

- RemoteHelper.runCommandRemote(connection, new YoctoCommand(tarCmd + path, tempFolderPath, ""));
+ RemoteHelper.handleRunCommandRemote(connection, new YoctoCommand(tarCmd + path, tempFolderPath, ""), monitor);

return RemoteHelper.createNewURI(metaDirLoc, TEMP_FOLDER_NAME + "/" + srcFileName);

@@ -459,13 +456,13 @@ public class NewBitBakeFileRecipeWizardPage extends WizardPage {
}
}

- private YoctoCommand populateLicenseFileChecksum(URI extractDir) {
+ private YoctoCommand populateLicenseFileChecksum(URI extractDir, IProgressMonitor monitor) {
if (extractDir == null)
throw new RuntimeException("Something went wrong during source extraction!");

try {
YoctoCommand catCmd = new YoctoCommand("md5sum " + COPYING_FILE, extractDir.getPath(), "");
- RemoteHelper.runCommandRemote(connection, catCmd);
+ RemoteHelper.handleRunCommandRemote(connection, catCmd, monitor);
return catCmd;
} catch (Exception e) {
throw new RuntimeException("Unable to process file for MD5 calculation", e);
@@ -494,11 +491,11 @@ public class NewBitBakeFileRecipeWizardPage extends WizardPage {
return "";
}

- private HashMap<String, String> createMirrorLookupTable() throws Exception {
+ private HashMap<String, String> createMirrorLookupTable(IProgressMonitor monitor) throws Exception {
HashMap<String, String> mirrorMap = new HashMap<String, String>();

YoctoCommand cmd = new YoctoCommand("cat " + MIRRORS_FILE, getMetaFolderPath() + CLASSES_FOLDER, "");
- RemoteHelper.runCommandRemote(connection, cmd);
+ RemoteHelper.handleRunCommandRemote(connection, cmd, monitor);

if (!cmd.getProcessBuffer().hasErrors()){
String delims = "[\\t]+";
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/install/InstallWizard.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/install/InstallWizard.java
index 4fbaca3..071f6aa 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/install/InstallWizard.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/install/InstallWizard.java
@@ -6,7 +6,6 @@ import java.util.Hashtable;
import java.util.Map;

import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.IWizardContainer;
@@ -20,6 +19,7 @@ import org.eclipse.ui.console.MessageConsole;
import org.yocto.bc.remote.utils.CommandResponseHandler;
import org.yocto.bc.remote.utils.ConsoleWriter;
import org.yocto.bc.remote.utils.RemoteHelper;
+import org.yocto.bc.remote.utils.YoctoCommand;
import org.yocto.bc.remote.utils.YoctoRunnableWithProgress;
import org.yocto.bc.ui.Activator;
import org.yocto.bc.ui.model.ProjectInfo;
@@ -112,18 +112,17 @@ public class InstallWizard extends FiniteStateWizard implements IWorkbenchWizard
IRemoteServices remoteServices = ((IRemoteServices)model.get(InstallWizard.SELECTED_REMOTE_SERVICE));
final IHost connection = RemoteHelper.getRemoteConnectionByName(remoteConnection.getName());
final CommandResponseHandler cmdHandler = RemoteHelper.getCommandHandler(connection);
- final YoctoRunnableWithProgress adapter = (YoctoRunnableWithProgress)RemoteHelper.getHostShellProcessAdapter(connection);
final IWizardContainer container = this.getContainer();
if (((Boolean)options.get(GIT_CLONE)).booleanValue()) {
String cmd = "/usr/bin/git clone --progress";
String args = "git://git.yoctoproject.org/poky.git " + uri.getPath();
String taskName = "Checking out Yocto git repository";

+ YoctoRunnableWithProgress adapter = new YoctoRunnableWithProgress(new YoctoCommand(cmd, "", args));
+
adapter.setRemoteConnection(remoteConnection);
adapter.setRemoteServices(remoteServices);
adapter.setTaskName(taskName);
- adapter.setCmd(cmd);
- adapter.setArgs(args);
try {
container.run(true, true, adapter);
} catch (InvocationTargetException e) {
@@ -148,31 +147,15 @@ public class InstallWizard extends FiniteStateWizard implements IWorkbenchWizard
pinfo.setRemoteServices(remoteServices);

final ConsoleWriter cw = new ConsoleWriter();
- final ProjectInfo pInfoFinal = pinfo;
-
- Thread t = new Thread(new Runnable() {
-
- @Override
- public void run() {
- try {
- Thread.sleep(2000);
- new BBConfigurationInitializeOperation(pInfoFinal, null).run(new NullProgressMonitor());
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- });
-
+// final ProjectInfo pInfoFinal = pinfo;
+ container.run(false, false, new BBConfigurationInitializeOperation(pinfo, null));
console = RemoteHelper.getConsole(connection);
console.newMessageStream().println(cw.getContents());

model.put(InstallWizard.KEY_PINFO, pinfo);
Activator.putProjInfo(pinfo.getURI(), pinfo);

- container.run(true, true, new CreateBBCProjectOperation(pinfo));
- t.start();
+ container.run(false, false, new CreateBBCProjectOperation(pinfo));
return true;
}
} catch (Exception e) {
--
1.7.9.5


YPDD access code.

Scott Garman <scott.a.garman@...>
 

Hello,

To Yocto core team members who will be attending YPDD at ELC in February - the access code this year for Yocto staff is YPDD13STF. You will be asked to provide this code while registering for ELC.

Scott

--
Scott Garman
Embedded Linux Engineer - Yocto Project
Intel Open Source Technology Center


Re: How to force newly-compiled busybox into core-image-minimal (restating an earlier post)

Gary Thomas
 

On 2013-01-16 12:02, Brian Smucker wrote:
Hello all,

I'm not sure if my prior question was unclear or if the question was something nobody knows the answer to.

I think there's probably a simple answer, but maybe not.

So the background is this: A poky/danny setup where I have previously-compiled core-image-minimal.

I force busybox to be recompiled: bitbake -c -f compile busybox
I clean core-image-minimal: bitbake -c -f cleansstate core-image-minimal
I rebuild the core image: bitbake core-image-minimal

Result: The busybox that is included in the core-image rootfs is a busybox that was compiled earlier. It has an earlier timestamp.

Question: How do I force the newly-compiled busybox to be included in the core-image rootfs, so that the rootfs generation process does not retrieve some stale version of busybox
from a cache somewhere? (Without deleting the tmp directory. I know that works.)

There's got to be a simple answer.

Thanks,

Brian

ps. This is merely an interim way to test a particular permutation of the busybox config. I know how to make a recipe using bbappend and a new defconfig for busybox. But I want
to do a series of quick-and-dirty tests with various busybox config options.
The problem is that your rebuild of busybox only ran the compile step,
not any of the install or packaging steps.

Thankfully there is a new bitbake option which makes this much easier.
See if this does what you want:
% bitbake busybox -C compile
% bitbake core-image-minimal

--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------


How to force newly-compiled busybox into core-image-minimal (restating an earlier post)

Brian Smucker
 

Hello all,

I'm not sure if my prior question was unclear or if the question was something nobody knows the answer to.

I think there's probably a simple answer, but maybe not.

So the background is this: A poky/danny setup where I have previously-compiled core-image-minimal.

I force busybox to be recompiled: bitbake -c -f compile busybox
I clean core-image-minimal: bitbake -c -f cleansstate core-image-minimal
I rebuild the core image: bitbake core-image-minimal

Result: The busybox that is included in the core-image rootfs is a busybox that was compiled earlier. It has an earlier timestamp.

Question: How do I force the newly-compiled busybox to be included in the core-image rootfs, so that the rootfs generation process does not retrieve some stale version of busybox from a cache somewhere? (Without deleting the tmp directory. I know that works.)

There's got to be a simple answer.

Thanks,

Brian

ps. This is merely an interim way to test a particular permutation of the busybox config. I know how to make a recipe using bbappend and a new defconfig for busybox. But I want to do a series of quick-and-dirty tests with various busybox config options.


Re: Busybox still old version: Still looking for a clear understanding of an old mystery.

Autif Khan <autif.mlist@...>
 

On Wed, Jan 16, 2013 at 10:23 AM, Brian Smucker <bds@...> wrote:
Hi,

The version of busybox is the same. I've just temporarily done a bitbake -c
menuconfig to change one of the options, recompiled using the custom config
that's generated, and now I want to force its inclusion into
core-image-minimal.
I see. I think that is a bit unorthodox. (Mostly because I have never
tried it. Is it even supposed to work like you describe? I suppose
not. But that aside ...)

If I were doing this, I would create a busybox bbappend in my meta
layer and override the danny stock do_prepare_config() (in
meta/recipes-core/busybox/busybox.inc)

96 do_prepare_config () {
97 sed -e 's#@DATADIR@#${datadir}#g' \
98 < ${WORKDIR}/defconfig > ${S}/.config
99 sed -i -e '/CONFIG_STATIC/d' .config
100 echo "# CONFIG_STATIC is not set" >> .config
101 for i in 'CROSS' 'DISTRO FEATURES'; do echo "### $i"; done >> \
102 ${S}/.config
103 sed -i -e '${configmangle}' ${S}/.config
104 if test ${DO_IPv4} -eq 0 && test ${DO_IPv6} -eq 0; then
105 # disable networking applets
106 mv ${S}/.config ${S}/.config.oe-tmp
107 awk 'BEGIN{net=0}
108 /^# Networking Utilities/{net=1}
109 /^#$/{if(net){net=net+1}}
110 {if(net==2&&$0 !~ /^#/&&$1){print("# "$1" is not
set")}else{print}}' \
111 ${S}/.config.oe-tmp > ${S}/.config
112 fi
113 }

Thanks,

Brian


On 1/16/2013 6:13 AM, Autif Khan wrote:

On Tue, Jan 15, 2013 at 6:57 PM, Brian Smucker <bds@...>
wrote:

Hi Rudolf,


On 1/15/2013 3:28 PM, Rudolf Streif wrote:


Brian,

What are you exactly referring to as "new version"? The package version
that bitbake builds is defined by the recipe, through the version
designation in the recipe's file name or through explicitly setting PV.

I think what you are trying to do is to modify the busybox configuration
and then recompile and package. Bitbake will not automatically recompile
after menuconfig. Menuconfig does not invslidate the shared state cache.
Try
this:

bitbake -c menuconfig busybox
bitbake -c -f compile busybox
bitbake busybox

So I have done the above. That is not the question. Busybox compiles
fine
and the new unstripped busybox is in the

.../yocto/tmp/work/armv4t-poky-linux-gnueabi/busybox-1.20.2-r2/busybox-1.20.2/
What is the new version of busybox?

What is the full filename of the new recipe that you created to
compile a new version of busybox? For example the old one is
busybox_1.20.2.bb (in meta/recipes-core/busybox)

Also, can you please paste the .bb file in the email

My question is that after compiling busybox, I do

bitbake -c cleansstate core-image-minimal
bitbake core-image-minimal

expecting that the core image generated will contain the new busybox. It
does not, it contains a busybox copy that was compiled days ago, not the
custom one I just compiled.

Why is this? How can I force the bitbake to include the newly-compiled
busybox into my minimal image?


Thanks,

Brian

_______________________________________________
yocto mailing list
yocto@...
https://lists.yoctoproject.org/listinfo/yocto


Re: Remove unwanted package from Qt

Jon Szymaniak <jon.szymaniak@...>
 

On Wed, Jan 16, 2013 at 1:14 PM, Paul Eggleton
<paul.eggleton@...> wrote:

On Wednesday 16 January 2013 23:26:20 Navani Srivastava wrote:
On Thu, Dec 27, 2012 at 11:08 PM, Jon Szymaniak
<jon.szymaniak@...>wrote:
I am compiling Qt-4.8.0 with poky-denzil-7.0 for arm1136
architecture.

At the time of integrating qt-embedded with rootfs, I am getting
qtopia
directory in usr/share path of rootfs.

I tried removing qtopia directory through qt recipe but ended in
compilation error. Please suggest any idea to remove qtopia from
share
directory.
I ran into this as well after using a bbappend to disable a number
of
Qt features, including the building of demos that get staged in the
aforementioned path. In my case, that qtopia directory (and any
subdirectories) wound up either being empty or containing files that
were unnecessary for my build.

My quick and dirty solution was to just to add a install_append()
containing a 'rm -rf ${D}${datadir}/qtopia' in my bbappend. (Be sure
you don't have anything important in there!) I'd be curious to hear
if
there's a better approach to this as well...
Oops...just wanted to note the typo in my above response -- I'm not at
a machine where I have access to my recipes.

That should be a do_install_append(), not install_append(). I'd also
double check the qtopia path, as I wrote that from memory, which may
not be reliable. ;)
I tried the same but again ended up with error. As of now i am removing
all
unwanted things from rootfs by making changes in image_types.bbclass. I
am
sure this is not the correct way, any ideas are appreciated..
Can I ask both of you exactly how you are getting Qt installed into the
image?

Cheers,
Paul

--

Paul Eggleton
Intel Open Source Technology Centre
I'm not doing anything too unusual for "installing" Qt. My recipes for
my Qt application simply inherit qt4e, and list qt4-embedded in
DEPENDS.

The only place where I deviated a bit from the norm is that I use a
qt4-embedded_4.8.3.bbappend to set up QT_CONFIG_FLAGS exactly as I
want them, and to rm ${D}/usr/bin/qtopia. Below's my bbappend. I'd be
interested to hear if there's a better way to clean out unneeded
directories from a rootfs (in my case ${D}/usr/bin/qtopia).

DEPENDS = "qt4-tools-native freetype jpeg libpng zlib"

# Override provided recipe and configure Qt4 to...
# - Disable irrelevant functionality and output
# - Disable SQL Plugins
# - Disable unused input/ouput
# - Have keyboard input and mouse input via /dev/input/mice
# - Have Linux framebuffer support
# - Use QML (so we need the declarative engine)
#
# Note, some of these might be extraneous, and this is a work in progress.
# (You've been warned!)
QT_CONFIG_FLAGS = "\
-embedded ${QT_ARCH} -qtlibinfix ${QT_LIBINFIX} \
-release -no-rpath -reduce-relocations -shared -no-exceptions \
-no-mmx -no-3dnow -no-sse -no-sse2 -no-sse3 -no-sse4.1 -no-sse4.2 -no-avx \
-no-glib -no-largefile -no-accessibility -no-openssl -no-gtkstyle \
-no-xcursor -no-xinerama -no-phonon -no-phonon-backend -no-svg -no-webkit \
-no-libmng -no-accessibility -no-qt3support -no-xmlpatterns \
-no-audio-backend -no-gif -nomake examples -nomake demos -no-javascript-jit \
-no-nis -no-cups -no-declarative-debug \
-no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc \
-no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds \
-no-xkb -no-kbd-tty -no-kbd-qnx -no-mouse-linuxinput \
-no-mouse-tslib -no-mouse-qnx -no-mouse-linuxtp \
-qt-mouse-pc -qt-kbd-linuxinput \
-qt-gfx-linuxfb -qt-gfx-multiscreen \
-depths 8,16,24,32 \
-declarative -script"

PRINC := "${@int(PRINC) + 1}"

# Despite not building them, qt4.inc creates /usr/bin/qtopia/ with
# only demo/ and example/ underneath. Let's get rid of these...
do_install_append() {
rm -rf ${D}/usr/bin/qtopia
}