public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug modula2/102343] New: gm2/cpp/pass/subaddr.mod FAILs for non-default multilib @ 2021-09-15 11:15 ro at gcc dot gnu.org 2023-01-17 15:18 ` [Bug modula2/102343] " iains at gcc dot gnu.org ` (5 more replies) 0 siblings, 6 replies; 7+ messages in thread From: ro at gcc dot gnu.org @ 2021-09-15 11:15 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102343 Bug ID: 102343 Summary: gm2/cpp/pass/subaddr.mod FAILs for non-default multilib Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: modula2 Assignee: unassigned at gcc dot gnu.org Reporter: ro at gcc dot gnu.org CC: gaiusmod2 at gmail dot com Target Milestone: --- The gm2/cpp/pass/subaddr.mod test FAILs for non-default multilibs (seen on x86_64-pc-linux-gnu with -m32 and i386-pc-solaris2.11 with -m64): FAIL: gm2/cpp/pass/subaddr.mod, -g FAIL: gm2/cpp/pass/subaddr.mod, -O FAIL: gm2/cpp/pass/subaddr.mod, -O -g FAIL: gm2/cpp/pass/subaddr.mod, -Os FAIL: gm2/cpp/pass/subaddr.mod, -O3 -fomit-frame-pointer FAIL: gm2/cpp/pass/subaddr.mod, -O3 -fomit-frame-pointer -finline-functions /vol/gcc/src/git/modula-2/gcc/testsuite/gm2/cpp/pass/subaddr.mod:34:1: error: can only CAST objects of the same size Unfortunately, -save-temps has no effect so one cannot see what actual input is passed to cc1gm2. Besides, it seems weird to special-case x86_64 and 64-bit alpha (was there ever a 32-bit port?) when every 64-bit target would already be handled by __LP64__. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug modula2/102343] gm2/cpp/pass/subaddr.mod FAILs for non-default multilib 2021-09-15 11:15 [Bug modula2/102343] New: gm2/cpp/pass/subaddr.mod FAILs for non-default multilib ro at gcc dot gnu.org @ 2023-01-17 15:18 ` iains at gcc dot gnu.org 2023-01-17 16:52 ` iains at gcc dot gnu.org ` (4 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: iains at gcc dot gnu.org @ 2023-01-17 15:18 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102343 Iain Sandoe <iains at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Last reconfirmed| |2023-01-17 Status|UNCONFIRMED |NEW Assignee|unassigned at gcc dot gnu.org |iains at gcc dot gnu.org CC| |iains at gcc dot gnu.org --- Comment #1 from Iain Sandoe <iains at gcc dot gnu.org> --- this fail occurs because * gm2 builds its own command lines for the preprocessor (the way it works at present, [preprocssing the main fil and all its dependent .def and .mod] means that we cannot construct a suitable line from the driver. * the command line options needed to enable the correct target state in the built preprocessor lines are not being captured from the initial command line. I have a WIP in patch to rework the options capture and handling of stand-alone preprocessor jobs ( e.g. gm2 -E ... ) ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug modula2/102343] gm2/cpp/pass/subaddr.mod FAILs for non-default multilib 2021-09-15 11:15 [Bug modula2/102343] New: gm2/cpp/pass/subaddr.mod FAILs for non-default multilib ro at gcc dot gnu.org 2023-01-17 15:18 ` [Bug modula2/102343] " iains at gcc dot gnu.org @ 2023-01-17 16:52 ` iains at gcc dot gnu.org 2023-01-22 0:22 ` iains at gcc dot gnu.org ` (3 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: iains at gcc dot gnu.org @ 2023-01-17 16:52 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102343 --- Comment #2 from Iain Sandoe <iains at gcc dot gnu.org> --- Created attachment 54289 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54289&action=edit Patch for discussion This applies on top of the patch for PR108182 (and will most likely not work without those changes). * -save-temps* should be fixed * we no longer try to write those files into the install directories * we should now support " gm2 -E .... " * renamed the pre-processed file extension to ".m2i" we cannot use ".i" or GCC will try to process it with cc1. * We now have default handers for .mod and .m2i (maybe we should add .def is that something used stand-alone?) So trying to use them with a compiler without modula-2 should give a more sensible diagnostic. * we should handle " gm2 foo.mod.m2i " * last, but most important, we now collect the command line options needed to set the target state into the preprocessor command line. This then provides the correct pre-defines and the test case then does the right thing on a 32b multilib on a 64b host. If there are no comments in the next week or so I'll post this to the list. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug modula2/102343] gm2/cpp/pass/subaddr.mod FAILs for non-default multilib 2021-09-15 11:15 [Bug modula2/102343] New: gm2/cpp/pass/subaddr.mod FAILs for non-default multilib ro at gcc dot gnu.org 2023-01-17 15:18 ` [Bug modula2/102343] " iains at gcc dot gnu.org 2023-01-17 16:52 ` iains at gcc dot gnu.org @ 2023-01-22 0:22 ` iains at gcc dot gnu.org 2023-01-25 15:24 ` cvs-commit at gcc dot gnu.org ` (2 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: iains at gcc dot gnu.org @ 2023-01-22 0:22 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102343 Iain Sandoe <iains at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #54289|0 |1 is obsolete| | --- Comment #3 from Iain Sandoe <iains at gcc dot gnu.org> --- Created attachment 54326 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54326&action=edit Patch to be posted this patch is candidate for posting - see changelog entry. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug modula2/102343] gm2/cpp/pass/subaddr.mod FAILs for non-default multilib 2021-09-15 11:15 [Bug modula2/102343] New: gm2/cpp/pass/subaddr.mod FAILs for non-default multilib ro at gcc dot gnu.org ` (2 preceding siblings ...) 2023-01-22 0:22 ` iains at gcc dot gnu.org @ 2023-01-25 15:24 ` cvs-commit at gcc dot gnu.org 2023-01-25 15:45 ` iains at gcc dot gnu.org 2023-01-27 8:48 ` cvs-commit at gcc dot gnu.org 5 siblings, 0 replies; 7+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2023-01-25 15:24 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102343 --- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Iain D Sandoe <iains@gcc.gnu.org>: https://gcc.gnu.org/g:80cf2c5e8f496bed9c6facf55f9ae31d0d90fd28 commit r13-5373-g80cf2c5e8f496bed9c6facf55f9ae31d0d90fd28 Author: Iain Sandoe <iain@sandoe.co.uk> Date: Mon Jan 16 14:07:20 2023 +0000 modula-2: Fixes for preprocessing [PR102343, PR108182]. Modula-2 uses the C preprocessor to implement handling for conditional code and macros. However, this is not done directly, because the process is applied recursively to imported definitions and modules. The cc1gm2 executable records the parameters as a template command line needed to create a composite 'cc1 -E' for each file to be preprocessed starting with the main file from the original command line. This patch fixes the capture of the C preprocessor template to include the target information needed for correct multilib operation. In order to match the existing semantics of '-E, -M and -MM' these have to be handled as a 'pre-processor only' job (i.e. the recursion is omitted and only the main file is processed). Whereas C-family front ends always pre-process, Modula-2 only does so when specifically requested (via the -fcpp option). '-MD, -MMD and -MQ' also require special handling, since (in principle) these options can be applied to any command line (with -fcpp) providing dependency information as a by-product. TODO: the preprocessor is not able to determine def and mod dependencies for Modula-2 and so the output of this only shows the object to module dep. We should be able to append the .def and .mod dependencies. The patch amends save-temps handling to cater for the preprocessor recursion and to avoid writing saved files into the source directories. The patch changes the extension for Modula-2 preprocessed source to .m2i to avoid clashes with .i. The main driver code is amended to add default handlers for .mod and .m2i so that a useful error message will be emitted if the Modula-2 compiler is not built-in. The compiler will now also handle code generation from a .m2i preprocessed source. TODO: We should not need to pass the '-c' option to the compiler to alter the processing of init code. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> PR modula2/102343 PR modula2/108182 gcc/ChangeLog: * gcc.cc: Provide default specs for Modula-2 so that when the language is not built-in better diagnostics are emitted for attempts to use .mod or .m2i file extensions. gcc/m2/ChangeLog: * gm2-compiler/M2Comp.mod: Early exit for pre-processor-only jobs. * gm2-compiler/M2Options.def (SetPPOnly, GetPPOnly, SetMD, GetMD, SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir, GetDumpDir):New. * gm2-compiler/M2Options.mod:(SetPPOnly, GetPPOnly, SetMD, GetMD, SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir, GetDumpDir):New. * gm2-compiler/M2Preprocess.def (PreprocessModule): Add flag to indicate the main file. * gm2-compiler/M2Preprocess.mod: Handle Preprocess-only jobs, handle MD, MMD and MQ options. * gm2-gcc/m2options.h (M2Options_SetPPOnly, M2Options_GetPPOnly, M2Options_SetDumpDir, M2Options_SetMD, M2Options_GetMD, M2Options_SetMMD, M2Options_GetMMD, M2Options_SetMQ, M2Options_GetMQ, M2Options_SetObj, M2Options_GetObj): New. * gm2-gcc/m2type.cc (m2type_InitBaseTypes): Early exit for pre- processor-only jobs. * gm2-lang.cc (gm2_langhook_init): Handle preprocess-only commands. (gm2_langhook_option_lang_mask): Claim C and Driver options so that we can intercept them for building pre-processor commands. (gm2_langhook_init_options): Collect the preprocessor line here. Save options that have different actions for preprocessor and compile commands. (gm2_langhook_handle_option): Only handle the modula-2 options here. (gm2_langhook_post_options): Do not create a back-end for pre- processor-only jobs. * gm2spec.cc (lang_specific_driver): Ignore PCH options, append a scaffold-main for cases where we are building a main module with -c. * lang-specs.h: Revise to handle preprocessor-only jobs and to consume pre-processed files. * lang.opt: Remove Driver and C options copies (we claim these separately). ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug modula2/102343] gm2/cpp/pass/subaddr.mod FAILs for non-default multilib 2021-09-15 11:15 [Bug modula2/102343] New: gm2/cpp/pass/subaddr.mod FAILs for non-default multilib ro at gcc dot gnu.org ` (3 preceding siblings ...) 2023-01-25 15:24 ` cvs-commit at gcc dot gnu.org @ 2023-01-25 15:45 ` iains at gcc dot gnu.org 2023-01-27 8:48 ` cvs-commit at gcc dot gnu.org 5 siblings, 0 replies; 7+ messages in thread From: iains at gcc dot gnu.org @ 2023-01-25 15:45 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102343 Iain Sandoe <iains at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #5 from Iain Sandoe <iains at gcc dot gnu.org> --- so fixed on trunk ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug modula2/102343] gm2/cpp/pass/subaddr.mod FAILs for non-default multilib 2021-09-15 11:15 [Bug modula2/102343] New: gm2/cpp/pass/subaddr.mod FAILs for non-default multilib ro at gcc dot gnu.org ` (4 preceding siblings ...) 2023-01-25 15:45 ` iains at gcc dot gnu.org @ 2023-01-27 8:48 ` cvs-commit at gcc dot gnu.org 5 siblings, 0 replies; 7+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2023-01-27 8:48 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102343 --- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Iain D Sandoe <iains@gcc.gnu.org>: https://gcc.gnu.org/g:83979240c072599bc8595a9324c3f4371eedbc7c commit r13-5426-g83979240c072599bc8595a9324c3f4371eedbc7c Author: Iain Sandoe <iain@sandoe.co.uk> Date: Thu Jan 26 13:49:11 2023 +0000 Modula-2: Add claimed command line options to lang.opt [PR108555]. This is a partial reversion of the changes in r13-5373-g80cf2c5e8f496b. As observed in the PR, handling the C and Driver options in the Modula-2 lang-specific code could be difficult to emulate; This reverts to adding the required options to the language-specific .opt file. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> PR modula2/108555 PR modula2/108182 PR modula2/102343 gcc/m2/ChangeLog: * gm2-lang.cc (gm2_langhook_option_lang_mask): Do not claim CL_C or CL_DRIVER. (gm2_langhook_init_options): Handle options that we want to pass to the preprocessor. * lang-specs.h: Pass -B and -save-temps to regular compile lines. * lang.opt: Add C and Driver options that Modula-2 intercepts for internal use. Reorder options into two sections and to collate. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-01-27 8:49 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-09-15 11:15 [Bug modula2/102343] New: gm2/cpp/pass/subaddr.mod FAILs for non-default multilib ro at gcc dot gnu.org 2023-01-17 15:18 ` [Bug modula2/102343] " iains at gcc dot gnu.org 2023-01-17 16:52 ` iains at gcc dot gnu.org 2023-01-22 0:22 ` iains at gcc dot gnu.org 2023-01-25 15:24 ` cvs-commit at gcc dot gnu.org 2023-01-25 15:45 ` iains at gcc dot gnu.org 2023-01-27 8:48 ` cvs-commit at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).