The following items need fixing with the new Makefile infrastructure:

testcases/Makefile:
1. mce-test doesn't fit cleanly in the build, yet.
2. pounder21 is just broken (wasn't traversed before).
3. Not sure why realtime should still be disabled for build; the aggregated
   list was the original list of disabled items for UCLINUX != 1.

testcases/ballista:
1. a) Not integrated with the Make infrastructure (and thus the output isn't
      guaranteed to function with cross-compilation based envs).
   b) Is a mess (there's a lot of shoddy Make and perl code that I'm cleaning
      up right now).
   c) Uses cshell for some weird arse reason, instead of using Bourne shell
      compat scripts.

testcases/commands/ade/Makefile:
1. .../objdump's Makefile needs fixing. Basically some of the obj files used
   as stimuli are .o files, which a) is a bad idea, and b) are intermediary's
   for some apps. Either the tests or the Makefiles need to be fixed, and
   this is a call that needs to be made by someone else including myself.

testcases/commands/unzip/Makefile:

1. This test requires a test zip file in order to function and it isn't
   generated at build time anymore:

<<<test_start>>>
tag=unzip01 stime=1255544779
cmdline="unzip_tests.sh $LTPROOT/testcases/commands/unzip/tst_unzip_file.zip"
contacts=""
analysis=exit
<<<test_output>>>
stat: cannot stat `/tests/ltp/testcases/commands/unzip/tst_unzip_file.zip': No such file or directory
/tests/ltp/testcases/bin/31631.H31633 /tests/ltp/testcases/bin
/tests/ltp/testcases/bin
unzip01     0  TINFO  :  CLEAN: removing "31631.H31633"
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=1 corefile=no
cutime=2 cstime=1
<<<test_end>>>

testcases/kernel/containers/container_test.sh:

1. The check_for_unshare, check_mqns_enabled, check_pidns_enabled, and
   check_netns_enabled commands applications were removed because (at first
   glance) they appeared to only be used for conditional building when users
   compiled LTP with the old makefile infrastructure. After inspecting the
   runtime logs though, it appears to be used at runtime too. Maybe the logic
   that was removed should be added to the testcases that require it as a
   common file?

<<<test_start>>>
tag=Containers stime=1255508072
cmdline="container_test.sh"
contacts=""
analysis=exit
<<<test_output>>>
/tests/ltp/testcases/bin/container_test.sh: line 13: check_for_unshare: command not found
Running utsns tests.
unshare tests

/tests/ltp/testcases/bin/container_test.sh: line 49: check_pidns_enabled: command not found
Process id namespaces not enabled in kernel.  Not running pidns tests.
/tests/ltp/testcases/bin/container_test.sh: line 57: check_mqns_enabled: command not found
Posix message queues or ipc namespaces not enabled in kernel.
Not running mqns tests.
/tests/ltp/testcases/bin/container_test.sh: line 66: check_netns_enabled: command not found
Network namespaces not enabled in kernel.  Not running netns tests.

testcases/kernel/controllers/memcg/functional/Makefile:
1. For whatever reason this Makefile's are calling up relative CPPFLAGS
   (the old ../../../../include value) for -I$(include), despite the fact that
   the Makefile infra been updated. This should be investigated and fixed, but
   for now it's just an observation; not a blocking point.

testcases/kernel/fs/dmapi/Makefile:
1. This test requires JFS support, which most systems don't have. So a set of
   proper autoconf tests need to be added for this as well.

testcases/kernel/fs/doio/rwtest.sh:
1. rwtest.sh isn't determining where to pick up the files from appropriately
   (bad relative path logic somewhere... not sure where).

testcases/kernel/sched/nptl/Makefile:
1. There's a $(shell ) call in the Makefile that needs to be replaced.

testcases/kernel/syscalls/utils/*.mk:
1. There are unused variables and unneeded logic that needs to be evaluated
   and potentially removed.

testcases/misc/crash/crash02.c:
#if defined(__ia64__)
      SYS_clone2,
#else
      /*
       * No SYS_fork(vfork) on IA-64. Instead, it uses,
       * clone(child_stack=0, flags=CLONE_VM|CLONE_VFORK|SIGCHLD)
       * clone2()
       */

      /*
       * NOTE (garrcoop):
       *  Could not find reference to SYS_fork(vfork) on mips32
       *  with the Montavista / Octeon toolchain. Need to develop an
       *  autoconf check for this item.
       */
#if defined(__NR_vfork) && __NR_vfork
      SYS_vfork,
#endif
#if defined(__NR_fork) && __NR_fork
      SYS_fork,
#endif
#endif /* __ia64__ */
#if defined(__NR_clone) && __NR_clone
      SYS_clone,
#endif

testcases/network/multicast/...:
1. These tests need to be fixed because they use make / install logic in the
   tests:

<<<test_start>>>
tag=mc_opts stime=1255502705
cmdline="export TCsrc=$LTPROOT/testcases/network/multicast/mc_opts; mc_opts"
contacts=""
analysis=exit
<<<test_output>>>
gethostbyname*: Host name lookup failure
install: cannot stat `/tests/ltp/opts': No such file or directory
install: cannot stat `/tests/ltp/opts_e': No such file or directory
mc_opts: doing /tests/ltp/testcases/bin/mc_opts.
Running mc_opts opts_e on 
/tests/ltp/testcases/bin/mc_opts: line 86: /tests/ltp/bin/mc_opts13780/opts: No such file or directory
mc_opts: doing /tests/ltp/testcases/bin/mc_opts.
mc_opts: doing /tests/ltp/testcases/bin/mc_opts
Test Failed: opts  failed
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=1 corefile=no
cutime=1 cstime=6
<<<test_end>>>

testcases/network/rpc/rpc-tirpc-full-test-suite:
1. This needs to be integrated into the build with a Makefile, as it's not
   getting copied over with the install.

testcases/network/tcp_cmds/perf_lan/Makefile:
1. There are duplicate sourcefiles because I don't feel confident as far as
   the changes were concerned on the sourcefiles and I was running into
   compile issues with the IPv6 code.

testcases/network/stress/udp/...:
1. Many of the scripts are installing themselves using the old-status quo
   method of hardlinking into $(abs_top_srcdir)/testcases/bin, which means
   that all of the scripts are being linked to the file
   $(abs_top_srcdir)/testcases/bin .

tools/Makefile:
1. netpipe* needs fixing and reorg, because it's referencing /home/mpich, etc.

utils/benchmark/Makefile:
1. kernbench needs to be fixed because its makefile doesn't have support
   out-of-build-tree building.

Other items of issue are listed below (from testscripts/ltp-missing-install-files.py):

io-output.log: Tag | App
io-output.log: runfstests.sh runfstests.sh
ipv6-output.log: Tag | App
ipv6-output.log: finger601 finger601
ipv6-output.log: ping601 ping601
ipv6-output.log: rlogin01 rlogin01
ipv6-output.log: tcpdump601 tcpdump601
ipv6-output.log: telnet01 telnet01
ipv6_expect-output.log: Tag | App
ipv6_expect-output.log: rlogin01 rlogin01
ipv6_noexpect-output.log: Tag | App
ipv6_noexpect-output.log: /scratch/ltp-install5/testcases/bin/echo01 /scratch/ltp-install5/testcases/bin/createfile
modules-output.log: Tag | App
modules-output.log: delete_module01 delete_module01
modules-output.log: delete_module02 delete_module02
modules-output.log: delete_module03 delete_module03
multicast-output.log: Tag | App
multicast-output.log: /scratch/ltp-install5/testcases/bin/mc_opts /scratch/ltp-install5/bin/mc_opts9521/opts
selinux-output.log: Tag | App
selinux-output.log: selinux_capable_file.sh selinux_capable_file.sh
selinux-output.log: selinux_capable_net.sh selinux_capable_net.sh
selinux-output.log: selinux_capable_sys.sh selinux_capable_sys.sh
selinux-output.log: selinux_domain_trans.sh selinux_domain_trans.sh
selinux-output.log: selinux_entrypoint.sh selinux_entrypoint.sh
selinux-output.log: selinux_execshare.sh selinux_execshare.sh
selinux-output.log: selinux_exectrace.sh selinux_exectrace.sh
selinux-output.log: selinux_execute_no_trans.sh selinux_execute_no_trans.sh
selinux-output.log: selinux_fdreceive.sh selinux_fdreceive.sh
selinux-output.log: selinux_file.sh selinux_file.sh
selinux-output.log: selinux_inherit.sh selinux_inherit.sh
selinux-output.log: selinux_ioctl.sh selinux_ioctl.sh
selinux-output.log: selinux_link.sh selinux_link.sh
selinux-output.log: selinux_mkdir.sh selinux_mkdir.sh
selinux-output.log: selinux_msg.sh selinux_msg.sh
selinux-output.log: selinux_open.sh selinux_open.sh
selinux-output.log: selinux_ptrace.sh selinux_ptrace.sh
selinux-output.log: selinux_readlink.sh selinux_readlink.sh
selinux-output.log: selinux_relabel.sh selinux_relabel.sh
selinux-output.log: selinux_rename.sh selinux_rename.sh
selinux-output.log: selinux_rxdir.sh selinux_rxdir.sh
selinux-output.log: selinux_sem.sh selinux_sem.sh
selinux-output.log: selinux_setattr.sh selinux_setattr.sh
selinux-output.log: selinux_setnice.sh selinux_setnice.sh
selinux-output.log: selinux_shm.sh selinux_shm.sh
selinux-output.log: selinux_sigkill.sh selinux_sigkill.sh
selinux-output.log: selinux_stat.sh selinux_stat.sh
selinux-output.log: selinux_sysctl.sh selinux_sysctl.sh
selinux-output.log: selinux_task_create.sh selinux_task_create.sh
selinux-output.log: selinux_task_getpgid.sh selinux_task_getpgid.sh
selinux-output.log: selinux_task_getscheduler.sh selinux_task_getscheduler.sh
selinux-output.log: selinux_task_getsid.sh selinux_task_getsid.sh
selinux-output.log: selinux_task_setnice.sh selinux_task_setnice.sh
selinux-output.log: selinux_task_setpgid.sh selinux_task_setpgid.sh
selinux-output.log: selinux_task_setscheduler.sh selinux_task_setscheduler.sh
selinux-output.log: selinux_wait.sh selinux_wait.sh
selinux-output.log: selinux_dyntrace.sh selinux_dyntrace.sh
selinux-output.log: selinux_dyntrans.sh selinux_dyntrans.sh
selinux-output.log: selinux_bounds.sh selinux_bounds.sh
stress.part3-output.log: Tag | App
stress.part3-output.log: /scratch/ltp-install5/testcases/bin/mc_opts /scratch/ltp-install5/bin/mc_opts4243/opts
tcp_cmds-output.log: Tag | App
tcp_cmds-output.log: /scratch/ltp-install5/testcases/bin/echo01 /scratch/ltp-install5/testcases/bin/createfile
tcp_cmds-output.log: rlogin01 rlogin01
tcp_cmds-output.log: telnet01 telnet01
tcp_cmds_expect-output.log: Tag | App
tcp_cmds_expect-output.log: rlogin01 rlogin01
tcp_cmds_expect-output.log: telnet01 telnet01
tcp_cmds_noexpect-output.log: Tag | App
tcp_cmds_noexpect-output.log: /scratch/ltp-install5/testcases/bin/echo01 /scratch/ltp-install5/testcases/bin/createfile

testcases/kernel/security/selinux:
   Is disabled on purpose (doesn't fit within build and probably won't until
   autoconf tests are created to detect SELinux).

Other missing items in an out-of-build-tree configuration:

/tests/ltp/output/power_management_tests-output.log:/tests/ltp/testcases/bin/runpwtests.sh: line 57: check_kv_arch: comman
d not found
/tests/ltp/output/power_management_tests-output.log:/tests/ltp/testcases/bin/runpwtests.sh: line 172: get_sched_values: co
mmand not found
/tests/ltp/output/power_management_tests-output.log:/tests/ltp/testcases/bin/runpwtests.sh: line 191: check_kv_arch: comma
nd not found
/tests/ltp/output/power_management_tests_exclusive-output.log:/tests/ltp/testcases/bin/runpwtests.sh: line 57: check_kv_ar
ch: command not found
/tests/ltp/output/power_management_tests_exclusive-output.log:/tests/ltp/testcases/bin/runpwtests.sh: line 172: get_sched_
values: command not found
/tests/ltp/output/power_management_tests_exclusive-output.log:/tests/ltp/testcases/bin/runpwtests.sh: line 191: check_kv_a
rch: command not found
/tests/ltp/output/tcp_cmds_noexpect-output.log:sendfile01    1  TFAIL  :  Test broken: gethost: command not found

/tests/ltp/output/io_floppy-output.log:sh: stress_floppy: command not found
/tests/ltp/output/ipv6-output.log:sh: echo601: command not found
/tests/ltp/output/ipv6-output.log:ftp01       1  TFAIL  :  Test broken: ftp: command not found
/tests/ltp/output/ipv6-output.log:sh: perf_lan6: command not found
/tests/ltp/output/ipv6-output.log:rcp01       1  TFAIL  :  Test broken: rcp: command not found
/tests/ltp/output/ipv6-output.log:rsh01       1  TFAIL  :  Test broken: rsh: command not found
/tests/ltp/output/ipv6-output.log:rwho01      1  TFAIL  :  Test broken: rsh: command not found
/tests/ltp/output/ipv6-output.log:sh: sendfile601: command not found
