From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id B34973858D32 for ; Tue, 26 Jul 2022 08:07:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B34973858D32 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34152) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oGFbG-00039F-Tr for gdb@sourceware.org; Tue, 26 Jul 2022 04:07:31 -0400 Received: from ip5f5a89c6.dynamic.kabel-deutschland.de ([95.90.137.198]:64178 helo=[192.168.111.41]) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oGFbF-0000mN-Cd for gdb@sourceware.org; Tue, 26 Jul 2022 04:07:29 -0400 Message-ID: <48ec6c7a-8e6c-0163-f354-584e8084e595@gnu.org> Date: Tue, 26 Jul 2022 10:07:20 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.0.3 To: gdb@sourceware.org Content-Language: en-US From: Simon Sobisch Subject: gdbtk ...completely broken? Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=1.3 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_BARRACUDACENTRAL, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jul 2022 08:07:36 -0000 After checking gdb --help I've wondered about the following: -w Use the GUI interface. --nw Do not use the GUI interface. it took a while to find out that `-w` only applies if GDB is configured with the GUI option and much more that this relates to --enable-gdbtk. It seems that the documentation may be improved here: * for GDB "Mode options" [1] (to at least mention what that GUI is) * for gdb's --help (ideally not showing -nw / -w if the alter is not available or an additional line that tells it is ignored) * for gdb's configure.ac to tell that --enable-gdbtk is about its -w option doing something I've then tried to re-built GDB 12.1 using `configure --enable-gdbtk`, result: everything is built, -w doesn't do anything. Checking configure.log shows that it did not pick up tcl because it did not found tclConfig.sh (which isn't in PATH but under /usr/lib64), so re-tried with an additional --with-tcl; same result, configure.log now shows that tkConfig.sh is not found (which isn't in PATH but under /usr/lib64), so additional specified --with-tk which got me through configure with a build that would use gdbtk. So far - I consider this a bug in gdb's configure.ac: if --enable-gdbtk is explicit specified and one of * the OS does not match (seen in configure.ac when checking) [not sure that this is necessary / useful as we have the follow-up checks] * tclConfig.sh is not found * tkConfig.sh is not found then it would be most reasonable to abort configure, giving a clear error message what the issue is. Going on with `make -j8 -k; make -k`... make[2]: Entering directory '/tmp/gdb-12.1/build_tk/gdb' make[2]: *** No rule to make target 'gdbtk-bp.c', needed by 'gdbtk-bp.o'. make[2]: *** No rule to make target 'gdbtk-cmds.c', needed by 'gdbtk-cmds.o'. make[2]: *** No rule to make target 'gdbtk-hooks.c', needed by 'gdbtk-hooks.o'. make[2]: *** No rule to make target 'gdbtk-interp.c', needed by 'gdbtk-interp.o'. make[2]: *** No rule to make target 'gdbtk-register.c', needed by 'gdbtk-register.o'. make[2]: *** No rule to make target 'gdbtk-stack.c', needed by 'gdbtk-stack.o'. make[2]: *** No rule to make target 'gdbtk-varobj.c', needed by 'gdbtk-varobj.o'. make[2]: *** No rule to make target 'gdbtk-wrapper.c', needed by 'gdbtk-wrapper.o'. make[2]: *** No rule to make target 'gdbtk.c', needed by 'gdbtk.o'. make[2]: *** No rule to make target '../libgui/src/libgui.a', needed by 'gdb'. CXX main.o ../../gdb/main.c:53:10: fatal error: gdbtk/generic/gdbtk.h: No such file or directory #include "gdbtk/generic/gdbtk.h" ^~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. rechecked: those files are not part of the gdb distribution and I also did not found them when checking GDB git either. Where are the necessary source files? Should gdb's configure assume they exist or test for them (and again: error on --enable-gdbtk)? I also did not found anything about this on the GDB bug database - so: Do I something totally wrong? Simon [1]: https://sourceware.org/gdb/onlinedocs/gdb/Mode-Options.html