Question: I'm new to embedded and am reading 'Embedded Linux Primer' at the moment.

I tried to build an xscale arm kernel: 

```
make ARCH=arm CROSS_COMPILE=xscale_be- ixp4xx_defconfig
#
# configuration written to .config

```

followed by the make:

```
~/linux-stable$ make ARCH=arm CROSS_COMPILE=xscale_be- zImage
make: xscale_be-gcc: Command not found
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CC      kernel/bounds.s
/bin/sh: 1: xscale_be-gcc: not found
make[1]: *** [kernel/bounds.s] Error 127
make: *** [prepare0] Error 2

```

I had downloaded and extracted gcc-arm-none-eabi-4\_9-2014q4 from
<https://launchpad.net/gcc-arm-embedded>

and set the path

PATH=/opt/gcc-arm-none-eabi-4\_9-2014q4/bin/

Do I need another compiler for the xscale architecture?

Any ideas where I can find xscale\_be-gcc?

Answer: 
You could use named pipes (<http://linux.die.net/man/1/mkfifo>) on the command line of `tee` and have the commands reading on the named pipes.

```
mkfifo /tmp/data0 /tmp/data1 /tmp/data2
cmd0 < /tmp/data0 & cmd1 < /tmp/data1 & cmd2 < /tmp/data2 &
command -option1 -option2 argument | tee /tmp/data0 /tmp/data1 /tmp/data2

```

When `command` finishes, `tee` will close the named pipes, which will signal an EOF (read of 0 bytes) on each of the `/tmp/dataN` which would normally terminate the `cmdN` processes. Real example:

```
$ mkfifo /tmp/data0 /tmp/data1 /tmp/data2
$ wc -l < /tmp/data0 & wc -w < /tmp/data1 & wc -c < /tmp/data2 &
$ tee /tmp/data0 /tmp/data1 /tmp/data2 < /etc/passwd >/dev/null
$ 61
1974
37

```

Because of the background processes, the shell returned a prompt before the program output. All three instances of `wc` terminated normally.
At least in [bash](/questions/tagged/bash "show questions tagged 'bash'") you can skip `mkfifo` using process substitution:

```
command -option1 -option2 argument | tee >(cmd1) >(cmd2) >(cmd3)

```

or to adopt [Arcege's example](https://unix.stackexchange.com/a/188933/863)

```
tee >(wc -l) >(wc -w) >(wc -c) < /etc/passwd >/dev/null

```