Comments (8)
Gentle bump 🙂 @mofeing is still facing this issue in v4.1.7.
from extrae.
I'm not 100% sure this is the right solution, but something like
--- a/src/tracer/Makefile.am.orig
+++ b/src/tracer/Makefile.am
@@ -713,7 +713,7 @@
libcudaompitracecf_la_CFLAGS = $(core_INCLUDES) $(core_CFLAGS) -DMPI_SUPPORT $(MPI_CFLAGS) $(PARALLEL_CFLAGS_MERGE_LIB) -DCUDA_SUPPORT $(WRAPPERS_CUDA_CFLAGS) -DOMP_SUPPORT
endif
-libseqtrace_la_CFLAGS = $(core_INCLUDES) $(core_CFLAGS) $(SEQUENTIAL_CFLAGS_MERGE_LIB)
+libseqtrace_la_CFLAGS = $(core_INCLUDES) $(core_CFLAGS) $(SEQUENTIAL_CFLAGS_MERGE_LIB) $(XML2_CFLAGS)
libmpitrace_la_CFLAGS = $(core_INCLUDES) $(core_CFLAGS) -DMPI_SUPPORT $(MPI_CFLAGS) $(PARALLEL_CFLAGS_MERGE_LIB)
libmpitracef_la_CFLAGS = $(core_INCLUDES) $(core_CFLAGS) -DMPI_SUPPORT $(MPI_CFLAGS) $(PARALLEL_CFLAGS_MERGE_LIB)
@@ -755,7 +755,7 @@
libnanosmpitracecf_la_CFLAGS = $(core_INCLUDES) $(core_CFLAGS) -DNANOS_SUPPORT -DMPI_SUPPORT $(MPI_CFLAGS) $(PARALLEL_CFLAGS_MERGE_LIB)
endif
-libpttrace_la_CFLAGS = $(core_INCLUDES) $(core_CFLAGS) -DPTHREAD_SUPPORT $(SEQUENTIAL_CFLAGS_MERGE_LIB) $(PTHREAD_CFLAGS)
+libpttrace_la_CFLAGS = $(core_INCLUDES) $(core_CFLAGS) -DPTHREAD_SUPPORT $(SEQUENTIAL_CFLAGS_MERGE_LIB) $(PTHREAD_CFLAGS) $(XML2_CFLAGS)
libopenshmemtrace_la_CFLAGS = $(core_INCLUDES) $(core_CFLAGS) @OPENSHMEM_CFLAGS@ -DOPENSHMEM_SUPPORT $(SEQUENTIAL_CFLAGS_MERGE_LIB)
seems to fix the issue for me.
from extrae.
However after fixing the issue with the header files, I get a later error during linking:
[10:59:48] libtool: link: cc -std=gnu11 -I../../include -I../../src/common -I../../src/tracer -I../../src/tracer/wrappers/API -I../../src/tracer/clocks -I../../src/tracer/hwc -O -g -g -O2 -fno-optimize-sibling-calls -funwind-tables -Wall -W -o .libs/extrae-cmd extrae_cmd-extrae-cmd.o extrae_cmd-extrae-cmd-init.o extrae_cmd-extrae-cmd-emit.o extrae_cmd-extrae-cmd-fini.o -L/workspace/destdir/lib64 ../../src/tracer/.libs/libseqtrace.so -L/workspace/destdir/lib/ -lpapi -lpfm -lunwind -ldl -lrt ../../src/merger/.libs/libmpi2prv.a -lm -lbfd -liberty -Wl,-rpath -Wl,/workspace/destdir/lib -Wl,-rpath -Wl,/workspace/destdir/lib64 -Wl,-rpath -Wl,/workspace/destdir/lib/
[10:59:48] ../../src/tracer/.libs/libseqtrace.so: undefined reference to `xmlFreeDoc'
[10:59:48] ../../src/tracer/.libs/libseqtrace.so: undefined reference to `xmlGetProp'
[10:59:48] ../../src/tracer/.libs/libseqtrace.so: undefined reference to `xmlCheckVersion'
[10:59:48] ../../src/tracer/.libs/libseqtrace.so: undefined reference to `xmlStrlen'
[10:59:48] ../../src/tracer/.libs/libseqtrace.so: undefined reference to `xmlCharStrdup'
[10:59:48] ../../src/tracer/.libs/libseqtrace.so: undefined reference to `xmlCleanupParser'
[10:59:48] ../../src/tracer/.libs/libseqtrace.so: undefined reference to `xmlStrcasecmp'
[10:59:48] ../../src/tracer/.libs/libseqtrace.so: undefined reference to `xmlStrsub'
[10:59:48] ../../src/tracer/.libs/libseqtrace.so: undefined reference to `xmlNodeListGetString'
[10:59:48] ../../src/tracer/.libs/libseqtrace.so: undefined reference to `xmlParseFile'
[10:59:48] ../../src/tracer/.libs/libseqtrace.so: undefined reference to `xmlFree'
[10:59:48] ../../src/tracer/.libs/libseqtrace.so: undefined reference to `xmlDocGetRootElement'
[10:59:48] collect2: error: ld returned 1 exit status
[10:59:48] make[3]: *** [Makefile:893: extrae-cmd] Error 1
The problem is that libseqtrace.so
doesn't link to libxml2 at all:
sandbox:${WORKSPACE}/srcdir/extrae-4.1.2 # readelf -d ./src/tracer/.libs/libseqtrace.so
Dynamic section at offset 0x86a80 contains 29 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libpapi.so.7.0]
0x0000000000000001 (NEEDED) Shared library: [libpfm.so.4]
0x0000000000000001 (NEEDED) Shared library: [libunwind.so.8]
0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]
0x0000000000000001 (NEEDED) Shared library: [librt.so.1]
0x0000000000000001 (NEEDED) Shared library: [libbfd-2.39.so]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2]
0x000000000000000e (SONAME) Library soname: [libseqtrace-4.1.2.so]
0x000000000000000f (RPATH) Library rpath: [/workspace/destdir/lib64:/workspace/destdir/lib/]
Another patch like
--- a/src/tracer/Makefile.am.orig
+++ b/src/tracer/Makefile.am
@@ -834,7 +834,7 @@
libnanosmpigaspitrace_la_LDFLAGS = $(COMMON_LINKER_FLAGS)
libnanosgaspitrace_la_LDFLAGS = $(COMMON_LINKER_FLAGS)
-libseqtrace_la_LDFLAGS = $(COMMON_LINKER_FLAGS)
+libseqtrace_la_LDFLAGS = $(COMMON_LINKER_FLAGS) -lxml2
libmpitrace_la_LDFLAGS = $(NEW_MPI_LIBS) $(COMMON_LINKER_FLAGS)
libmpitracef_la_LDFLAGS = $(libmpitrace_la_LDFLAGS) # -static
fixes the issue for me, but I'm sure there are better ways to do this.
from extrae.
XML2_CFLAGS
are included in core_INCLUDES
if HAVE_XML2
is defined during configure
Lines 617 to 619 in 4a8c208
Could you check your config.h
and see if it is true in your compilation?
from extrae.
Please find attached the file config.log
and src/tracer/Makefil
of my build
In the Makefile, XML2_CFLAGS
is set correctly, but not used anywhere.
For reference, core_INCLUDES
is
core_INCLUDES = -I$(TRACER_INC) -I$(HWC_INC) -I$(CLOCKS_INC) \
-I$(INTERFACES_INC)/API -I$(INTERFACES_INC)/MPI \
-I$(STATS_INC)/MPI -I$(WRAPPERS_INC)/API -I$(WRAPPERS_INC)/MPI \
-I$(WRAPPERS_INC)/OMP -I$(WRAPPERS_INC)/pthread \
-I$(WRAPPERS_INC)/CUDA -I$(WRAPPERS_INC)/OPENCL \
-I$(WRAPPERS_INC)/fork -I$(WRAPPERS_INC)/MALLOC \
-I$(WRAPPERS_INC)/IO -I$(WRAPPERS_INC)/SYSCALL \
-I$(WRAPPERS_INC)/openshmem -I$(WRAPPERS_INC)/OPENACC \
-I$(WRAPPERS_INC)/GASPI -I$(SAMPLING_DIR)/common \
-I$(top_srcdir) -I$(top_srcdir)/include -I$(COMMON_INC) \
$(UNWIND_CFLAGS) $(am__append_62) $(am__append_63) \
-I$(SAMPLING_DIR)/timer $(am__append_64)
No mention to xml2.
from extrae.
I don't know if this is relevant, perhaps not because HAVE_XML2
is defined to 1
anyway, but in the config.log
I shared above I see the lines
configure:38623: checking for libxml2 version >= 2.5.0
configure:38639: result: no (2.12.0)
which look questionable, to say the least.
from extrae.
Are you still facing this issue? At least in more recent versions, XML2_CFLAGS is used in src/tracer/Makefile.am:
if HAVE_XML2
core_INCLUDES += @XML2_CFLAGS@
endif
According to the config.log, HAVE_XML2 is set to 1, and XML2_CFLAGS has value:
XML2_CFLAGS='-I/workspace/destdir/include -I/workspace/destdir/include/libxml2'
Similarly, LDFLAGS are set through:
if HAVE_XML2
XML2_LINKER_FLAGS = @XML2_LDFLAGS@ @XML2_RPATH@ @XML2_LIBS@
endif
And later assigned to:
COMMON_LINKER_FLAGS =
...
$(XML2_LINKER_FLAGS)
...
Both core_INCLUDES and COMMON_LINKER_FLAGS seem to be used by all libraries. Have you tried with a more recent version of the tool, just in case this has been fixed in the meantime?
One thing that catches my eye in the config.log is that these variables are empty:
XML2_LIBS=''
XML2_LIB_xml2=''
Is it possible that the system only has a static version (libxml2.a) available? If so, can you try rebuilding libxml2 with the flag --enable-shared ?
from extrae.
Are you still facing this issue?
I can't test it right now, will let you know when I get a chance to try again.
Is it possible that the system only has a static version (libxml2.a) available?
No, we have the shared library.
from extrae.
Related Issues (20)
- sleep needs unistd.h
- MPI test failures
- cannot build on opensuse HOT 2
- Fortran MPI+OpenMP mpi2dim: Error! unregistered event type HOT 3
- Can not get user-functions HOT 5
- Extrae ignores config files HOT 4
- PTHREAD test fails with Segmentation fault in Extrae 4.1.6 HOT 3
- MPI tests fail with Segmentation Fault in Extrae 4.1.6 HOT 7
- Segmentation fault occurred when running with PAPI HOT 3
- Avoid hw-counters tests in the `make check` step?
- Internal Error: insert(): Duplicate key found! - using Extrae_event HOT 2
- `Extrae_define_event_type` does not honor value range of `extrae_value_t`
- `Extrae_define_event_type` does not honor value range of `extrae_type_t`
- Extrae doesn't build with GCC versions >= 14
- Non-clear configure options on intercepting LLVM OpenMP Runtime symbols
- Missing script in distribution available at tools.bsc.es HOT 1
- Missing documentation on src/tracer/wrappers/OMP/genstubs-*.sh HOT 2
- `run_overhead_tests.sh` doesn't work properly when using a minimal installation of extrae
- Figure 13.1 in https://tools.bsc.es/doc/html/extrae/overhead.html isn't rendered
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from extrae.