-
Notifications
You must be signed in to change notification settings - Fork 141
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
Program won't build after latest commits #179
Comments
Several other points that hopefully will be helpful. May be related or not. Depending on how I build it, i'm getting one of several errors:
make[2]: *** [src/common/CMakeFiles/lime_common.dir/build.make:106: src/common/scm_rev.cpp] Error 1
|
And if I build it without clang manually, it gets to about 86% and then gives me the following error: In file included from /home/jerry/Lime3DS/src/core/gdbstub/hio.cpp:5: |
OK - i've been troubleshoot this, and i've concluded that the error in # 1 above (two posts ago) is not related to the program but must be something about the way make is configured on my machine so please ignore. The main issue preventing building with clang is the error in # 2 there - clang++: error: linker command failed with exit code 1 (use -v to see invocation) |
I can compile just fine, as can GitHub Actions. It must be something on your end |
Yes. After I fixed my pkgbuild, I successfully ran it in a clean chroot so that nothing on my side could interfere. I had the same result. I can try recloning the normal way again and starting from scratch but I expect the same. I'll try to go back and clone old versions of the repo before the latest commit which built fine on Friday and try to identify a commit where the problem starts. I'll report back |
No, the commit that built perfectly on Friday no longer builds. not sure what the difference is. I'm attaching the full log where you can see all of the steps i took. the error happens at the end around 85% built. This is with the standard compiler, not clang. Using clang, I get a different error when linking. |
This log is the same detailed log as above but building with clang. |
Getting the exact same error on a fresh install of Arch when compiling either with clang manually or the AUR PKGBUILD. |
On GCC, I get the same tautological compare error, on Clang I get a linker error for SpvTools.cpp at every instance of |
Can you install SPIRV-Tools and try again? |
I actually looked into this yesterday. It is already installed. However, just to be thorough, I added it to makedepends on my pkgbuild and tried it in a clean chroot - same result. |
How about manually updating Edit: And I suppose another thing to try is to uninstall SPIRV-Tools and try again; maybe the build is getting confused as to what to link to, although I don't know why Arch is acting so different. |
OK that didn't make a difference when pulling and placing the latest master of glslang in the externals folder. Removing the spirv-tools package is complicated, it's at least three levels of dependencies deep so i'm worried i'd screw up something important. However, when building my pkg in a clean chroot, in theory, spirv-tools should not be installed when it's not added to makedepends, so i'm thinking that we already may know the answer is that it won't help. |
How about using
You can probably take out
and be fine, but perhaps ninja links things in a way that regular cmake doesn't. Edit: The full Linux build script is here. |
it's erroring out because it's looking for: CMAKE_BUILD_WITH_INSTALL_RPATH that needs to be manually set |
It actually compiled for me with ninja. This is what I used:
|
OK, seems to. i'll work out the pkgbuild and put out an aur update shortly. I consider this a workaround, but there's no reason why we can't use ninja instead. I wonder what the heck the problem was. |
Yeah, my guess is how cmake generates the make files. I've always had issues compiling Citra making cmake generate regular Makefiles; there was always an issue with linking. Making it configure Ninja formatted Makefiles seemed to fix things, although I haven't gotten modern Citra to compile with gcc that way either (it worked back in the QT5 days). I'm glad it worked out but if you're still open to some experimentation, I quickly made a branch that explicitly links glslang to the three executables. I'm not sure if https://github.com/rtiangha/Lime3DS/tree/link-glslang But honestly, all the Citra forks are using ninja for release builds meaning that's the system that gets the most testing, so if no one is objecting, maybe Arch should switch to it as well and make it one less thing to worry about. |
i'll test but i can't seem to clone. is there a password needed or something? |
I think you'd have to clone it this way:
|
still get the same errors. sorry. |
Well, now we know! Thanks. |
OK the arch package has been updated to ninja. i will be happy to continue to test this for you. Let me know. |
Actually, could you do a git pull and try one more time? This time, I'm linking all of glslang rather than just a piece of it. This is just for my curiosity since I don't have access to an Arch instance to test on. |
Same result. The past two attempts have only been with clang - i assume that these troubleshooting steps are directed at the error using clang, not the error using the regular method. |
Yes; correct. I stopped trying to build with gcc a while ago because it'd always throw linking errors with cryptopp and I could never figure out how to fix it. Every other compiler seemed to work fine. Ah well, thanks for the help with testing. At least I won't be losing sleep over how to solve this, lol. |
yes, the error at around 86% (or possibly 76%) was right after cryptopp - but I had been thinking that cryptopp was compiling okay and whatever comes immediately after cryptopp was causing the problem. But I agree, I don't think it is such a big deal now that we have another option. |
As an aside, I was looking at your PKGBUILD. If you wanted to, you could probably pass |
OK I'll add these two. The suggestion that you deleted when you edited won't seem to work because it gave me conflicts with enet files that it said were identical already in the file system. So I suppose we should leave it at usr/local to avoid conflicts. |
I can build with both GCC and Clang, so it must be a system-specific issue in some way. |
can you do me a favor when you get a chance? I'm trying to get a pkgbuild going that will build the latest release version. this is somewhat more complicated since you don't have a separate branch in github. I have a pkgbuild here: https://aur.archlinux.org/packages/lime3ds - when I build this, however, it does not show the release number even though it clones the release tag #. Rather, it seems to have some sort of hash, so there's no way to verify that it's building correctly. I'd rather it say Lime3DS 2113 like the appimage says. Is there a way to tweak the git command to correct this? Truth is, what I'd REALLY like to do is to download the source code tar.gz in the pkgbuild, transform it into a git repository with git init or something like that, and then build from there; i'm thinking this might solve the problem. however, I can't get the submodules to work properly when I do this. I've asked the arch people to help out with this: https://www.reddit.com/r/archlinux/comments/1cw5jq3/pkgbuild_help_please/ If you're busy it's not urgent, but if you have any quick insights, i'd be grateful. thanks. |
Is there an existing issue for this?
Affected Build(s)
Latest master 10317
Description of Issue
Program no longer builds.
Expected Behavior
Expect the program to build properly.
Reproduction Steps
I'm using Arch Linux, see log below.
Log File
[ 86%] Building CXX object src/core/CMakeFiles/lime_core.dir/hle/applets/swkbd.cpp.o
In file included from /home/jerry/Lime3DS/src/core/gdbstub/hio.cpp:5:
/home/jerry/Lime3DS/externals/fmt/include/fmt/ranges.h:211:49: error: self-comparison always evaluates to true [-Werror=tautological-compare]
211 | integer_sequence<bool, (Is == Is)...>) -> std::true_type;
| ~~~^~~~~
[ 86%] Building CXX object src/core/CMakeFiles/lime_core.dir/hle/kernel/address_arbiter.cpp.o
[ 86%] Building CXX object src/core/CMakeFiles/lime_core.dir/hle/kernel/client_port.cpp.o
[ 86%] Building CXX object src/core/CMakeFiles/lime_core.dir/hle/kernel/client_session.cpp.o
[ 86%] Building CXX object src/core/CMakeFiles/lime_core.dir/hle/kernel/config_mem.cpp.o
[ 87%] Building CXX object src/core/CMakeFiles/lime_core.dir/hle/kernel/event.cpp.o
[ 87%] Building CXX object src/core/CMakeFiles/lime_core.dir/hle/kernel/handle_table.cpp.o
[ 87%] Building CXX object src/core/CMakeFiles/lime_core.dir/hle/kernel/hle_ipc.cpp.o
cc1plus: note: unrecognized command-line option ‘-Wno-unused-command-line-argument’ may have been intended to silence earlier diagnostics
cc1plus: all warnings being treated as errors
make[2]: *** [src/core/CMakeFiles/lime_core.dir/build.make:941: src/core/CMakeFiles/lime_core.dir/gdbstub/hio.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:2553: src/core/CMakeFiles/lime_core.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
System Configuration
CPU: AMD
GPU/Driver: AMD/Nvidia
RAM: 16
OS: Arch
The text was updated successfully, but these errors were encountered: