-
Notifications
You must be signed in to change notification settings - Fork 864
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Undefined reference error in boost when compiling the latest #834
Comments
As a workaround, try using the --without-boost argument to configure. |
Actually, --without-boost --without-boost-asio --without-boost-regex |
cc @emelcher — it appears the autoconf checks for Boost aren’t sufficient. (This is part of the reason I was leery of incorporating Boost into Spike to begin with…) |
It compiled successfully when --without-boost --without-boost-asio --without-boost-regex options were used to configure. Thanks! |
I have observed some strange behavior myself. Without any boost installation, my config.log shows:
But config.status is still setting a (nonexistent) include path:
Even more strange: if I set $BOOST_ROOT to point to my installation of Boost 1.67, configure still sets all the same things. It can't find the library but still sets this nonexistent include path. |
I found out how to install and use, from home office, virtual machines in the university computer. |
The problem #834 (comment) has been reproduced and solved. |
Thanks for following up! |
Installed boost in MacOS and encountered a problem different from #820, #829, and #71. Confirmed that different versions of boost, i.e. 1.53 installed in /usr/local and 1.74 in /usr, lead to linker error. @sammy17 could You please check if there are multiple installations of boost on Your computer ? |
Found out that in MacOS there is a /usr/local/lib/libfdt.a installed. In Linux, this library is installed as libfdt.so.1 |
Interesting. So I guess we need to change our Makefiles to link our locally built libraries explicitly: e.g., |
I agree. However, in the failing command line I see Generally speaking, one might consider doing regression tests. A computer that is not being used at night could start a sequence of different VMs with different O.S.s and configuration variants and automatically pull and compile spike in each one, with different configure options, run it using the Indendent from regression test, still need to reproduce #820, #829, and #71 and find a clean solution for the fdt issue. |
I’m absolutely on board with doing better regression testing. I set up a CI flow a couple years ago, but then the CI provider (travis) stopped offering their free service. I haven’t taken the time to migrate the flow to a new CI provider. I’ll look into that soon. Unfortunately, it’s substantially more difficult to do multi-platform regression testing, as we’d need to do to catch build issues like this one. It sounds like you’re zeroing in on a fix to the FDT+boost problem, though. That’s good! |
Since then github has added a feature called "github actions." I'm using it in OpenOCD to verify that builds run, and in a few spec repos to check the PDF build. It works better than travis did IMO. |
Thanks, @timsifive; that's probably what we'll do. |
I noticed that my MacOS Catalina was outdated because issue reports mention Big Sur, #820 has been reproduced and found to be related to a macro definition in riscv/decode.h:177 #829 apparently is that FDT problem which I have already encountered. #71 apparently is the same as #820. So, all issues seem to be accounted for and reproduced, so I can start fixing, being able Maybe I should start with the FDT issue, then the P issue and last the config.status issue ? |
I'll handle the |
Since #856 has also been merged, can we call this issue resolved? |
As in #834 (comment), I suspect that this issue is due to two different versions of boost installed in the user's computer, one installed under |
I also encountered this issue today:
I was trying to compile under nix environment, however with
works for me. |
Ref to riscv-software-src/riscv-isa-sim#834 bogus -L/lib64 would fail linking in clang of nix multi user installation
Ref to riscv-software-src/riscv-isa-sim#834 bogus -L/lib64 would fail linking in clang of nix multi user installation
because riscv-software-src/riscv-isa-sim#834 and we don't need the debug socket
because riscv-software-src/riscv-isa-sim#834 and we don't need the debug socket
my linux version is RHEL6.10 I encounter boostlib problem like this. The system already has the version of boostlib 1.41. But I need the version of 1.53 then install it in my homedir. So how should I setup environment path or something else to make 1.53 version used prior to 1.41? |
because riscv-software-src/riscv-isa-sim#834 and we don't need the debug socket
I am getting the following error when I try to compile latest
As shown, the error is coming when spike-dasm is being linked. Even if I spike spike-dasm, same error comes when linking spike-main.
Please let me know if there is any way to identify the root cause and resolve the issue.
The text was updated successfully, but these errors were encountered: