Skip dlopen-libpthread.exp in cross testing
Commit Message
I see the following fails on arm-linux-gnueabi,
result of ldd build-git/arm/gdb/testsuite/gdb.threads/dlopen-libpthread.so is 1
output of ldd build-git/arm/gdb/testsuite/gdb.threads/dlopen-libpthread.so is not a dynamic executable
child process exited abnormally
FAIL: gdb.threads/dlopen-libpthread.exp: ldd dlopen-libpthread.so
FAIL: gdb.threads/dlopen-libpthread.exp: ldd dlopen-libpthread.so output contains libs
the test script invokes ldd (on host) for the target libraries, which
is wrong. ldd can't be cross because it invokes dynamic linker with
LD_TRACE_LOADED_OBJECTS and gets the dependent libraries. My first
reaction to this problem is to execute ld.so on the target (like
remote_exec target). When I start to hack proc build_executable_own_libs,
I find it has assumptions here and there that the native testing is
performed. Then I check the callers of build_executable_own_libs,
and they are all skipped if isnative is false. It is reasonable to do
the same in dlopen-libpthread.exp too.
gdb/testsuite:
2014-09-25 Yao Qi <yao@codesourcery.com>
* gdb.threads/dlopen-libpthread.exp: Skip it if isnative is
false.
---
gdb/testsuite/gdb.threads/dlopen-libpthread.exp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On 09/25/2014 08:52 AM, Yao Qi wrote:
> performed. Then I check the callers of build_executable_own_libs,
> and they are all skipped if isnative is false. It is reasonable to do
> the same in dlopen-libpthread.exp too.
Agreed.
I think we should put an "error" call in build_executable_own_libs
too, so that whoever adds the next test that uses this doesn't
end up forgetting the same thing.
Thanks,
Pedro Alves
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-if {![istarget *-linux*] || [skip_shlib_tests]} {
+if {![isnative] || ![istarget *-linux*] || [skip_shlib_tests]} {
return 0
}