**Q:***I opened a terminal in the TPC main directory, but none of the TPC scripts (e.g., `tpc`, `itpc`, ...) can be found.*
**A:** You need to source `setup.sh` to setup TPC, i.e., go into the directory and `. setup.sh`. Now the scripts should be in the `$PATH` and TPC is ready to use.
---
**Q:***How do I build the libraries with logging support?*
**A:** Use the `tpc-build-libs` script from `$TPC_HOME/bin`: `tpc-build-libs --mode debug`. Details on its usage are available via `tpc-build-libs --help`.
---
**Q:***How do I build the device driver?*
**A:** It is also built by the `tpc-build-libs` script from `$TPC_HOME/bin`: `tpc-build-libs --mode driver_debug` enables extensive logging in the kernel module (beware of the performance impact!). For further details see `tpc-build-libs --help`.
Please note that this step is highly Platform-dependent and will require additional packages from your Linux installation, e.g., the kernel headers and build dependencies.
---
**Q:***What's the easiest way to work with the Zynq devices?*
**A:** Probably the simplest approach is to checkout the TPC git directly on the device using using a Linux SD card image. Then you can build the software parts directly on the device without cross-compiling. A pre-built image can be found in the [Downloads section](http://www.esa.cs.tu-darmstadt.de/public/ThreadPoolComposer-2016.03-zedboard.tar.xz).
_Note: The image contains an outdated version of TPC: After logging in via `ssh` (see the `README.md` in the archive for further details), please delete the `threadpoolcomposer` directory entirely and re-clone this git._
---
**Q:***Vivado crashes during evaluation of custom IP or place and route with an error log similar to this:*
**A:** This is a known bug in Vivado cause by a double free; it only occurs on machine that support the `TSX` instruction(s) and have a `glibc` built with `--enable-lock-elision`. If possible, switch to a Xilinx supported version of your operating system. If that is not an option, you can re-build `glibc` without `TSX` lock elision, more details on the bug and the solution [can be found here](https://github.com/MyrtleSoftware/glibc-no-lock-elision). It says "Tested only on Ubuntu 15.10." on the page, but we can confirm it works for Ubunutu 16.04, too.
*Note: After sourcing the Vivado settings scripts, you need to unset the LD_LIBRARY_PATH environment variable to avoid linking errors:*`unset LD_LIBRARY_PATH`