gricardo Posted March 30, 2022 Report Share Posted March 30, 2022 Hello, I downloaded the latest systemC systemc-2.3.3, compiled and installed it locally. I also ran some of the tests and an example, and it all works fine. This is on RHEL 6.0, using GCC 6.3. During the compile, I got warnings like this: libtool: warning: library '/nis/asic/apps2/linux/sw/verilog/xcelium/XLM_20.09.011/tools.lnx86/cdsgcc/gcc/6.3/install/lib/../lib64/libstdc++.la' was moved. Searching on that warning (or similar) didn't turn up much, and the compile/install all works fine, so I thought it was no big deal. However, this same warning seems to be triggering an error for UVM-SystemC compile. I've downloaded: uvm-systemc-1.0-beta3, and I'm compiling it by pointing to the above newly compiled/installed systemC. ../configure --prefix=/nis/asic/gls_dump/ricardga/uvm-systemc-1.0-beta3 --with-systemc=/nis/asic/gls_dump/ricardga/systemc-2.3.3 --enable-debug --enable-profiling=instrument ------------------------------------------------------------------------------ Configuration summary of UVM-SystemC 1.0-beta3 for x86_64-pc-linux-gnu ------------------------------------------------------------------------------ Directory setup (based on SystemC layout): Installation prefix: /nis/asic/gls_dump/ricardga/uvm-systemc-1.0-beta3 Header files: /nis/asic/gls_dump/ricardga/uvm-systemc-1.0-beta3/include Libraries: /nis/asic/gls_dump/ricardga/uvm-systemc-1.0-beta3/lib Documentation: /nis/asic/gls_dump/ricardga/uvm-systemc-1.0-beta3/docs Examples: /nis/asic/gls_dump/ricardga/uvm-systemc-1.0-beta3/examples Target architecture: linux64 Build settings: Compiler (flags): g++ Preprocessor flags: SystemC CFLAGS: -I/nis/asic/gls_dump/ricardga/systemc-2.3.3/include SystemC LIBS: -L/nis/asic/gls_dump/ricardga/systemc-2.3.3/lib-linux64 -lsystemc Additional LIBS: Enable compiler optimizations: yes Include debug symbols: yes Generate instrumentation calls: instrument Regular expression library: POSIX ------------------------------------------------------------------------------ But then when I call gmake, I'm getting an error that seems related to the warning: > gmake Making all in docs gmake[1]: Entering directory `/users/ricardga/Downloads/uvm-systemc-1.0-beta3/objdir/docs' gmake[1]: Nothing to be done for `all'. gmake[1]: Leaving directory `/users/ricardga/Downloads/uvm-systemc-1.0-beta3/objdir/docs' Making all in src gmake[1]: Entering directory `/users/ricardga/Downloads/uvm-systemc-1.0-beta3/objdir/src' gmake all-recursive gmake[2]: Entering directory `/users/ricardga/Downloads/uvm-systemc-1.0-beta3/objdir/src' Making all in uvmsc gmake[3]: Entering directory `/users/ricardga/Downloads/uvm-systemc-1.0-beta3/objdir/src/uvmsc' gmake[4]: Entering directory `/users/ricardga/Downloads/uvm-systemc-1.0-beta3/objdir/src/uvmsc' CXX base/uvm_component.lo CXX base/uvm_component_name.lo CXX base/uvm_coreservice_t.lo CXX base/uvm_default_coreservice_t.lo CXX base/uvm_event_callback.lo CXX base/uvm_event.lo CXX base/uvm_globals.lo CXX base/uvm_mutex.lo CXX base/uvm_object.lo CXX base/uvm_object_globals.lo CXX base/uvm_root.lo CXX base/uvm_transaction.lo CXX base/uvm_version.lo CXX cb/uvm_callback.lo CXX cb/uvm_callbacks_base.lo CXX cb/uvm_typeid.lo CXX comps/uvm_agent.lo CXX conf/uvm_config_db_options.lo CXX conf/uvm_resource_base.lo CXX conf/uvm_resource_db_options.lo CXX conf/uvm_resource_options.lo CXX conf/uvm_resource_pool.lo CXX dpi/uvm_hdl.lo CXX factory/uvm_default_factory.lo CXX factory/uvm_factory_override.lo CXX misc/uvm_misc.lo CXX misc/uvm_scope_stack.lo CXX misc/uvm_status_container.lo CXX phasing/uvm_bottomup_phase.lo CXX phasing/uvm_common_phases.lo CXX phasing/uvm_domain.lo CXX phasing/uvm_objection.lo CXX phasing/uvm_phase.lo CXX phasing/uvm_process_phase.lo CXX phasing/uvm_runtime_phases.lo [134/1811] CXX phasing/uvm_topdown_phase.lo CXX policy/uvm_comparer.lo CXX policy/uvm_packer.lo CXX policy/uvm_recorder.lo CXX print/uvm_printer.lo CXX print/uvm_printer_globals.lo CXX print/uvm_table_printer.lo CXX print/uvm_tree_printer.lo CXX reg/uvm_mem.lo CXX reg/uvm_mem_mam.lo CXX reg/uvm_mem_region.lo CXX reg/uvm_reg.lo CXX reg/uvm_reg_adapter.lo CXX reg/uvm_reg_backdoor.lo CXX reg/uvm_reg_block.lo CXX reg/uvm_reg_field.lo CXX reg/uvm_reg_fifo.lo CXX reg/uvm_reg_file.lo CXX reg/uvm_reg_indirect_data.lo CXX reg/uvm_reg_indirect_ftdr_seq.lo CXX reg/uvm_reg_item.lo CXX reg/uvm_reg_map.lo CXX reg/uvm_reg_model.lo CXX reg/uvm_reg_read_only_cbs.lo CXX reg/uvm_reg_tlm_adapter.lo CXX reg/uvm_reg_write_only_cbs.lo CXX reg/uvm_vreg.lo CXX reg/uvm_vreg_field.lo CXX reg/uvm_vreg_field_cbs.lo CXX report/uvm_default_report_server.lo CXX report/uvm_report_catcher.lo CXX report/uvm_report_catcher_data.lo CXX report/uvm_report_handler.lo CXX report/uvm_report_message.lo CXX report/uvm_report_object.lo CXX report/uvm_report_server.lo CXX seq/uvm_sequence_base.lo CXX seq/uvm_sequence_item.lo CXX seq/uvm_sequencer_base.lo CXXLD libuvm-systemc.la libtool: warning: library '/nis/asic/apps2/linux/sw/verilog/xcelium/XLM_20.09.011/tools.lnx86/cdsgcc/gcc/6.3/install/lib/../lib64/libstdc++.la' was moved. gmake[4]: Leaving directory `/users/ricardga/Downloads/uvm-systemc-1.0-beta3/objdir/src/uvmsc' gmake[3]: Leaving directory `/users/ricardga/Downloads/uvm-systemc-1.0-beta3/objdir/src/uvmsc' Making all in . gmake[3]: Entering directory `/users/ricardga/Downloads/uvm-systemc-1.0-beta3/objdir/src' gmake[3]: Warning: File `uvmsc/libuvm-systemc.la' has modification time 0.031 s in the future CXXLD libuvm-systemc.la libtool: error: cannot find the library '/glad/common/pkgsData/gcc-v6.3.0p3/Linux/RHEL6.0-2013-x86_64/lib/../lib64/libstdc++.la' or unhandled argument '/glad/common/pkgsData/gcc-v6.3.0p3/Linux/RHEL6.0-2013-x86_64/lib/../lib64/libstdc++.la' gmake[3]: *** [libuvm-systemc.la] Error 1 gmake[3]: Leaving directory `/users/ricardga/Downloads/uvm-systemc-1.0-beta3/objdir/src' gmake[2]: *** [all-recursive] Error 1 gmake[2]: Leaving directory `/users/ricardga/Downloads/uvm-systemc-1.0-beta3/objdir/src' gmake[1]: *** [all] Error 2 gmake[1]: Leaving directory `/users/ricardga/Downloads/uvm-systemc-1.0-beta3/objdir/src' gmake: *** [all-recursive] Error 1 Sure enough that library/path in the error doesn't exist. But I don't know how to resolve the issue. Anyone have any ideas? Thank you, Quote Link to comment Share on other sites More sharing options...
gricardo Posted March 31, 2022 Author Report Share Posted March 31, 2022 I was able to work-around the issue. I'm thinking the problem has to do with the ".la" file: libstdc++.la And the associated libtool warning: libtool: warning: library '/nis/asic/apps2/linux/sw/verilog/xcelium/XLM_20.09.011/tools.lnx86/cdsgcc/gcc/6.3/install/lib/../lib64/libstdc++.la' was moved. If I look in the file warned about, libstdc++.la, I find this config at the end: # Directory that this library needs to be installed in: libdir='/glad/common/pkgsData/gcc-v6.3.0p3/Linux/RHEL6.0-2013-x86_64/lib/../lib64' And the error complains about the 'libdir' path (i.e. /glad/...), which indeed does not exist. Unfortunately I'm not familiar with libtool and ".la" files, but it seems to be a way for libtool to find and resolve linking dependencies. My knowledge of linking begins and ends with compiler directives (i.e. -l<LIB> ), and LD_LIBRARY_PATH variable 😞 And I could see that all the libraries (.so and .a files) were in fact in the path where the libstdc++.la file was found, so I don't quite understand the purpose of the ".la" file redirecting somewhere else. In any case, I simply created a sym link at the top of the "libdir" path (i.e. /glad/), and linked back to the path of the warning (where all the .so and .a files exist). My thought was that this would allow libtool to find the libraries, or at least have a valid path, and get passed the error. E.g.: ln -fsn /nis/asic/apps2/linux/sw/verilog/xcelium/XLM_20.09.011/tools.lnx86/cdsgcc/gcc/6.3/install/lib64 /glad/common/pkgsData/gcc-v6.3.0p3/Linux/RHEL6.0-2013-x86_64/lib64 This did allow the compile to progress passed the error and complete. I also ran gmake check and that ran and completed with error. Would still love someone more knowledgeable to explain if they know what was/is wrong with my setup. My guess is there was a lingering "libstdc++.la" file from the original gcc/libstdc++ install that either needed to be removed, or needs a correct 'libdir' value, instead of the non-existant path '/glad/....' Quote Link to comment Share on other sites More sharing options...
Stephan Gerth Posted March 31, 2022 Report Share Posted March 31, 2022 Hi Ricardo! I think your assumption is correct: The GCC install in the Xcelium is probably pointing to the original compilation path of Cadence and therefore is not valid on your system. I can see this path in our installations too, which confirms it is not an issue of you using it wrong. As a permanent solution, you probably need to reach out to your IT to fix those path references to the actual locations. gricardo 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.