On Sat, 2024-09-21 at 04:30 +0000, ci_notify@linaro.org wrote:
Dear contributor, our automatic CI has detected problems related to your patch(es). Please find some details below. If you have any questions, please follow up on linaro-toolchain@lists.linaro.org mailing list, Libera's #linaro-tcwg channel, or ping your favourite Linaro toolchain developer on the usual project channel.
We understand that it might be difficult to find the necessary logs or reproduce the issue locally. If you can't get what you need from our CI within minutes, let us know and we will be happy to help.
In gcc_build master-aarch64 after:
| gcc patch https://patchwork.sourceware.org/patch/97787 | Author: David Malcolm dmalcolm@redhat.com | Date: Fri Sep 20 19:05:46 2024 -0400 | | diagnostics: convert text hooks to use diagnostic_text_output_format [PR116613] | | The diagnostic_starter and diagnostic_finalizer callbacks and most of | their support subroutines are only used by the "text" output format. | | Emphasize this and reduce the binding with diagnostic_context | by renaming the callbacks to add "_text" in their names, and converting | ... 264 lines of the commit log omitted. | ... applied on top of baseline commit: | 2484ba167e1c libstdc++: fix C header include guards
Results changed to # reset_artifacts: -10 # true: 0 # build_abe gcc: # FAILED # First few build errors in logs: # 00:06:02 /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnosti c-format-sarif.cc:3130:8: error: ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ cannot be overloaded with ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ # 00:06:03 make[2]: *** [Makefile:1195: diagnostic-format-sarif.o] Error 1 # 00:06:03 make[1]: *** [Makefile:4701: all-gcc] Error 2 # 00:06:03 make: *** [Makefile:1062: all] Error 2
This works for me, and I've been staring at the code and can't see the issue. Any ideas what the problem is?
What stage 0 compiler are you using?
Thanks Dave
Hi David,
On Sun, 22 Sept 2024 at 00:39, David Malcolm dmalcolm@redhat.com wrote:
On Sat, 2024-09-21 at 04:30 +0000, ci_notify@linaro.org wrote:
Dear contributor, our automatic CI has detected problems related to your patch(es). Please find some details below. If you have any questions, please follow up on linaro-toolchain@lists.linaro.org mailing list, Libera's #linaro-tcwg channel, or ping your favourite Linaro toolchain developer on the usual project channel.
We understand that it might be difficult to find the necessary logs or reproduce the issue locally. If you can't get what you need from our CI within minutes, let us know and we will be happy to help.
In gcc_build master-aarch64 after:
| gcc patch https://patchwork.sourceware.org/patch/97787 | Author: David Malcolm dmalcolm@redhat.com | Date: Fri Sep 20 19:05:46 2024 -0400 | | diagnostics: convert text hooks to use diagnostic_text_output_format [PR116613] | | The diagnostic_starter and diagnostic_finalizer callbacks and most of | their support subroutines are only used by the "text" output format. | | Emphasize this and reduce the binding with diagnostic_context | by renaming the callbacks to add "_text" in their names, and converting | ... 264 lines of the commit log omitted. | ... applied on top of baseline commit: | 2484ba167e1c libstdc++: fix C header include guards
Results changed to # reset_artifacts: -10 # true: 0 # build_abe gcc: # FAILED # First few build errors in logs: # 00:06:02 /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnosti c-format-sarif.cc:3130:8: error: ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ cannot be overloaded with ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ # 00:06:03 make[2]: *** [Makefile:1195: diagnostic-format-sarif.o] Error 1 # 00:06:03 make[1]: *** [Makefile:4701: all-gcc] Error 2 # 00:06:03 make: *** [Makefile:1062: all] Error 2
This works for me, and I've been staring at the code and can't see the issue. Any ideas what the problem is?
From the logs, I could extract slightly better error messages: g++ -fno-PIE -c -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Wconditionally-supported -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -DHAVE_CONFIG_H -fno-PIE -I. -I. -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/. -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../include -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libcpp/include -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libcody -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/builds/destdir/aarch64-unknown-linux-gnu/include -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/builds/destdir/aarch64-unknown-linux-gnu/include -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/builds/destdir/aarch64-unknown-linux-gnu/include -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libdecnumber -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libdecnumber/bid -I../libdecnumber -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libbacktrace -o diagnostic-format-sarif.o -MT diagnostic-format-sarif.o -MMD -MP -MF ./.deps/diagnostic-format-sarif.TPo /home/tcwg-build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnostic-format-sarif.cc /home/tcwg-build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnostic-format-sarif.cc:3130:8: error: ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ cannot be overloaded with ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ 3130 | void after_diagnostic (const diagnostic_info &) final override | ^~~~~~~~~~~~~~~~ /home/tcwg-build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnostic-format-sarif.cc:3126:8: note: previous declaration ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ 3126 | void after_diagnostic (const diagnostic_info &) final override | ^~~~~~~~~~~~~~~~ make[2]: *** [Makefile:1195: diagnostic-format-sarif.o] Error 1
What stage 0 compiler are you using?
We are using native aarch64 GCC for ubuntu-22.04, which is gcc 11.4 IIUC.
Thanks,
Christophe
Thanks Dave
linaro-toolchain mailing list -- linaro-toolchain@lists.linaro.org To unsubscribe send an email to linaro-toolchain-leave@lists.linaro.org
On Mon, 2024-09-23 at 15:18 +0200, Christophe Lyon wrote:
Hi David,
On Sun, 22 Sept 2024 at 00:39, David Malcolm dmalcolm@redhat.com wrote:
On Sat, 2024-09-21 at 04:30 +0000, ci_notify@linaro.org wrote:
Dear contributor, our automatic CI has detected problems related to your patch(es). Please find some details below. If you have any questions, please follow up on linaro-toolchain@lists.linaro.org mailing list, Libera's #linaro- tcwg channel, or ping your favourite Linaro toolchain developer on the usual project channel.
We understand that it might be difficult to find the necessary logs or reproduce the issue locally. If you can't get what you need from our CI within minutes, let us know and we will be happy to help.
In gcc_build master-aarch64 after:
| gcc patch https://patchwork.sourceware.org/patch/97787 | Author: David Malcolm dmalcolm@redhat.com | Date: Fri Sep 20 19:05:46 2024 -0400 | | diagnostics: convert text hooks to use diagnostic_text_output_format [PR116613] | | The diagnostic_starter and diagnostic_finalizer callbacks and most of | their support subroutines are only used by the "text" output format. | | Emphasize this and reduce the binding with diagnostic_context | by renaming the callbacks to add "_text" in their names, and converting | ... 264 lines of the commit log omitted. | ... applied on top of baseline commit: | 2484ba167e1c libstdc++: fix C header include guards
Results changed to # reset_artifacts: -10 # true: 0 # build_abe gcc: # FAILED # First few build errors in logs: # 00:06:02 /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagn osti c-format-sarif.cc:3130:8: error: ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ cannot be overloaded with ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ # 00:06:03 make[2]: *** [Makefile:1195: diagnostic-format- sarif.o] Error 1 # 00:06:03 make[1]: *** [Makefile:4701: all-gcc] Error 2 # 00:06:03 make: *** [Makefile:1062: all] Error 2
This works for me, and I've been staring at the code and can't see the issue. Any ideas what the problem is?
From the logs, I could extract slightly better error messages: g++ -fno-PIE -c -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Wconditionally-supported -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -DHAVE_CONFIG_H -fno-PIE -I. -I. -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/. -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../includ e -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libcpp /include -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libcod y -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/builds/destdir/aarch64- unknown-linux-gnu/include -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/builds/destdir/aarch64- unknown-linux-gnu/include -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/builds/destdir/aarch64- unknown-linux-gnu/include -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libdec number -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libdec number/bid -I../libdecnumber -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libbac ktrace -o diagnostic-format-sarif.o -MT diagnostic-format-sarif.o -MMD -MP -MF ./.deps/diagnostic-format-sarif.TPo /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnosti c-format-sarif.cc /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnosti c-format-sarif.cc:3130:8: error: ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ cannot be overloaded with ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ 3130 | void after_diagnostic (const diagnostic_info &) final override | ^~~~~~~~~~~~~~~~ /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnosti c-format-sarif.cc:3126:8: note: previous declaration ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ 3126 | void after_diagnostic (const diagnostic_info &) final override | ^~~~~~~~~~~~~~~~ make[2]: *** [Makefile:1195: diagnostic-format-sarif.o] Error 1
Thanks for the info.
Looking at the above, it appears that *both* lines 3126 and 3130 of diagnostic-format-sarif.cc read:
void after_diagnostic (const diagnostic_info &) final override
which suggests that somehow there's a duplicate copy of that function.
But looking at git, I see just one copy:
https://gcc.gnu.org/git/?p=gcc.git%3Ba=blob%3Bf=gcc/diagnostic-format-sarif....
which is at line 3126, and looking at the history of the file in git I don't see any duplication.
Is there a chance that the CI machinery has somehow managed to apply the patch twice, or by some other means somehow get a duplicate copy of that function?
I see the patch in patchwork:
https://patchwork.sourceware.org/project/gcc/patch/20240920230546.1850339-1-...
based on what I posted to the mailing list has this hunk:
diff --git a/gcc/diagnostic-format-sarif.cc b/gcc/diagnostic-format-sarif.cc index 33d60a680beb..eda67a6f6583 100644 --- a/gcc/diagnostic-format-sarif.cc +++ b/gcc/diagnostic-format-sarif.cc @@ -3139,6 +3139,10 @@ public: { m_builder.emit_diagram (m_context, diagram); } + void after_diagnostic (const diagnostic_info &) final override + { + /* No-op. */ + }
sarif_builder &get_builder () { return m_builder; }
so is there a chance that that addition got applied to the patched copy in git, leading to two copies???
Sorry if I'm missing something here.
Thanks Dave
On Mon, 23 Sept 2024 at 19:54, David Malcolm dmalcolm@redhat.com wrote:
On Mon, 2024-09-23 at 15:18 +0200, Christophe Lyon wrote:
Hi David,
On Sun, 22 Sept 2024 at 00:39, David Malcolm dmalcolm@redhat.com wrote:
On Sat, 2024-09-21 at 04:30 +0000, ci_notify@linaro.org wrote:
Dear contributor, our automatic CI has detected problems related to your patch(es). Please find some details below. If you have any questions, please follow up on linaro-toolchain@lists.linaro.org mailing list, Libera's #linaro- tcwg channel, or ping your favourite Linaro toolchain developer on the usual project channel.
We understand that it might be difficult to find the necessary logs or reproduce the issue locally. If you can't get what you need from our CI within minutes, let us know and we will be happy to help.
In gcc_build master-aarch64 after:
| gcc patch https://patchwork.sourceware.org/patch/97787 | Author: David Malcolm dmalcolm@redhat.com | Date: Fri Sep 20 19:05:46 2024 -0400 | | diagnostics: convert text hooks to use diagnostic_text_output_format [PR116613] | | The diagnostic_starter and diagnostic_finalizer callbacks and most of | their support subroutines are only used by the "text" output format. | | Emphasize this and reduce the binding with diagnostic_context | by renaming the callbacks to add "_text" in their names, and converting | ... 264 lines of the commit log omitted. | ... applied on top of baseline commit: | 2484ba167e1c libstdc++: fix C header include guards
Results changed to # reset_artifacts: -10 # true: 0 # build_abe gcc: # FAILED # First few build errors in logs: # 00:06:02 /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagn osti c-format-sarif.cc:3130:8: error: ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ cannot be overloaded with ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ # 00:06:03 make[2]: *** [Makefile:1195: diagnostic-format- sarif.o] Error 1 # 00:06:03 make[1]: *** [Makefile:4701: all-gcc] Error 2 # 00:06:03 make: *** [Makefile:1062: all] Error 2
This works for me, and I've been staring at the code and can't see the issue. Any ideas what the problem is?
From the logs, I could extract slightly better error messages: g++ -fno-PIE -c -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Wconditionally-supported -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -DHAVE_CONFIG_H -fno-PIE -I. -I. -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/. -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../includ e -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libcpp /include -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libcod y -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/builds/destdir/aarch64- unknown-linux-gnu/include -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/builds/destdir/aarch64- unknown-linux-gnu/include -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/builds/destdir/aarch64- unknown-linux-gnu/include -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libdec number -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libdec number/bid -I../libdecnumber -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libbac ktrace -o diagnostic-format-sarif.o -MT diagnostic-format-sarif.o -MMD -MP -MF ./.deps/diagnostic-format-sarif.TPo /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnosti c-format-sarif.cc /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnosti c-format-sarif.cc:3130:8: error: ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ cannot be overloaded with ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ 3130 | void after_diagnostic (const diagnostic_info &) final override | ^~~~~~~~~~~~~~~~ /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnosti c-format-sarif.cc:3126:8: note: previous declaration ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ 3126 | void after_diagnostic (const diagnostic_info &) final override | ^~~~~~~~~~~~~~~~ make[2]: *** [Makefile:1195: diagnostic-format-sarif.o] Error 1
Thanks for the info.
Looking at the above, it appears that *both* lines 3126 and 3130 of diagnostic-format-sarif.cc read:
void after_diagnostic (const diagnostic_info &) final override
which suggests that somehow there's a duplicate copy of that function.
But looking at git, I see just one copy:
https://gcc.gnu.org/git/?p=gcc.git%3Ba=blob%3Bf=gcc/diagnostic-format-sarif....
which is at line 3126, and looking at the history of the file in git I don't see any duplication.
Is there a chance that the CI machinery has somehow managed to apply the patch twice, or by some other means somehow get a duplicate copy of that function?
I see the patch in patchwork:
https://patchwork.sourceware.org/project/gcc/patch/20240920230546.1850339-1-...
based on what I posted to the mailing list has this hunk:
diff --git a/gcc/diagnostic-format-sarif.cc b/gcc/diagnostic-format-sarif.cc index 33d60a680beb..eda67a6f6583 100644 --- a/gcc/diagnostic-format-sarif.cc +++ b/gcc/diagnostic-format-sarif.cc @@ -3139,6 +3139,10 @@ public: { m_builder.emit_diagram (m_context, diagram); }
void after_diagnostic (const diagnostic_info &) final override
{
/* No-op. */
}
sarif_builder &get_builder () { return m_builder; }
so is there a chance that that addition got applied to the patched copy in git, leading to two copies???
Sorry if I'm missing something here.
Indeed there seems to be a problem when applying the patch :-(
The log says: Applying: diagnostics: convert text hooks to use diagnostic_text_output_format [PR116613] Using index info to reconstruct a base tree... M gcc/c-family/c-opts.cc M gcc/coretypes.h M gcc/cp/cp-tree.h M gcc/cp/error.cc M gcc/diagnostic-format-json.cc M gcc/diagnostic-format-sarif.cc M gcc/diagnostic-format-text.cc M gcc/diagnostic-format-text.h M gcc/diagnostic-format.h M gcc/diagnostic-macro-unwinding.cc M gcc/diagnostic-macro-unwinding.h M gcc/diagnostic-path.cc M gcc/diagnostic.cc M gcc/diagnostic.h M gcc/fortran/error.cc M gcc/jit/dummy-frontend.cc M gcc/langhooks-def.h M gcc/langhooks.cc M gcc/langhooks.h M gcc/rust/resolve/rust-ast-resolve-expr.cc M gcc/testsuite/g++.dg/plugin/show_template_tree_color_plugin.c M gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.c M gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.c M gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.c M gcc/tree-diagnostic.cc M libcc1/context.cc Falling back to patching base and 3-way merge... Auto-merging gcc/diagnostic.h Auto-merging gcc/diagnostic-format-sarif.cc Auto-merging gcc/cp/cp-tree.h Auto-merging gcc/c-family/c-opts.cc
This was on top of 34366176046351250e1beb578664d926fbdd50c9, however looking at the resulting tree, the commit has the right commit message, but the only change is: diff --git a/gcc/diagnostic-format-sarif.cc b/gcc/diagnostic-format-sarif.cc index 6cd18cef6c8..4477932c61e 100644 --- a/gcc/diagnostic-format-sarif.cc +++ b/gcc/diagnostic-format-sarif.cc @@ -3127,6 +3127,10 @@ public: { /* No-op. */ } + void after_diagnostic (const diagnostic_info &) final override + { + /* No-op. */ + }
sarif_builder &get_builder () { return m_builder; }
which does explain the build error.
Now.... we need to investigate why there's a problem when applying your patch!
Thanks and sorry for the noise
Christophe
Thanks Dave
On Tue, 24 Sept 2024 at 13:56, Christophe Lyon christophe.lyon@linaro.org wrote:
On Mon, 23 Sept 2024 at 19:54, David Malcolm dmalcolm@redhat.com wrote:
On Mon, 2024-09-23 at 15:18 +0200, Christophe Lyon wrote:
Hi David,
On Sun, 22 Sept 2024 at 00:39, David Malcolm dmalcolm@redhat.com wrote:
On Sat, 2024-09-21 at 04:30 +0000, ci_notify@linaro.org wrote:
Dear contributor, our automatic CI has detected problems related to your patch(es). Please find some details below. If you have any questions, please follow up on linaro-toolchain@lists.linaro.org mailing list, Libera's #linaro- tcwg channel, or ping your favourite Linaro toolchain developer on the usual project channel.
We understand that it might be difficult to find the necessary logs or reproduce the issue locally. If you can't get what you need from our CI within minutes, let us know and we will be happy to help.
In gcc_build master-aarch64 after:
| gcc patch https://patchwork.sourceware.org/patch/97787 | Author: David Malcolm dmalcolm@redhat.com | Date: Fri Sep 20 19:05:46 2024 -0400 | | diagnostics: convert text hooks to use diagnostic_text_output_format [PR116613] | | The diagnostic_starter and diagnostic_finalizer callbacks and most of | their support subroutines are only used by the "text" output format. | | Emphasize this and reduce the binding with diagnostic_context | by renaming the callbacks to add "_text" in their names, and converting | ... 264 lines of the commit log omitted. | ... applied on top of baseline commit: | 2484ba167e1c libstdc++: fix C header include guards
Results changed to # reset_artifacts: -10 # true: 0 # build_abe gcc: # FAILED # First few build errors in logs: # 00:06:02 /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagn osti c-format-sarif.cc:3130:8: error: ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ cannot be overloaded with ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ # 00:06:03 make[2]: *** [Makefile:1195: diagnostic-format- sarif.o] Error 1 # 00:06:03 make[1]: *** [Makefile:4701: all-gcc] Error 2 # 00:06:03 make: *** [Makefile:1062: all] Error 2
This works for me, and I've been staring at the code and can't see the issue. Any ideas what the problem is?
From the logs, I could extract slightly better error messages: g++ -fno-PIE -c -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Wconditionally-supported -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -DHAVE_CONFIG_H -fno-PIE -I. -I. -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/. -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../includ e -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libcpp /include -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libcod y -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/builds/destdir/aarch64- unknown-linux-gnu/include -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/builds/destdir/aarch64- unknown-linux-gnu/include -I/home/tcwg-build/workspace/tcwg_gnu_4/abe/builds/destdir/aarch64- unknown-linux-gnu/include -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libdec number -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libdec number/bid -I../libdecnumber -I/home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/../libbac ktrace -o diagnostic-format-sarif.o -MT diagnostic-format-sarif.o -MMD -MP -MF ./.deps/diagnostic-format-sarif.TPo /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnosti c-format-sarif.cc /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnosti c-format-sarif.cc:3130:8: error: ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ cannot be overloaded with ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ 3130 | void after_diagnostic (const diagnostic_info &) final override | ^~~~~~~~~~~~~~~~ /home/tcwg- build/workspace/tcwg_gnu_4/abe/snapshots/gcc.git~master/gcc/diagnosti c-format-sarif.cc:3126:8: note: previous declaration ‘void sarif_output_format::after_diagnostic(const diagnostic_info&)’ 3126 | void after_diagnostic (const diagnostic_info &) final override | ^~~~~~~~~~~~~~~~ make[2]: *** [Makefile:1195: diagnostic-format-sarif.o] Error 1
Thanks for the info.
Looking at the above, it appears that *both* lines 3126 and 3130 of diagnostic-format-sarif.cc read:
void after_diagnostic (const diagnostic_info &) final override
which suggests that somehow there's a duplicate copy of that function.
But looking at git, I see just one copy:
https://gcc.gnu.org/git/?p=gcc.git%3Ba=blob%3Bf=gcc/diagnostic-format-sarif....
which is at line 3126, and looking at the history of the file in git I don't see any duplication.
Is there a chance that the CI machinery has somehow managed to apply the patch twice, or by some other means somehow get a duplicate copy of that function?
I see the patch in patchwork:
https://patchwork.sourceware.org/project/gcc/patch/20240920230546.1850339-1-...
based on what I posted to the mailing list has this hunk:
diff --git a/gcc/diagnostic-format-sarif.cc b/gcc/diagnostic-format-sarif.cc index 33d60a680beb..eda67a6f6583 100644 --- a/gcc/diagnostic-format-sarif.cc +++ b/gcc/diagnostic-format-sarif.cc @@ -3139,6 +3139,10 @@ public: { m_builder.emit_diagram (m_context, diagram); }
void after_diagnostic (const diagnostic_info &) final override
{
/* No-op. */
}
sarif_builder &get_builder () { return m_builder; }
so is there a chance that that addition got applied to the patched copy in git, leading to two copies???
Sorry if I'm missing something here.
Indeed there seems to be a problem when applying the patch :-(
The log says: Applying: diagnostics: convert text hooks to use diagnostic_text_output_format [PR116613] Using index info to reconstruct a base tree... M gcc/c-family/c-opts.cc M gcc/coretypes.h M gcc/cp/cp-tree.h M gcc/cp/error.cc M gcc/diagnostic-format-json.cc M gcc/diagnostic-format-sarif.cc M gcc/diagnostic-format-text.cc M gcc/diagnostic-format-text.h M gcc/diagnostic-format.h M gcc/diagnostic-macro-unwinding.cc M gcc/diagnostic-macro-unwinding.h M gcc/diagnostic-path.cc M gcc/diagnostic.cc M gcc/diagnostic.h M gcc/fortran/error.cc M gcc/jit/dummy-frontend.cc M gcc/langhooks-def.h M gcc/langhooks.cc M gcc/langhooks.h M gcc/rust/resolve/rust-ast-resolve-expr.cc M gcc/testsuite/g++.dg/plugin/show_template_tree_color_plugin.c M gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.c M gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.c M gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.c M gcc/tree-diagnostic.cc M libcc1/context.cc Falling back to patching base and 3-way merge... Auto-merging gcc/diagnostic.h Auto-merging gcc/diagnostic-format-sarif.cc Auto-merging gcc/cp/cp-tree.h Auto-merging gcc/c-family/c-opts.cc
This was on top of 34366176046351250e1beb578664d926fbdd50c9, however looking at the resulting tree, the commit has the right commit message, but the only change is: diff --git a/gcc/diagnostic-format-sarif.cc b/gcc/diagnostic-format-sarif.cc index 6cd18cef6c8..4477932c61e 100644 --- a/gcc/diagnostic-format-sarif.cc +++ b/gcc/diagnostic-format-sarif.cc @@ -3127,6 +3127,10 @@ public: { /* No-op. */ }
void after_diagnostic (const diagnostic_info &) final override
{
/* No-op. */
}
sarif_builder &get_builder () { return m_builder; }
which does explain the build error.
Now.... we need to investigate why there's a problem when applying your patch!
Thanks and sorry for the noise
Ha! I've just understood the problem. This notification comes from the precommit CI, but started after you committed your patch, so it tried to re-apply it. For some reason 'git am' decides to re-apply the above chink and is happy with the rest. I tried to use patch -p1 instead and it does complain a lot more :-)
Our CI build used r15-3754-g2484ba167e1c4a as baseline, while your patch was already applied as r15-3749-g7da682c896f949.
Thanks,
Christophe
Christophe
Thanks Dave
linaro-toolchain@lists.linaro.org