| Build Notes for POSIX Test Suite |
| ================================ |
| Last update : 2010-07-10 updated for LTP-head (based off of posixtestsuite 1.40) |
| |
| The POSIX Test Suite should be able to be run independently of any given |
| OS, so the OS-specific steps for configuring the POSIX Test Suite to run |
| are currently manual. |
| |
| IN GENERAL |
| ========== |
| In general, when calling *make: |
| - If you need to pass in any header locations, preprocessor definitions, etc, |
| set the value via CFLAGS. |
| - If you need to pass in any libraries for linking, set the value via LDLIBS. |
| - If you need to pass any other values to the linker, set the value via LDFLAGS. |
| - Each subdirectory optionally contains one of the above files to denote the |
| fact that it needs special linker flags, preprocessor defines, etc. This is |
| done in this fashion to ensure that the requirements for each subdirectory is |
| correctly tuned in a deterministic manner. |
| |
| FREEBSD |
| ======= |
| |
| ================ |
| Asynchronous I/O |
| ================ |
| Realtime asynchronous I/O has been available in FreeBSD since 5.x. Please add: |
| |
| options VFS_AIO |
| |
| to your kernel conf or build, install, and load the aio module. |
| |
| ================ |
| Message Queues |
| ================ |
| POSIX message queues have been available in FreeBSD since 6.x. Please add: |
| |
| options P1003_1B_MQUEUE |
| |
| to your kernel conf or build and install the mqueue module, and load it with: |
| |
| kldload mqueuefs |
| |
| ================ |
| Realtime Support |
| ================ |
| Realtime support has been available for a long time (I think 3.x). Please add: |
| |
| options _KPOSIX_PRIORITY_SCHEDULING |
| |
| to your kernel conf. There isn't a corresponding module for this feature. |
| |
| ================ |
| Semaphores |
| ================ |
| POSIX semaphores have been available in FreeBSD since 5.x. Please add: |
| |
| options P1003_1B_SEMAPHORES |
| |
| to your kernel conf or build, install, and load the sem module. |
| |
| LINUX |
| ===== |
| Notes for running POSIX Test Suite against Linux implementations of |
| POSIX functionality. (Note: If these implementations are accepted into |
| the kernel, then the manual intervention will no longer apply, and we will |
| update this document.) |
| |
| Please refer to your linux distribution's manual for the kernel and |
| library information. |
| |
| Notes for each test section are here. It is targeted for general linux |
| kernel 2.6 and glibc-2.3.3. |
| |
| ======= |
| Threads |
| ======= |
| |
| LinuxThreads |
| ------------- |
| If LinuxThreads is the default POSIX thread implementation, |
| to build against LinuxThreads, add '-lpthread' to LDLIBS. |
| |
| NPTL |
| ---- |
| If NPTL is the default POSIX thread implementation, add '-lpthread' to LDLIBS. |
| |
| Otherwise, to build against NPTL, export the following variable: |
| |
| export GLIBCDIR=/path/to/NPTL/libc-build |
| |
| Then in LDFLAGS, add the following lines: |
| |
| $GLIBCDIR/nptl/libpthread.so.0 $GLIBCDIR/libc.so.6 -Wl,-rpath,$GLIBCDIR:$GLIBCDIR/nptl:$GLIBCDIR/elf,-dynamic-linker,$GLIBCDIR/elf/ld-linux.so.2 |
| |
| NGPT |
| ---- |
| To build against NGPT, export the following variables: |
| |
| export LD_PRELOAD=libpthread.so.0 |
| export LD_LIBRARY_PATH="/usr/lib:/lib:$LD_LIBRARY_PATH" |
| |
| Then make sure to add '-lpthread' to LDLIBS. |
| |
| ============== |
| Message Queues |
| ============== |
| POSIX Message Queue (Wronski/Benedyczak's implementation) has been |
| included into linux kernel since 2.6.4-rc1-mm1. |
| But you still need to install a user library at the time of writing this |
| document. |
| |
| posix1b |
| ------- |
| To build against the posix1b message queues, see the semaphores information for posix1b. |
| Also, add -I/usr/include/posix1b/ to CPPFLAGS. |
| |
| Wronski/Benedyczak |
| ------------------ |
| To build against the Michal Wronski/Krzysztof Benedyczak message queues, |
| install the kernel patches from http://www.mat.uni.torun.pl/~wrona/posix_ipc/ |
| and then build the user library from the same site. Add '-lmqueue' to |
| LDLIBS to run tests. |
| To create the message queue file system, do: |
| # mkdir /dev/mqueue |
| # mount -t mqueue none /dev/mqueue |
| |
| ========== |
| Semaphores |
| ========== |
| NPTL |
| ---- |
| If NPTL is installed as default POSIX thread library, set '-lpthread -lrt' in |
| LDLIBS. |
| |
| Otherwise, to build against NPTL, export the following variable: |
| |
| export GLIBCDIR=/path/to/NPTL/libc-build |
| |
| Then set the following to LDFLAGS: |
| |
| $GLIBCDIR/nptl/libpthread.so.0 $GLIBCDIR/libc.so.6 -Wl,-rpath,$GLIBCDIR:$GLIBCDIR/nptl:$GLIBCDIR/elf,-dynamic-linker,$GLIBCDIR/elf/ld-linux.so.2 |
| |
| |
| posix1b |
| ------- |
| To run the semaphore test suite against posix1b, you will need to download |
| and install the posix1b library. |
| |
| Start downloading it from: http://www.garret.ru/~knizhnik/posix1b.tar.gz |
| Once you have the library compiled and installed in /usr/lib. |
| Add '-lposix1b' to LDLIBS: |
| |
| Make sure /usr/lib/ is in your PATH. |
| |
| ======= |
| Signals |
| ======= |
| |
| For the signals-related interfaces that start with "pthread_", refer to |
| the Threads section above to learn how to build those particular tests. |
| |
| Also, please note that if you using version of gcc older than version 3.2-7, |
| you may run into lots of build and link errors. Please use gcc version 3.2-7 |
| or newer. |
| |
| ===== |
| XCOFF |
| ===== |
| |
| Since the XCOFF main is called .main, the line: |
| 64 nm -g --defined-only $< | grep -q " T main" || exit 0; \ |
| |
| needs to replace main with .main to get these tests to compile. |
| |
| Maintainers: Julie Fleischer |
| Rolla Selbak |
| Salwan Searty |
| Majid Awad |
| Crystal Xiong |
| Adam Li |
| Contributors: Jerome Marchand |
| Ulrich Drepper |
| Garrett Cooper |