xcfem / xc

finite element analysis package for civil engineering structures.
http://www.xcengineering.xyz/html_files/software.html
GNU General Public License v3.0
262 stars 54 forks source link

Installation with WSL: undefined symbol: _Z23export_material_sectionv #103

Closed ebrahimraeyat closed 2 years ago

ebrahimraeyat commented 2 years ago

Hi @lcpt. new error in compile xc on ubuntu with wsl (windows sub system for linux):

 Actions tests.
test test_derailment_SIA.py: ok.
test test_prestressing.py: ok.
Traceback (most recent call last):
  File "tests/actions/test_peck_pressure_envelope.py", line 9, in <module>
    from actions.earth_pressure import earth_pressure
  File "/usr/local/lib/python3.8/dist-packages/actions/earth_pressure/earth_pressure.py", line 23, in <module>
    import xc
ImportError: /usr/local/lib/python3.8/dist-packages/xc.so: undefined symbol: _Z23export_material_sectionv
Traceback (most recent call last):
  File "tests/actions/test_earth_pressure.py", line 8, in <module>
    from actions.earth_pressure import earth_pressure as ep
  File "/usr/local/lib/python3.8/dist-packages/actions/earth_pressure/earth_pressure.py", line 23, in <module>
    import xc
ImportError: /usr/local/lib/python3.8/dist-packages/xc.so: undefined symbol: _Z23export_material_sectionv

....

any Idea? thanks.

lcpt commented 2 years ago

This error occurs during the execution of the verifications tests, isn't it? So it's not an error during compilation.

The problem there is that Python is complaining about the export_material_section symbol that, normally, must be defined in /usr/local/lib/python3.8/dist-packages/xc.so. This shared library (xc.so) is created by the compiler that writes it in the (xc/lib) directory. After that, the local_install.sh script copies this file (among others) into the /usr/local/lib/python3.8/dist-packages which is the path where Python 3.8 can find the libraries. Something when wrong during this process.

When I run the command: nm --demangle xc.so | grep export_material_section in the /usr/local/lib/python3.8/dist-packages folder, I get:

0000000000873b60 t _GLOBAL__sub_I_export_material_section.cc
0000000000921860 T export_material_section()
00000000008554c6 t export_material_section() [clone .cold]

So the symbol is OK (otherwise the T letters become U-undefined-). Naturally, I get the same output if I run this command in the xc/libfolder.

Maybe this can give you a clue about what's going wrong.

lcpt commented 2 years ago

Hi, @ebrahimraeyat. Could you solve this?

ebrahimraeyat commented 2 years ago

Hi, @ebrahimraeyat. Could you solve this? Hi @lcpt. Unfortunately it stops compile at %99, I will try and tell you. many Thanks.

lcpt commented 2 years ago

That's strange. Have you checked the remaining space on disk?

ebrahimraeyat commented 2 years ago

yes, now I tested it and it compiled correctly, but the same errors in test. I will try later and will tell you.

Thanks a lot.

lcpt commented 2 years ago

Any news about this?

ebrahimraeyat commented 2 years ago

I tried, but not succeed. Unfortunately I am a little busy. BTW, I am very interested to integrate xc in my workflow for analyze and design of foundation, I am looking for easy way to do this:

https://github.com/ebrahimraeyat/OSAFE

lcpt commented 2 years ago

OK, no problem. I will close this issue then. You can always reopen it as needed.

Concerning the foundation design, I'll be glad to assist if needed.

ebrahimraeyat commented 2 years ago

Hi @lcpt . I compiled it again and this time It gives me this error:

` ebrahim@DESKTOP-GT2QLMA:~/xc/build_xc/xc/verif$ sh run_verif.sh

Setting MPLBACKEND to avoid Matplotlib complaints. Misc. tests. Traceback (most recent call last): File "tests/test_evalPy.py", line 10, in import xc_base ImportError: /home/ebrahim/xc/build_xc/xc/lib/libxc_utils.so: undefined symbol: _Z11copia_desdeRKNSt7cxx1112basic_stringIcSt11char_traitsIcESaIcEEEc Traceback (most recent call last): File "tests/test_execPy.py", line 10, in import xc_base ImportError: /home/ebrahim/xc/build_xc/xc/lib/libxc_utils.so: undefined symbol: _Z11copia_desdeRKNSt7cxx1112basic_stringIcSt11char_traitsIcESaIcEEEc test: testStairCaseFunction.py: ok. test: test_linear_interpolation.py: ok. test test_remove_accents.py: ok. Geometry tests. Vectors. ^CTraceback (most recent call last): File "tests/utility/geom/vector2d_test_01.py", line 11, in import xc_base ImportError: /home/ebrahim/xc/build_xc/xc/lib/libxc_utils.so: undefined symbol: _Z11copia_desdeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEc `

thanks.

lcpt commented 2 years ago

This is really weird.

The function "copia_desde" is defined in the library file libxc_basic_utils.a which is linked with the rest of the libraries. Could you type the command locate libxc_basic_utils.a in a Linux terminal?. The output of this command in my machine is as follows:

/home/luis/prg/xc/lib/libxc_basic_utils.a
/usr/local/lib/libxc_basic_utils.a
ebrahimraeyat commented 2 years ago
ebrahim@DESKTOP-GT2QLMA:/mnt/c/Users/ebi$ locate libxc_basic_utils.a
/home/ebrahim/xc/build_xc/xc/lib/libxc_basic_utils.a
/usr/local/lib/libxc_basic_utils.a
ebrahim@DESKTOP-GT2QLMA:/mnt/c/Users/ebi$

This is my output.

lcpt commented 2 years ago

OK, let's find if the function definition is there; could you type: nm --demangle /usr/local/lib/libxc_basic_utils.a | grep copia_desde and copy the output here? It must be something like:

00000000000017f0 T copia_desde(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char)
0000000000000600 b guard variable for copia_desde(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char)::retval
0000000000000620 b copia_desde(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char)::retval
ebrahimraeyat commented 2 years ago

for mine is:

ebrahim@DESKTOP-GT2QLMA:/mnt/c/Users/ebi$ nm --demangle /usr/local/lib/libxc_basic_utils.a | grep copia_desde
nm: text_string.cc.o: file format not recognized
nm: LabelContainer.cc.o: file format not recognized
nm: en_letra.cc.o: file format not recognized
nm: StrTok.cc.o: file format not recognized
nm: tab_cod.cc.o: file format not recognized
nm: latex.cc.o: file format not recognized
nm: StringFormatter.cc.o: file format not recognized
nm: FixedWidthReader.cc.o: file format not recognized
nm: imanip.cc.o: file format not recognized
nm: prep.cc.o: file format not recognized
nm: cmd_args.cc.o: file format not recognized
nm: memoria.cc.o: file format not recognized
ebrahim@DESKTOP-GT2QLMA:/mnt/c/Users/ebi$
lcpt commented 2 years ago

Well, something went wrong when creating this library. This is the first time I see this problem, I have no idea what's going on ...

ebrahimraeyat commented 2 years ago

it stops me in some times in compilation and it seems my RAM is full and I must reopen ubuntu and continue compiling. also if i type make -j 4 it raise me this error each time, I must use make -j 1 or 2. I will try with make -j 1 from scratch and examine it.

ebrahimraeyat commented 2 years ago

Hello @lcpt . Finally I installed xc correctly. I used make -j 1 for this. All test passed, only one error, I don't know if it is important:

 Solution tests.
test superlu_solver_test_01.py: ok.
test superlu_solver_test_02.py: ok.
test umf_solver_test_01.py: ok.
 ERROR in MPI_ALLREDUCE, DATATYPE=           7
test ill_conditioning_01.py: ok.

Thanks a lot.

lcpt commented 2 years ago

Hi, @ebrahimraeyat. Good news!

You're welcome.

Could you type sudo cat /proc/meminfo and copy the output here? This way, we can have an estimate of the minimum amount of memory required to compile XC.

Concerning the error, it seems not to affect test results (the test returns ok) but this can be treacherous. :) To get an idea of what is going on, it will be necessary to dig inside the test to detect where exactly the error is occurring. It seems a problem with the MPI libraries, and these are used in some solvers. The error seems to occur in that machine only, so in my opinion you can ignore it for now and start using the program. We can always return to it if necessary.

ebrahimraeyat commented 2 years ago

Thank you so much.

ebrahim@DESKTOP-GT2QLMA:/mnt/c/Users/ebi$ sudo cat /proc/meminfo
[sudo] password for ebrahim:
MemTotal:        6430008 kB
MemFree:         6285236 kB
MemAvailable:    6199896 kB
Buffers:           24452 kB
Cached:            34936 kB
SwapCached:            0 kB
Active:            36632 kB
Inactive:          25428 kB
Active(anon):         92 kB
Inactive(anon):     2648 kB
Active(file):      36540 kB
Inactive(file):    22780 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2097152 kB
SwapFree:        2097152 kB
Dirty:                12 kB
Writeback:             0 kB
AnonPages:          2672 kB
Mapped:             5948 kB
Shmem:                72 kB
KReclaimable:      21252 kB
Slab:              39940 kB
SReclaimable:      21252 kB
SUnreclaim:        18688 kB
KernelStack:        1504 kB
PageTables:          256 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5312156 kB
Committed_AS:       4996 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       20344 kB
VmallocChunk:          0 kB
Percpu:             1216 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:       17408 kB
DirectMap2M:     2430976 kB
DirectMap1G:     5242880 kB
ebrahim@DESKTOP-GT2QLMA:/mnt/c/Users/ebi$