FTBFS: gnuradio over cell (--enable-gcell)

Hello,

I got the following error while compiling over a CELL platform with
–enable-gcell,

In file included from
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_jd_queue_data.h:25,
from
/home/hecormar/GNURADIO/trunk/gcell/src/include/spu/gc_jd_queue.h:25,
from ./…/runtime/spu/gc_spu_jd_queue.c:22:
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_types.h:25:20:
error: stdint.h: No such file or directory
In file included from
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_jd_queue_data.h:25,
from
/home/hecormar/GNURADIO/trunk/gcell/src/include/spu/gc_jd_queue.h:25,
from ./…/runtime/spu/gc_spu_jd_queue.c:22:
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_types.h:43: error:
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘gc_eaddr_t’
In file included from
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_job_desc.h:46,
from
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_jd_queue_data.h:26,
from
/home/hecormar/GNURADIO/trunk/gcell/src/include/spu/gc_jd_queue.h:25,
from ./…/runtime/spu/gc_spu_jd_queue.c:22:
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_job_desc_private.h:32:
error: expected specifier-qualifier-list before ‘gc_eaddr_t’
In file included from
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_jd_queue_data.h:26,
from
/home/hecormar/GNURADIO/trunk/gcell/src/include/spu/gc_jd_queue.h:25,
from ./…/runtime/spu/gc_spu_jd_queue.c:22:
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_job_desc.h:57:
error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before
‘gc_proc_id_t’
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_job_desc.h:108:
error: expected specifier-qualifier-list before ‘int32_t’
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_job_desc.h:125:
error: expected specifier-qualifier-list before ‘uint32_t’
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_job_desc.h:143:
error: expected specifier-qualifier-list before ‘gc_eaddr_t’
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_job_desc.h:166:
error: expected specifier-qualifier-list before ‘uint32_t’
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_job_desc.h:179:
error: expected specifier-qualifier-list before ‘gc_proc_id_t’
In file included from
/home/hecormar/GNURADIO/trunk/gcell/src/include/spu/gc_jd_queue.h:25,
from ./…/runtime/spu/gc_spu_jd_queue.c:22:
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_jd_queue_data.h:41:
error: expected specifier-qualifier-list before ‘gc_eaddr_t’
In file included from ./…/runtime/spu/gc_spu_jd_queue.c:22:
/home/hecormar/GNURADIO/trunk/gcell/src/include/spu/gc_jd_queue.h:44:
error: expected ‘)’ before ‘q’
/home/hecormar/GNURADIO/trunk/gcell/src/include/spu/gc_jd_queue.h:54:
error: expected ‘)’ before ‘q’
In file included from
…/…/…/…/gcell/src/ibm/sync/spu_source/mutex.h:46,
from
…/…/…/…/gcell/src/ibm/sync/spu_source/mutex_lock.h:45,
from ./…/runtime/spu/gc_spu_jd_queue.c:23:
/usr/lib/gcc/spu/4.1.1/include/spu_mfcio.h:42: error: expected
specifier-qualifier-list before ‘uint64_t’
./…/runtime/spu/gc_spu_jd_queue.c:29: error: expected ‘)’ before ‘q’
./…/runtime/spu/gc_spu_jd_queue.c:97: error: expected ‘)’ before ‘q’
make[5]: *** [gc_spu_jd_queue.o] Error 1
make[4]: *** [all-recursive] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

On Tue, May 06, 2008 at 01:05:01PM +0100, Hector Oron wrote:

Hello,

I got the following error while compiling over a CELL platform with
–enable-gcell,

Be sure to use

./bootstrap
./configure-cell-cross --prefix=
make

The “configure-cell-cross” command is misnamed. You still need to use
it when compiling natively on the cell. Note that we almost never
natively compile because even on the QS21, it’s dog slow.

Given that it’s failing to find stdint.h, I suspect something else may
be wrong too.

What OS and version are you running? We’re mostly running Fedora 8.
Do you have the SDK 3.0 installed?

You may also want to take a look at
http://gnuradio.org/trac/wiki/CrossCompilingForCell

Eric

In file included from
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_jd_queue_data.h:25,
from
/home/hecormar/GNURADIO/trunk/gcell/src/include/spu/gc_jd_queue.h:25,
from ./…/runtime/spu/gc_spu_jd_queue.c:22:
/home/hecormar/GNURADIO/trunk/gcell/src/include/gc_types.h:25:20:
error: stdint.h: No such file or directory

               ^
               |

The real problem --+

Hello Eric,

./bootstrap
./configure-cell-cross --prefix=
make

I miss that part, i did
./configure --enable-gcell

Given that it’s failing to find stdint.h, I suspect something else may
be wrong too.

What OS and version are you running? We’re mostly running Fedora 8.
Do you have the SDK 3.0 installed?

That log is from a Fedora 8 without SDK3.0. Do i need it to build
gnuradio? I just have the open packages from BSC installed (ppu and
spu toolchains)
I also have Debian (32bit without SDK and a 64 bit chroot with SDK
support) installed in other box. I did built Bdale’s packages for
gnuradio (without gcell), now, i’m trying to build svn code with gcell
support.

You may also want to take a look at
http://gnuradio.org/trac/wiki/CrossCompilingForCell

I saw that one, but i was doing native compiling, so… i did not pay
much attention.

Regards

but gcc is.
[Debian OS]

[email protected]:~/trunk$ ./configure --prefix=/usr --enable-gcell
[…]
checking boost/shared_ptr.hpp usability… yes
checking boost/shared_ptr.hpp presence… yes
checking for boost/shared_ptr.hpp… yes
checking for svn… /usr/bin/svn
Component omnithread passed configuration checks; building.
Component pmt requires guile, which was not found.
Not building component pmt.
Component mblock requires pmt, which is not being built or specified
via pre-installed files.
Not building component mblock.
Component gcell requires mblock, which is not being built or specified
via pre-installed files.
configure: error: Component gcell has errors; stopping.

[Fedora 8]
./configure-cell-cross --prefix=/usr is doing fine.
make on the run (let’s wait a while…)

Regards

./bootstrap
./configure-cell-cross --prefix=
make

The “configure-cell-cross” command is misnamed. You still need to use
it when compiling natively on the cell. Note that we almost never
natively compile because even on the QS21, it’s dog slow.

Using configure-cell-cross leads me to a configure error, when looking
for compiler ppu32-gcc which it is not installed natively (on Debian)
but gcc is.

Hello Eric,

I have got to this point, is there some black magic arround
{ppu,spu}_intrinsics.h?

[email protected]:~/trunk# find / -name ppu_intrinsics.h
/opt/ibmcmp/xlc/ssc/0.9/include/ppu_intrinsics.h
/usr/lib/gcc/ppu/4.1.1/include/ppu_intrinsics.h

make[5]: Entering directory /home/hecormar/trunk/gcell/src/lib/runtime' /bin/sh ../../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../../.. -DOMNITHREAD_POSIX=1 -I/home/hecormar/trunk/omnithread -I/home/hecormar/trunk/mblock/src/lib -I/home/hecormar/trunk/gcell/src/include -I/home/hecormar/trunk/gcell/src/lib/runtime -I/home/hecormar/trunk/gcell/src/lib/general -I/home/hecormar/trunk/gcell/src/lib/wrapper -I../../../../gcell/src/ibm/sync/ppu_source -g -O2 -Wall -Woverloaded-virtual -pthread -MT gc_job_manager_impl.lo -MD -MP -MF .deps/gc_job_manager_impl.Tpo -c -o gc_job_manager_impl.lo gc_job_manager_impl.cc g++ -DHAVE_CONFIG_H -I. -I../../../.. -DOMNITHREAD_POSIX=1 -I/home/hecormar/trunk/omnithread -I/home/hecormar/trunk/mblock/src/lib -I/home/hecormar/trunk/gcell/src/include -I/home/hecormar/trunk/gcell/src/lib/runtime -I/home/hecormar/trunk/gcell/src/lib/general -I/home/hecormar/trunk/gcell/src/lib/wrapper -I../../../../gcell/src/ibm/sync/ppu_source -g -O2 -Wall -Woverloaded-virtual -pthread -MT gc_job_manager_impl.lo -MD -MP -MF .deps/gc_job_manager_impl.Tpo -c gc_job_manager_impl.cc -fPIC -DPIC -o .libs/gc_job_manager_impl.o In file included from gc_job_manager_impl.cc:32: ../../../../gcell/src/ibm/sync/ppu_source/atomic_dec_if_positive.h:44:28: error: ppu_intrinsics.h: No such file or directory ../../../../gcell/src/ibm/sync/ppu_source/atomic.h: In function 'int _atomic_replace(atomic_ea_t, int)': ../../../../gcell/src/ibm/sync/ppu_source/atomic.h:84: error: '__lwarx' was not declared in this scope ../../../../gcell/src/ibm/sync/ppu_source/atomic.h:85: error: '__stwcx' was not declared in this scope ../../../../gcell/src/ibm/sync/ppu_source/atomic.h: In function 'int _atomic_modify(atomic_ea_t, int)': ../../../../gcell/src/ibm/sync/ppu_source/atomic.h:103: error: '__lwarx' was not declared in this scope ../../../../gcell/src/ibm/sync/ppu_source/atomic.h:105: error: '__stwcx' was not declared in this scope ../../../../gcell/src/ibm/sync/ppu_source/atomic_dec_if_positive.h: In function 'int _atomic_dec_if_positive(atomic_ea_t)': ../../../../gcell/src/ibm/sync/ppu_source/atomic_dec_if_positive.h:68: error: '__lwarx' was not declared in this scope ../../../../gcell/src/ibm/sync/ppu_source/atomic_dec_if_positive.h:71: error: '__stwcx' was not declared in this scope /home/hecormar/trunk/gcell/src/include/memory_barrier.h: In function 'void smp_mb()': /home/hecormar/trunk/gcell/src/include/memory_barrier.h:52: error: '__sync' was not declared in this scope /home/hecormar/trunk/gcell/src/include/memory_barrier.h: In function 'void smp_rmb()': /home/hecormar/trunk/gcell/src/include/memory_barrier.h:57: error: '__lwsync' was not declared in this scope /home/hecormar/trunk/gcell/src/include/memory_barrier.h: In function 'void smp_wmb()': /home/hecormar/trunk/gcell/src/include/memory_barrier.h:62: error: '__eieio' was not declared in this scope gc_job_manager_impl.cc: In constructor 'gc_job_manager_impl::gc_job_manager_impl(const gc_jm_options*)': gc_job_manager_impl.cc:265: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' gc_job_manager_impl.cc:265: warning: format '%x' expects type 'unsigned int', but argument 3 has type 'long unsigned int' make[5]: *** [gc_job_manager_impl.lo] Error 1 make[5]: Leaving directory/home/hecormar/trunk/gcell/src/lib/runtime’
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory /home/hecormar/trunk/gcell/src/lib' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory/home/hecormar/trunk/gcell/src’
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory /home/hecormar/trunk/gcell' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory/home/hecormar/trunk’
make: *** [all] Error 2

On Tue, May 06, 2008 at 03:10:17PM +0100, Hector Oron wrote:

Hello Eric,

./bootstrap
./configure-cell-cross --prefix=
make

I miss that part, i did
./configure --enable-gcell

Given that it’s failing to find stdint.h, I suspect something else may
be wrong too.

What OS and version are you running? We’re mostly running Fedora 8.
Do you have the SDK 3.0 installed?

That log is from a Fedora 8 without SDK3.0. Do i need it to build
gnuradio? I just have the open packages from BSC installed (ppu and
spu toolchains)

It might work, but you’re in uncharted territory.
Does your system have spu_intrinsics.h and ppu_intrinsics.h ?

I also have Debian (32bit without SDK and a 64 bit chroot with SDK
support) installed in other box. I did built Bdale’s packages for
gnuradio (without gcell), now, i’m trying to build svn code with gcell
support.

You may also want to take a look at
http://gnuradio.org/trac/wiki/CrossCompilingForCell

I saw that one, but i was doing native compiling, so… i did not pay
much attention.

OK. Be sure to take a look at the configure-cell-cross script.
It sets up a bunch of stuff so that we can find it.

Eric

On Tue, May 06, 2008 at 11:11:54PM +0100, Hector Oron wrote:

Hello Eric,

I have got to this point, is there some black magic arround
{ppu,spu}_intrinsics.h?

There’s no black magic if you’re using the correct compiler.

What answer does

$ g++ --version

give?

If it’s not 4.1.1 it won’t find the compiler specific includes in
/usr/lib/gcc/ppu/4.1.1/include

There is a reason I was setting setting CXX to ppu32-g++
It gets me the known good compiler, and it defaults to generating
32-bit code. I believe you are generating 64-bit code, which is a
total waste on the Cell.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs