From c683500a2921f05b7172312801545384aadc844f Mon Sep 17 00:00:00 2001 From: Jeff Squyres Date: Thu, 19 Feb 2015 13:53:19 -0800 Subject: [PATCH] debuggers: convert to opal_dl interface --- ompi/debuggers/Makefile.am | 12 +- .../core.lt-dlopen_test-1424445474-6373 | Bin 0 -> 622592 bytes ompi/debuggers/dlopen_test.c | 112 +++++++++--------- 3 files changed, 63 insertions(+), 61 deletions(-) create mode 100644 ompi/debuggers/core.lt-dlopen_test-1424445474-6373 diff --git a/ompi/debuggers/Makefile.am b/ompi/debuggers/Makefile.am index c7e5765584..d9b08e298b 100644 --- a/ompi/debuggers/Makefile.am +++ b/ompi/debuggers/Makefile.am @@ -9,7 +9,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2007-2013 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2007-2015 Cisco Systems, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -20,10 +20,7 @@ noinst_LTLIBRARIES = libdebuggers.la libompi_debugger_canary.la ompilib_LTLIBRARIES = libompi_dbg_msgq.la -check_PROGRAMS = predefined_gap_test predefined_pad_test -if OPAL_HAVE_DLOPEN -check_PROGRAMS += dlopen_test -endif +check_PROGRAMS = predefined_gap_test predefined_pad_test dlopen_test TESTS = $(check_PROGRAMS) @@ -44,11 +41,10 @@ headers = \ msgq_interface.h ompi_msgq_dll_defs.h # Simple checks to ensure that the DSOs are functional -# This test is only built if we have libltdl support. dlopen_test_SOURCES = dlopen_test.c -dlopen_test_CPPFLAGS = -I$(top_srcdir)/opal/libltdl -dlopen_test_LDADD = $(top_builddir)/opal/libltdl/libltdlc.la +dlopen_test_LDADD = $(top_builddir)/ompi/libmpi.la +dlopen_test_DEPENDENCIES = $(ompi_predefined_LDADD) predefined_gap_test_SOURCES = predefined_gap_test.c predefined_gap_test_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) diff --git a/ompi/debuggers/core.lt-dlopen_test-1424445474-6373 b/ompi/debuggers/core.lt-dlopen_test-1424445474-6373 new file mode 100644 index 0000000000000000000000000000000000000000..dca2dc1a63f3553bb4b971dfcf1b75c9a8ef26de GIT binary patch literal 622592 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 gPn<(NevN<1eJMa_I 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

P3J?ydS>GoIX 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 N$w}<@3~rB0f3G zR@X-RRbYK>tk381)FvXnYR|^1s@has;p=Kc6zB@+sEre}$2%B!;W%8GO_slr|v?!7e|4kmBP zhSR|u9=#QcEpHcKAH6je%qr<<&L};Y3*Q<^WNmWj`?FXm2imf?IkWldy0tQ!t}B-= zogdEGq;oc~qRS>tCSuv}O}6^OrdJjZc89a!TjRP(WSzSck(_dM&VMo&yeZMElCA^u zn-bxi(i`c?Ms&qAEz&5_rOTtjy|yrxQ{w4fO|=XU+Uy7IHa7ohSkq)POTZ0NHkwSF z8psRlV#|n_%_z~Wdx*m01KGqeTh(Irs>Ld8MmuxixUD*|M0L(lbU$g7S1`1_d+K?n`F*>R}jjBaBwh($7Sb3Je7cQVt6o>fJ!PwSev&rwry_o z!93X;7WMO3&(L~9-qV{KuWM}ftrM+vn_+PPH}RBcXz9473D&Ak%L1`Qui?sf87r0) zu23su#-kTKbZx0?g7qb=7u=}?ERvQ*^v2=Asv6ca5GWK6OZqOjt5+3_?9Hx*RMOl^r@(3mEatTu0y|m> z&EVBsXQ*5Ytuj#`{irGXSd4l@3Y%x_j~3r zqsIkhHj{MC>ddE)*}aBBX*oGK_|$t_P9E~+Ehi(}wYT`%VU=nP{yP}f#(`Q)P)_zJ*dN_S;Nbzo;W z*&mL=9#(~SeMO}=|5@G>@U6Y3HE<59Zy8M<%3T&9g3F6GAY;Hs~GGb{~!Q!oymlbB$kZl^dv9&yGlp z#ydoQS4TU`yKa4JLZ4)y_^``?alg?Xc>?RX}(!+zrq7;r>*r&)wS(Tju2uDi5Z1CW5d^ zle=^EEn8u?rP&vOXxKr^BvP=4*L+>GZ#`@&!ggZ*Lo)37&9UF+wB6=1ciU3Q?ocG@ ztI*r%Ev+4}zuxXEhuIwV5q**y(O%!y*tj*YwZ$h|ukWy0a=YuZFH_Xxy*qJBx-Z@@ zw|7&KbhtbLd&I$Bxz}v$&Kq|ey*c2NS}j+7KOOI=z>EwDqk_6M8xG9zjP$dJf>z4?o`+O+#p8`_2Z<*is-pETH zdQG&=8h);BTU|%f@N4bX@b9eMFBV&Src3U85DXed%5Q}CzjY_ST~xB?Q2?xw#ZdsP zJ>w;J{yXR+XTA^AJx5CJ{1Rx>N3D@n)c`b)EZ!o`MtoaAjI3*w|Id`+rs0)kBdbt4O8@29uK|FrXMr-$Y z5k~BKv1xcwnf34s3#|vA{C)c`?!Wg@moD1#b2lU@pi{a0D$;f2=j zM~l7VH`MK@yYa}O-;GX|!K=xGoe<|e**yHKlEo*Ugz%fZB!4|Uqa|NHUg8~oSchb3 zMpnHSJPseR9-eR=v6dXRHXOA|Ha&7k+K(){Y-%bnJv@HokeC?wZ|5X7CN|Rf>3zkY zloW~y`429CQ74pkdiw891lrf!-z$^?|2|n=c9nc**ml~dzaX*yD08W!DRw`~0smtL zW??|~M;Q38!oXiWvhKrwnx5WsGJTp3GP?J&!t1w$b#mPGarCLH*YwcZrttr00fKD4G-Q1 zvSi_rEqlh(%bJG|Hw_E<&o5UB=_SL5FPnzbD#NE+Fmo(^cyihBaxdK3N-i3LRAS`4 z#V4LDxk!{0{o%y7KsI`hocNrKzzc74q`qPK;N^>p)Y%``{yXG-P_SekxF7I1;CX=O L0iFluoCp3NNf5VT literal 0 HcmV?d00001 diff --git a/ompi/debuggers/dlopen_test.c b/ompi/debuggers/dlopen_test.c index 1cbbd79f58..ba6117bfa1 100644 --- a/ompi/debuggers/dlopen_test.c +++ b/ompi/debuggers/dlopen_test.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -13,9 +13,10 @@ #include #include -#include "opal/libltdl/ltdl.h" +#include "opal/runtime/opal.h" +#include "opal/mca/dl/base/base.h" -#if !OPAL_WANT_LIBLTDL +#if !OPAL_HAVE_DL_SUPPORT int main(int argc, char *argv[]) { /* If OPAL wasn't built with libltdl support, then skip this test */ @@ -23,7 +24,36 @@ int main(int argc, char *argv[]) return 77; } -#else /* OPAL_WANT_LIBLTDL */ +#else /* OPAL_HAVE_DL_SUPPORT */ + +static int try_open(const char *filename) +{ + char *err_msg; + opal_dl_handle_t *handle; + int ret; + + ret = opal_dl_open(filename, true, true, &handle, &err_msg); + if (OPAL_SUCCESS == ret) { + opal_dl_close(handle); + printf("File opened with private namespace, all passed\n"); + return 0; + } + + printf("Failed to open with private namespace: %s\n", err_msg); + printf("Retrying with global namespace\n"); + + ret = opal_dl_open(filename, true, false, &handle, &err_msg); + if (OPAL_SUCCESS == ret) { + opal_dl_close(handle); + printf("File opened with global namespace\n"); + return 0; + } + + fprintf(stderr, "File failed to open with global namespace: %s\n", + err_msg); + + return 2; +} static int do_test(void) { @@ -32,11 +62,6 @@ static int do_test(void) char full_filename[] = "./libompi_dbg_msgq.la"; char line[1024]; int happy; - lt_dlhandle dlhandle; - -#if OPAL_HAVE_LTDL_ADVISE - lt_dladvise dladvise; -#endif /* Double check that the .la file is there that we expect; if it's not, skip this test. */ @@ -74,60 +99,41 @@ static int do_test(void) exit(77); } - /* Startup LT */ - if (lt_dlinit() != 0) { - fprintf(stderr, "Failed to lt_dlinit\n"); - return 1; - } + char cwd[4096]; + getcwd(cwd, sizeof(cwd) - 1); + cwd[sizeof(cwd) - 1] = '\0'; + printf("Running in CWD: %s\n", cwd); - printf("Trying to lt_dlopen file with dladvise_local: %s\n", filename); + printf("Trying to open file with private namespace: %s\n", filename); -#if OPAL_HAVE_LTDL_ADVISE - if (lt_dladvise_init(&dladvise) || - lt_dladvise_ext(&dladvise) || - lt_dladvise_local(&dladvise)) { - fprintf(stderr, "lt_dladvise failed to initialize properly\n"); - return 1; - } - dlhandle = lt_dlopenadvise(filename, dladvise); - lt_dladvise_destroy(&dladvise); -#else - dlhandle = lt_dlopenext(filename); -#endif - if (NULL != dlhandle) { - lt_dlclose(dlhandle); - printf("File opened with dladvise_local, all passed\n"); + /* If that works, great */ + if (0 == try_open(filename)) { return 0; } - printf("Failed to open with dladvise_local: %s\n", lt_dlerror()); - printf("Retrying with dladvise_global\n"); - -#if OPAL_HAVE_LTDL_ADVISE - if (lt_dladvise_init(&dladvise) || - lt_dladvise_ext(&dladvise) || - lt_dladvise_global(&dladvise)) { - fprintf(stderr, "lt_dladvise failed to initialize properly\n"); + /* If we're using libltdl, it will find the .la file and may + discover that it needs to open the actual file in the .libs + directory. If we're not using libltdl, then we won't know + about the magic .la file / .libs directory. Hueristic: if we + get here, manually prefix the filename with .libs/ and try + again. */ + char *rel_filename; + asprintf(&rel_filename, ".libs/%s", filename); + if (NULL == rel_filename) { return 1; } - dlhandle = lt_dlopenadvise(filename, dladvise); - lt_dladvise_destroy(&dladvise); -#else - dlhandle = lt_dlopenext(filename); -#endif - if (NULL != dlhandle) { - lt_dlclose(dlhandle); - printf("File opened with dladvise_global\n"); - return 0; - } - fprintf(stderr, "File failed to open with dladvise_global: %s\n", - lt_dlerror()); + int rc = try_open(rel_filename); + free(rel_filename); - return 2; + return rc; } int main(int argc, char *argv[]) { - return do_test(); + opal_init(&argc, &argv); + int ret = do_test(); + opal_finalize(); + + return ret; } -#endif /* OPAL_WANT_LIBLTDL */ +#endif /* OPAL_HAVE_DL_SUPPORT */