-
-
Notifications
You must be signed in to change notification settings - Fork 381
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
ETLCPP doesn't build with gcc-13 #736
Comments
Forgot to mention:
|
Regarding the
|
OK, I know why. The diagnostic push does not disable it for GCC. |
Possible fix. Can you test? |
Hello. Thanks for looking. I applied this patch in lieu of the other workarounds. I now get this. No idea if it's related to the others, or if it is a new issue that somehow I didn't notice before:
|
Another patch for the above. 'maybe uninitialized' in unit tests. |
Hello. With that patch I get the pessimizing-move warning above. |
|
That one is a bit tricky to decipher. |
Hi. Can you try it yourself? I'm not doing anything special: just
building with gcc-13.
|
I don't have GCC 13 on anything here. |
John Wellbelove ***@***.***> writes:
GCC 13 isn't available to install. I tried Debian 12, but it isn't
available there either.
Hi. gcc-13 is in Debian/unstable: the bleeding-edge dev "release". On
your Debian 12 box you can enable it by dropping into your
/etc/apt/sources.list:
deb http://httpredir.debian.org/debian unstable main contrib non-free
Then you can
apt update && apt install g++-13
Then you can run g++-13 to reproduce these warnings.
This install will pull in some new packages, and will require some
things to be updated, but it's all backwards compatible.
debian/bookworm was released just last month, so unstable hasn't
diverged very far at all yet, and you're very unlikely to break
anything. Once you're done, I would remove that entry from the
/etc/apt/sources.list, and "apt update" to not pull in any more packages
from unstable. If you want to do this more explicitly, look up apt pinning.
|
|
|
|
I think you may have hit it during an upload. Can you try again?
|
Dima Kogan ***@***.***> writes:
I think you may have hit it during an upload
That's not what happened, but this WAS a bug that only existed for a day
or two:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1042498
Should be good now
|
OK, the updates are working now. |
I've tried compiling the unit tests for The CMakeLists.txt contains these compiler flags.
Running the unit test script for GCC-13 + STL, I get no compilation warnings or errors.
Have I missed something? |
Can you see what compile commands you're ending up with? The above tells you what you're telling cmake, but not what the compiler gets. Also, you can paste the compile commands as they appear above in this report to reproduce the specific complaints. If THAT isn't reproducible, we should figure out why. |
Actually, I bet I know what's going on. You installed You should tell cmake to compile with |
|
I get the errors if I use your command line parameters, but not with the cmake route. |
If I set the cmake file to 'verbose' mode I get this for the compilation of
|
OK. I suppose you should compare the failing and succeeding commands to see how they differ. What is |
I apologise that I'm not able to spend a lot of time on this at the moment, as I'm in the middle of organising a major kitchen refit. |
I've just tried this on the command line and get no errors!?
|
I am now on gcc (Debian 13.2.0-1) 13.2.0 |
Hi. Let's clarify who's testing what. I'm on the
Without the patches I see test_bit_stream.cpp fail, but the patches fix it. test_message_packet.cpp fails with and without the patches. Above you said that test_bit_stream.cpp is building fine for you. This is witout any of the fixes? What code, exactly are you building? Similarly, for test_message_packet.cpp you're saying you see successful builds or not? If you ARE seeing successful builds, which code are you looking at? Thanks |
OK, I copied the wrong unit test file name from the previous posts (I'm hopping back an forth between the kitchen refit and Github) When I use the ETL's unit test CMakeLists.txt, I don't |
This compiles with the error.
This doesn't
The only difference appears to be this line... |
Hello. I see the failures both ways. I'm at the 20.37.2 tag, which probably isn't where you are. And you're saying that with the sanitizers you see no warnings at all? I don't know enough about the sanitizers to know why that would be the case, but it's an issue for your build regardless: the sanitizers are extra diagnostic instrumentation, and any canonical build doesn't use them. I disabled these for Debian because turning them on can make the build fail due to external factors (this was discussed in an earlier etlcpp bug report). |
Looks like I'm going to have to run my CI with optional inclusion of the sanitizers. I'm on 20.37.2 + the patches that I sent you. |
I've got rid of most of the warnings/errors, but I'm currently stuck with a
This only occurs when the STL At the moment I can't see how GCC's |
Thanks for looking at this. I don't know anything about your specific case, but as with any software, gcc has bugs. It's certainly possible that you stumbled on one. If so, reporting it would be good. You should run the preprocessor, and minimize the reproducing program (something like And if it's not really a bug, then trying to isolate it should clarify exactly why it's complaining. Thanks |
Hello. I just built and uploaded the latest etlcpp release to Debian. In the process I hit 3 points where the build failed with the gcc-13 compiler. Here they are.
The build system runs this command, with the shown effect:
This can be fixed by adding
#include <cstdint>
, as done in this patch: https://salsa.debian.org/debian/etlcpp/-/blob/master/debian/patches/include-cstdint-to-build-with-gcc-13.patchg++-13 generates more warnings than earlier versions of gcc, and we're
building with
-Werror
, so these are fatal. We get this:I'm working around this by passing
-Wno-aggressive-loop-optimizations
And another similar one:
I'm working around this by passing
-Wno-pessimizing-move
Thanks.
The text was updated successfully, but these errors were encountered: