2 cd cd tmp/build-coreutils/coreutils-6.7/src 3 cd cd tmp/build-coreutils/coreutils-6.7/src/ 4 cd tmp/build-coreutils/coreutils-6.7/src/ 5 ls 6 cd /tmp/och 7 touch /tmp/och 8 ./rm /tmp/och 9 strace ./rm /tmp/och 10 strace ./rm /tmp/och 11 ls /usr/share/locale/en_US/LC_MESSAGES/coreutils.mo 12 find /usr/share/locale/ | grep core 13 export LOCALE=de 14 rm /tmp/och 15 touch /tmp/och 16 ./rm /tmp/och 17 export LANG=de 18 ./rm /tmp/och 19 strace ./rm /tmp/och 20 find /usr/share/locale/ | grep coreutils 21 cat /usr/share/locale/locale.alias 22 export LANG=deutsch 23 strace ./rm /tmp/och 24 find /usr/share/locale/ | grep coreutils 25 export LANG=french 26 strace ./rm /tmp/och 27 strace ./rm /tmp/och 28 export LANG=C 29 strace ./rm /tmp/och 30 ./chown /tmp/och 31 ./chown +x /tmp/och 32 ./chown root.bin /tmp/och 33 strace ./chown root.bin /tmp/och 34 strace ./chown root.bin /tmp/och 35 ldd ./rm 36 ls -al /lib/libc.so.6 37 ls -al /lib/libgcc_s.so* 38 ls -al /lib/usr/libgcc_s.so* 39 ls -al /usr/lib/libgcc_s.so* 40 ls -al /lib/libc-2.5.so 41 objdump /usr/lib/libgcc_s.so 42 objdump -T /usr/lib/libgcc_s.so 43 ls 44 vi rm 45 vi rm.c 46 grep 'rm' -rI . 47 grep 'rm(' -rI . 48 grep 'rm (' -rI . 49 vi remove.c 50 ls 51 file rm 52 objdump -T /lib/libc-2.5.so 53 objdump -T /lib/libc-2.5.so | grep unlink 54 objdump -T /lib/libc-2.5.so | grep chown 55 objdump -f ./rm 56 objdump ./rm 57 objdump -p ./rm 58 ./rm /tmp/och 59 echo $? 60 vi rm.c 61 vi rm.c 62 grep 'cannot remove' -rI . 63 grep 'cannot remove %s' -rI . 64 grep 'cannot remove `%s' -rI . 65 grep 'cannot remove %s' -rI . 66 vi remove.c 67 ./rm -p /tmp/och 68 ./rm --help 69 ./rm -i /tmp/och 70 vi remove.c 71 vi remove.c 72 gdb --help 73 gdb ./rm --args /tmp/och 74 gdb --args ./rm /tmp/och 75 vi remove.c 76 gdb --args ./rm /tmp/och 77 vi remove.c 78 gdb --args ./rm /tmp/och 79 vi remove.c 80 gdb --args ./rm /tmp/och 81 gdb --args ./rm /tmp/och 82 vi remove.c 83 ls -al 84 file remove.o 85 file rm 86 gdb --args ./rm /tmp/och 87 vi remove.c 88 ls 89 type -ap rm 90 strace /bin/rm /tmp/och 91 grep 'unlinkat' -rI . 92 objdump -T /lib/libc-2.5.so | grep unlink 93 less ../config.log 94 grep 'unlinkat' -rI . 95 grep 'unlinkat' -rI .. 96 pico ../lib/openat.c 97 grep 'AT_FUNC_NAME' -rI .. 98 less /tmp/working/build-coreutils/coreutils-6.7/config.status 99 ls 100 grep 'unlinkat' -rI /tmp/working/build-coreutils/coreutils-6.7/ 101 grep 'unlinkat' -rI . 102 grep 'at-' -rI .. 103 grep 'at' -rI .. | grep conf 104 less ../lib/config.h 105 cd .. 106 ls -al 107 grep 'at(' -rI . 108 cd lib/ 109 ls 110 find | grep config 111 pico config.h 112 grep 'at' config.g 113 grep 'at' config.h 114 grep 'AT' config.h 115 cd .. 116 grep 'AT' config* 117 grep 'AT' config.status 118 grep 'AT' config.log 119 grep 'AT ' config.log 120 grep 'HAVE_OPENAT' -rI . 121 grep 'HAVE_OPENAT' -rI /tmp/working/build-coreutils/coreutils-6.7/ 122 ls 123 ./configure --help | grep at 124 ./configure --help | grep openat 125 grep openat config* 126 less config.log 127 less /tmp/working/build-coreutils/coreutils-6.7/config.log 128 ls 129 vi configure 130 grep 'HAVE_OPENAT' -rI . 131 grep '^#define.*HAVE_OPENAT 1' -rI . 132 grep '^#define.*HAVE_OPENAT 1' -rI /tmp/working/build-coreutils/coreutils-6.7/ 133 cd lib/ 134 ls 135 grep 'config.h' -rI . 136 vi config.h 137 vi config.hin 138 vi config.h 139 cd .. 140 ./configure --help 141 cat /proc/version 142 ls 143 vi configure 144 vi config.log 145 vi configure 146 gdb /lib/libc-2.5.so 147 objdump -T /lib/libc-2.5.so | grep chown 148 gdb /lib/libc-2.5.so 149 ls 150 cd src/ 151 strace ./cat /tmp/oc 152 strace ./cat /tmp/poo 153 ls 154 gdb ./cat /tmp/poo 155 gdb ./cat /tmp/poo 156 vi cat.c 157 ls 158 ~/armedslack/dbuild 159 ntpdate rolex.ripe.net 160 history > ~/ac/source/a/coreutils/jawkins-debug It appears to be trying to use unlinkat. Now, looking at the versioning symbols in glibc 2.5, this would appear to have been introduced in g libc 2.4. unlinkat is a proper syscall and ... it was only introduced into the kernel fairly recently. So they may not have added it to the ARM kernel. I vaguely remember reading on the armlinux mailing list that the *at functions are either unimplemented or they've only been added recently. coreutils appears to contain some utility functions in the lib directory which implement the *at functions for platforms that don't support it. Now I'm guessing either libc hasn't properly identified that the *at functions don't work on this platform and compiled them in a syscalls. Or coreutils hasn't properly identified that the *at functions don't work on this platform. Make a build log. grep it for unlinkat