* No Subject
@ 1999-03-08 7:10 Andris Pavenis
1999-03-08 11:15 ` none Jim Blandy
` (3 more replies)
0 siblings, 4 replies; 30+ messages in thread
From: Andris Pavenis @ 1999-03-08 7:10 UTC (permalink / raw)
To: gdb-patches
Hi!
Tried gdb-4.17.85 on i586-pc-linux-gnu (with glibc-2.1) and met following
problem that was no with gdb-4.17:
Some global symbols are defined in gdb/main.c (eg. gdb_stdout,
gdb-stderr, etc). As the result if I'm building all except main.c in
object library to use with some IDE that uses gdb for debugging
(rhide-1.4.7), I'm getting unresolved references.
So I'm suggesting rather ugly hack (moving these definitions to top.c
and puting there static constructor that initializes gdb_std*). I agree does
not look nice, but I'm sending it only to point to possible problem.
I cannot use _initialize_* here as files must be defined before running
all _initialize_* procedures.
An alternative idea could be duplicating init code and global vrariables in
rhide.
Andris
--- main.c~1 Wed Feb 24 22:55:05 1999
+++ main.c Mon Mar 8 16:38:44 1999
@@ -54,18 +54,6 @@
int display_space;
-/* Whether this is the command line version or not */
-int tui_version = 0;
-
-/* Whether xdb commands will be handled */
-int xdb_commands = 0;
-
-/* Whether dbx commands will be handled */
-int dbx_commands = 0;
-
-GDB_FILE *gdb_stdout;
-GDB_FILE *gdb_stderr;
-
/* Whether to enable writing into executable and core files */
extern int write_files;
@@ -161,20 +149,6 @@
getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
current_directory = gdb_dirbuf;
-
- gdb_file_size = sizeof(GDB_FILE);
-
- gdb_stdout = (GDB_FILE *)xmalloc (gdb_file_size);
- gdb_stdout->ts_streamtype = afile;
- gdb_stdout->ts_filestream = stdout;
- gdb_stdout->ts_strbuf = NULL;
- gdb_stdout->ts_buflen = 0;
-
- gdb_stderr = (GDB_FILE *)xmalloc (gdb_file_size);
- gdb_stderr->ts_streamtype = afile;
- gdb_stderr->ts_filestream = stderr;
- gdb_stderr->ts_strbuf = NULL;
- gdb_stderr->ts_buflen = 0;
/* Parse arguments and options. */
{
--- top.c~1 Fri Jan 29 11:46:03 1999
+++ top.c Mon Mar 8 16:37:03 1999
@@ -53,6 +53,19 @@
extern void initialize_utils PARAMS ((void));
+
+/* Whether this is the command line version or not */
+int tui_version = 0;
+
+/* Whether xdb commands will be handled */
+int xdb_commands = 0;
+
+/* Whether dbx commands will be handled */
+int dbx_commands = 0;
+
+GDB_FILE *gdb_stdout;
+GDB_FILE *gdb_stderr;
+
/* Prototypes for local functions */
static void dont_repeat_command PARAMS ((char *, int));
@@ -467,6 +480,28 @@
SIGJMP_BUF error_return;
/* Where to go for return_to_top_level (RETURN_QUIT). */
SIGJMP_BUF quit_return;
+
+
+
+void __attribute__((constructor))
+_init_gdb_stdio (void)
+{
+ int gdb_file_size;
+ gdb_file_size = sizeof(GDB_FILE);
+
+ gdb_stdout = (GDB_FILE *)xmalloc (gdb_file_size);
+ gdb_stdout->ts_streamtype = afile;
+ gdb_stdout->ts_filestream = stdout;
+ gdb_stdout->ts_strbuf = NULL;
+ gdb_stdout->ts_buflen = 0;
+
+ gdb_stderr = (GDB_FILE *)xmalloc (gdb_file_size);
+ gdb_stderr->ts_streamtype = afile;
+ gdb_stderr->ts_filestream = stderr;
+ gdb_stderr->ts_strbuf = NULL;
+ gdb_stderr->ts_buflen = 0;
+}
+
/* Return for reason REASON. This generally gets back to the command
loop, but can be caught via catch_errors. */
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: none 1999-03-08 7:10 No Subject Andris Pavenis @ 1999-03-08 11:15 ` Jim Blandy 1999-04-01 0:00 ` none Jim Blandy ` (2 more replies) [not found] ` <99031011141900.03735.cygnus.patches.gdb@hal> ` (2 subsequent siblings) 3 siblings, 3 replies; 30+ messages in thread From: Jim Blandy @ 1999-03-08 11:15 UTC (permalink / raw) To: gdb-patches > Some global symbols are defined in gdb/main.c (eg. gdb_stdout, > gdb-stderr, etc). As the result if I'm building all except main.c in > object library to use with some IDE that uses gdb for debugging > (rhide-1.4.7), I'm getting unresolved references. Um, wow. It never occurred to me that anyone would try that. Specifically, we can't include GCC-specific things like the constructor attribute in GDB's source code. Lots of people build GDB with compilers other than GCC. I'm not the GDB Maintainer --- that'd be Dr. Shebs --- but my feeling is that we don't want to get into maintaining GDB with this kind of application in mind. If we turn GDB into a library, we should do it right --- design an interface that makes sense, document the interface, make sure that future changes preserve the boundaries, etc. My guess is that that would be more work than we really want to take on. > An alternative idea could be duplicating init code and global > vrariables in rhide. I think this is your best bet. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: none 1999-03-08 11:15 ` none Jim Blandy @ 1999-04-01 0:00 ` Jim Blandy 1999-04-01 0:00 ` none Stan Shebs 1999-04-01 0:00 ` libgdb (was none) Robert Hoehne 2 siblings, 0 replies; 30+ messages in thread From: Jim Blandy @ 1999-04-01 0:00 UTC (permalink / raw) To: gdb-patches > Some global symbols are defined in gdb/main.c (eg. gdb_stdout, > gdb-stderr, etc). As the result if I'm building all except main.c in > object library to use with some IDE that uses gdb for debugging > (rhide-1.4.7), I'm getting unresolved references. Um, wow. It never occurred to me that anyone would try that. Specifically, we can't include GCC-specific things like the constructor attribute in GDB's source code. Lots of people build GDB with compilers other than GCC. I'm not the GDB Maintainer --- that'd be Dr. Shebs --- but my feeling is that we don't want to get into maintaining GDB with this kind of application in mind. If we turn GDB into a library, we should do it right --- design an interface that makes sense, document the interface, make sure that future changes preserve the boundaries, etc. My guess is that that would be more work than we really want to take on. > An alternative idea could be duplicating init code and global > vrariables in rhide. I think this is your best bet. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: none 1999-03-08 11:15 ` none Jim Blandy 1999-04-01 0:00 ` none Jim Blandy @ 1999-04-01 0:00 ` Stan Shebs 1999-03-08 13:09 ` none Stan Shebs 1999-03-09 12:54 ` none Robert Hoehne 1999-04-01 0:00 ` libgdb (was none) Robert Hoehne 2 siblings, 2 replies; 30+ messages in thread From: Stan Shebs @ 1999-04-01 0:00 UTC (permalink / raw) To: gdb-patches From: Jim Blandy <jimb@cygnus.com> Date: 08 Mar 1999 14:15:47 -0500 [...] my feeling is that we don't want to get into maintaining GDB with this kind of application in mind. I agree with Jim. Globals in main.c are just the tip of the iceberg! I'd like to understand more about how rhide works with GDB. Does anybody have a pointer to something that goes into more depth? Stan ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: none 1999-04-01 0:00 ` none Stan Shebs @ 1999-03-08 13:09 ` Stan Shebs 1999-03-09 12:54 ` none Robert Hoehne 1 sibling, 0 replies; 30+ messages in thread From: Stan Shebs @ 1999-03-08 13:09 UTC (permalink / raw) To: gdb-patches From: Jim Blandy <jimb@cygnus.com> Date: 08 Mar 1999 14:15:47 -0500 [...] my feeling is that we don't want to get into maintaining GDB with this kind of application in mind. I agree with Jim. Globals in main.c are just the tip of the iceberg! I'd like to understand more about how rhide works with GDB. Does anybody have a pointer to something that goes into more depth? Stan ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: none 1999-04-01 0:00 ` none Stan Shebs 1999-03-08 13:09 ` none Stan Shebs @ 1999-03-09 12:54 ` Robert Hoehne 1999-04-01 0:00 ` none Robert Hoehne 1 sibling, 1 reply; 30+ messages in thread From: Robert Hoehne @ 1999-03-09 12:54 UTC (permalink / raw) To: gdb-patches > I'd like to understand more about how rhide works with GDB. Does > anybody have a pointer to something that goes into more depth? http://www.tu-chemnitz.de/~sho/rho/rhide.html RHIDE is in look and feel similar to the old known Borland 3.1 IDE but based on the GNU compilers and of course as its builtin debugger GDB. Robert ****************************************************** * email: Robert Hoehne <robert.hoehne@gmx.net> * * Post: Am Berg 3, D-09573 Dittmannsdorf, Germany * * WWW: http://www.tu-chemnitz.de/~sho/rho * ****************************************************** ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: none 1999-03-09 12:54 ` none Robert Hoehne @ 1999-04-01 0:00 ` Robert Hoehne 0 siblings, 0 replies; 30+ messages in thread From: Robert Hoehne @ 1999-04-01 0:00 UTC (permalink / raw) To: gdb-patches > I'd like to understand more about how rhide works with GDB. Does > anybody have a pointer to something that goes into more depth? http://www.tu-chemnitz.de/~sho/rho/rhide.html RHIDE is in look and feel similar to the old known Borland 3.1 IDE but based on the GNU compilers and of course as its builtin debugger GDB. Robert ****************************************************** * email: Robert Hoehne <robert.hoehne@gmx.net> * * Post: Am Berg 3, D-09573 Dittmannsdorf, Germany * * WWW: http://www.tu-chemnitz.de/~sho/rho * ****************************************************** ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb (was none) 1999-03-08 11:15 ` none Jim Blandy 1999-04-01 0:00 ` none Jim Blandy 1999-04-01 0:00 ` none Stan Shebs @ 1999-04-01 0:00 ` Robert Hoehne 1999-03-08 14:31 ` Robert Hoehne 1999-04-01 0:00 ` Stan Shebs 2 siblings, 2 replies; 30+ messages in thread From: Robert Hoehne @ 1999-04-01 0:00 UTC (permalink / raw) To: gdb-patches > > Some global symbols are defined in gdb/main.c (eg. gdb_stdout, > > gdb-stderr, etc). As the result if I'm building all except main.c in > > object library to use with some IDE that uses gdb for debugging > > (rhide-1.4.7), I'm getting unresolved references. > > Um, wow. It never occurred to me that anyone would try that. I did that already since years in RHIDE and it worked perfectly. Now I have reviewed the latest gdb sources and saw that the problem really exists and I'm not happy about this change. > is that we don't want to get into maintaining GDB with this kind of > application in mind. If we turn GDB into a library, we should do it > right --- design an interface that makes sense, document the > interface, make sure that future changes preserve the boundaries, etc. > My guess is that that would be more work than we really want to take > on. So my question is now: Why does exist there a file called libgdb.texi in the doc directory? I know now, that this file describes only an imaginary library which does not exist, but if there exists such a description of a libgdb the maintainer of gdb should think also a little bit about that people, who did the hard job to integrate the gdb functionality also in other programs even when it is not the described libgdb but a lib with the same goal. > > An alternative idea could be duplicating init code and global > > vrariables in rhide. > > I think this is your best bet. This is not the best but only for now the shortest solution, since it will force me to change every time my duplicated code when something related to it will change in the future in the gdb sources. BTW: There is not only an describtion of the imaginary libgdb, but there is also a target in the Makefile which is called libgdb-files, which creates a file containing all the names of the object files for the libgdb. So if, main.o is not part of it, but main.o conatains code which is refered by other files, than this is a bug. Robert ****************************************************** * email: Robert Hoehne <robert.hoehne@gmx.net> * * Post: Am Berg 3, D-09573 Dittmannsdorf, Germany * * WWW: http://www.tu-chemnitz.de/~sho/rho * ****************************************************** ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb (was none) 1999-04-01 0:00 ` libgdb (was none) Robert Hoehne @ 1999-03-08 14:31 ` Robert Hoehne 1999-04-01 0:00 ` Stan Shebs 1 sibling, 0 replies; 30+ messages in thread From: Robert Hoehne @ 1999-03-08 14:31 UTC (permalink / raw) To: gdb-patches > > Some global symbols are defined in gdb/main.c (eg. gdb_stdout, > > gdb-stderr, etc). As the result if I'm building all except main.c in > > object library to use with some IDE that uses gdb for debugging > > (rhide-1.4.7), I'm getting unresolved references. > > Um, wow. It never occurred to me that anyone would try that. I did that already since years in RHIDE and it worked perfectly. Now I have reviewed the latest gdb sources and saw that the problem really exists and I'm not happy about this change. > is that we don't want to get into maintaining GDB with this kind of > application in mind. If we turn GDB into a library, we should do it > right --- design an interface that makes sense, document the > interface, make sure that future changes preserve the boundaries, etc. > My guess is that that would be more work than we really want to take > on. So my question is now: Why does exist there a file called libgdb.texi in the doc directory? I know now, that this file describes only an imaginary library which does not exist, but if there exists such a description of a libgdb the maintainer of gdb should think also a little bit about that people, who did the hard job to integrate the gdb functionality also in other programs even when it is not the described libgdb but a lib with the same goal. > > An alternative idea could be duplicating init code and global > > vrariables in rhide. > > I think this is your best bet. This is not the best but only for now the shortest solution, since it will force me to change every time my duplicated code when something related to it will change in the future in the gdb sources. BTW: There is not only an describtion of the imaginary libgdb, but there is also a target in the Makefile which is called libgdb-files, which creates a file containing all the names of the object files for the libgdb. So if, main.o is not part of it, but main.o conatains code which is refered by other files, than this is a bug. Robert ****************************************************** * email: Robert Hoehne <robert.hoehne@gmx.net> * * Post: Am Berg 3, D-09573 Dittmannsdorf, Germany * * WWW: http://www.tu-chemnitz.de/~sho/rho * ****************************************************** ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb (was none) 1999-04-01 0:00 ` libgdb (was none) Robert Hoehne 1999-03-08 14:31 ` Robert Hoehne @ 1999-04-01 0:00 ` Stan Shebs 1999-03-10 15:39 ` Stan Shebs ` (2 more replies) 1 sibling, 3 replies; 30+ messages in thread From: Stan Shebs @ 1999-04-01 0:00 UTC (permalink / raw) To: robert.hoehne; +Cc: gdb-patches From: Robert Hoehne <robert.hoehne@gmx.net> Date: Mon, 8 Mar 1999 23:34:05 +0100 I did that already since years in RHIDE and it worked perfectly. Now I have reviewed the latest gdb sources and saw that the problem really exists and I'm not happy about this change. But how is anybody supposed to know what can be changed and what not? This is a perfect example of why things have to be at least documented. I had no idea that RHIDE did anything tricky with GDB main files, nor I imagine did HP or anybody else, so we'll assume that things can be rearranged or restructured as necessary. > is that we don't want to get into maintaining GDB with this kind of > application in mind. If we turn GDB into a library, we should do it > right --- design an interface that makes sense, document the > interface, make sure that future changes preserve the boundaries, etc. > My guess is that that would be more work than we really want to take > on. So my question is now: Why does exist there a file called libgdb.texi in the doc directory? I just left it there because I thought it would be useful guidance for anyone wanting to undertake the project, because it *is* a worthwhile project. However, it seems to have been more misleading than helpful, so now I'm thinking it should just be whacked out. (Questions about libgdb come up about twice/year, but nobody does anything to make it work.) I know now, that this file describes only an imaginary library which does not exist, but if there exists such a description of a libgdb the maintainer of gdb should think also a little bit about that people, who did the hard job to integrate the gdb functionality also in other programs even when it is not the described libgdb but a lib with the same goal. Propose a structure and the changes to go with it, and I will tell you if it seems reasonable or not. If it is reasonable, then we can look at documenting it so future GDB hackers will know what the rules are, and make any needed changes to support it. BTW: There is not only an describtion of the imaginary libgdb, but there is also a target in the Makefile which is called libgdb-files, which creates a file containing all the names of the object files for the libgdb. So if, main.o is not part of it, but main.o conatains code which is refered by other files, than this is a bug. I thought all the libgdb crud in the makefile was gone, thanks for pointing it out. I'll delete it if nobody comes up with a good reason for saving it - incomplete and/or broken code in the source never seems to do anything except cause confusion and thus waste people's time, so it's better just to make it go away. Stan ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb (was none) 1999-04-01 0:00 ` Stan Shebs @ 1999-03-10 15:39 ` Stan Shebs 1999-03-10 16:29 ` Todd Whitesel 1999-03-14 4:18 ` Robert Hoehne 2 siblings, 0 replies; 30+ messages in thread From: Stan Shebs @ 1999-03-10 15:39 UTC (permalink / raw) To: robert.hoehne; +Cc: gdb-patches From: Robert Hoehne <robert.hoehne@gmx.net> Date: Mon, 8 Mar 1999 23:34:05 +0100 I did that already since years in RHIDE and it worked perfectly. Now I have reviewed the latest gdb sources and saw that the problem really exists and I'm not happy about this change. But how is anybody supposed to know what can be changed and what not? This is a perfect example of why things have to be at least documented. I had no idea that RHIDE did anything tricky with GDB main files, nor I imagine did HP or anybody else, so we'll assume that things can be rearranged or restructured as necessary. > is that we don't want to get into maintaining GDB with this kind of > application in mind. If we turn GDB into a library, we should do it > right --- design an interface that makes sense, document the > interface, make sure that future changes preserve the boundaries, etc. > My guess is that that would be more work than we really want to take > on. So my question is now: Why does exist there a file called libgdb.texi in the doc directory? I just left it there because I thought it would be useful guidance for anyone wanting to undertake the project, because it *is* a worthwhile project. However, it seems to have been more misleading than helpful, so now I'm thinking it should just be whacked out. (Questions about libgdb come up about twice/year, but nobody does anything to make it work.) I know now, that this file describes only an imaginary library which does not exist, but if there exists such a description of a libgdb the maintainer of gdb should think also a little bit about that people, who did the hard job to integrate the gdb functionality also in other programs even when it is not the described libgdb but a lib with the same goal. Propose a structure and the changes to go with it, and I will tell you if it seems reasonable or not. If it is reasonable, then we can look at documenting it so future GDB hackers will know what the rules are, and make any needed changes to support it. BTW: There is not only an describtion of the imaginary libgdb, but there is also a target in the Makefile which is called libgdb-files, which creates a file containing all the names of the object files for the libgdb. So if, main.o is not part of it, but main.o conatains code which is refered by other files, than this is a bug. I thought all the libgdb crud in the makefile was gone, thanks for pointing it out. I'll delete it if nobody comes up with a good reason for saving it - incomplete and/or broken code in the source never seems to do anything except cause confusion and thus waste people's time, so it's better just to make it go away. Stan ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb (was none) 1999-04-01 0:00 ` Stan Shebs 1999-03-10 15:39 ` Stan Shebs @ 1999-03-10 16:29 ` Todd Whitesel 1999-04-01 0:00 ` Todd Whitesel 1999-03-14 4:18 ` Robert Hoehne 2 siblings, 1 reply; 30+ messages in thread From: Todd Whitesel @ 1999-03-10 16:29 UTC (permalink / raw) To: gdb-patches > I thought all the libgdb crud in the makefile was gone, thanks for > pointing it out. I'll delete it if nobody comes up with a good reason > for saving it - incomplete and/or broken code in the source never seems > to do anything except cause confusion and thus waste people's time, so > it's better just to make it go away. I vote for deleting it; principle of least confusion. Don't go out of your way to make it harder for someone to do a real implementation later though. Actually it might be fine to just comment it out, with a note to the effect of "this functionality was never completely implemented" ... Personally, I prefer protocol-based approaches to "lib" implementations. I maintain the WRS/vxWorks commercial patches to GDB, and really need to clean them up so they can go back in; unfortunately I came down with a tenacious illness at the turn of the year, and since then I have been struggling just to keep up with release deadlines. -- Todd Whitesel toddpw @ wrs.com ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb (was none) 1999-03-10 16:29 ` Todd Whitesel @ 1999-04-01 0:00 ` Todd Whitesel 0 siblings, 0 replies; 30+ messages in thread From: Todd Whitesel @ 1999-04-01 0:00 UTC (permalink / raw) To: gdb-patches > I thought all the libgdb crud in the makefile was gone, thanks for > pointing it out. I'll delete it if nobody comes up with a good reason > for saving it - incomplete and/or broken code in the source never seems > to do anything except cause confusion and thus waste people's time, so > it's better just to make it go away. I vote for deleting it; principle of least confusion. Don't go out of your way to make it harder for someone to do a real implementation later though. Actually it might be fine to just comment it out, with a note to the effect of "this functionality was never completely implemented" ... Personally, I prefer protocol-based approaches to "lib" implementations. I maintain the WRS/vxWorks commercial patches to GDB, and really need to clean them up so they can go back in; unfortunately I came down with a tenacious illness at the turn of the year, and since then I have been struggling just to keep up with release deadlines. -- Todd Whitesel toddpw @ wrs.com ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb (was none) 1999-04-01 0:00 ` Stan Shebs 1999-03-10 15:39 ` Stan Shebs 1999-03-10 16:29 ` Todd Whitesel @ 1999-03-14 4:18 ` Robert Hoehne 1999-04-01 0:00 ` Robert Hoehne 1999-04-01 0:00 ` DJGPP support (was libgdb) Stan Shebs 2 siblings, 2 replies; 30+ messages in thread From: Robert Hoehne @ 1999-03-14 4:18 UTC (permalink / raw) To: robert.hoehne, gdb-patches; +Cc: gdb-patches > But how is anybody supposed to know what can be changed and what not? Of course nobody can imagine what the mainatainer of GDB will do with the sources (except of course the mainatiner itself). > This is a perfect example of why things have to be at least documented. > I had no idea that RHIDE did anything tricky with GDB main files, nor That's true, but since it is not documented I thougt to assume some things which are there since ages. For instance most of the global variables declared in top.c and not in main.c. The next is: I did not some tricky things with GDB main files, I simply used them in a way so that many other people which don't like the default commanline interface of GDB to use an other interface but the power of GDB. I really don't understand, why you are against such small changes which doesn't affect any behaviour of GDB but which will help the programming of others. (for instance simply moving the newly introduced global variables from main.c to top.c) > I imagine did HP or anybody else, so we'll assume that things can be > rearranged or restructured as necessary. I have leaned that already :-( But at this point I really don't understand, why the the mainatainers of GNU tools nearly ever forget when introducing new features, that there are also people, which use the GNU environment for DOS called DJGPP where are some limitations exist. And as I have heared, the GNU cdrom with DJGPP on it was a hit. Sometimes I think, the GNU mainatiner have something against DJGPP. Only as an example with the filenames in the GNU packages. There exists a tool called doschk which is available on the GNU mirrors written by DJ Delorie. This tool can be used to chack, if the filenames are valid for DOS. But currently I don't know any package, which takes care of this so the people, who do the job to port the GNU programs for DJGPP have to do for any new version the same annoing work to convert the filenames. To illustrate it, I append here the output of dosck on the filenames for gdb-4.17.86: The following files are not valid DOS file names: gdb-4.17.86/gdb/c-exp.tab.c - too many dots gdb-4.17.86/gdb/jv-exp.tab.c - too many dots gdb-4.17.86/gdb/f-exp.tab.c - too many dots gdb-4.17.86/gdb/m2-exp.tab.c - too many dots gdb-4.17.86/gdb/nindy-share/b.out.h - too many dots gdb-4.17.86/gdb/testsuite/.gdbinit - file name cannot start with dot gdb-4.17.86/readline/config.h.bot - too many dots gdb-4.17.86/readline/config.h.in - too many dots gdb-4.17.86/sim/ppc/.gdbinit - file name cannot start with dot gdb-4.17.86/intl/intlh.inst.in - too many dots gdb-4.17.86/intl/po2tbl.sed.in - too many dots The following resolve to the same DOS file names: ALPHA-OS.MH : gdb-4.17.86/gdb/config/alpha/alpha-osf1.mh gdb-4.17.86/gdb/config/alpha/alpha-osf2.mh gdb-4.17.86/gdb/config/alpha/alpha-osf3.mh APOLLO68.MH : gdb-4.17.86/gdb/config/m68k/apollo68b.mh gdb-4.17.86/gdb/config/m68k/apollo68v.mh BFD.INF : gdb-4.17.86/bfd/doc/bfd.info gdb-4.17.86/bfd/doc/bfd.info-1 gdb-4.17.86/bfd/doc/bfd.info-2 gdb-4.17.86/bfd/doc/bfd.info-3 gdb-4.17.86/bfd/doc/bfd.info-4 gdb-4.17.86/bfd/doc/bfd.info-5 gdb-4.17.86/bfd/doc/bfd.info-6 CALLFUNC.C : gdb-4.17.86/gdb/testsuite/gdb.base/callfuncs.c gdb-4.17.86/gdb/testsuite/gdb.base/callfuncs2.c CALLFUNC.EXP : gdb-4.17.86/gdb/testsuite/gdb.base/callfuncs.exp gdb-4.17.86/gdb/testsuite/gdb.base/callfuncs2.exp CHANGELO : gdb-4.17.86/bfd/ChangeLog gdb-4.17.86/bfd/ChangeLog-9193 gdb-4.17.86/bfd/ChangeLog-9495 gdb-4.17.86/bfd/ChangeLog-9697 CHANGELO : gdb-4.17.86/gdb/ChangeLog gdb-4.17.86/gdb/ChangeLog-9091 gdb-4.17.86/gdb/ChangeLog-92 gdb-4.17.86/gdb/ChangeLog-93 gdb-4.17.86/gdb/ChangeLog-94 gdb-4.17.86/gdb/ChangeLog-95 gdb-4.17.86/gdb/ChangeLog-96 gdb-4.17.86/gdb/ChangeLog-97 gdb-4.17.86/gdb/ChangeLog-98 CHANGELO : gdb-4.17.86/readline/CHANGELOG gdb-4.17.86/readline/ChangeLog CMA_STAC.H : gdb-4.17.86/gdb/osf-share/cma_stack.h gdb-4.17.86/gdb/osf-share/cma_stack_int.h COREFILE.H : gdb-4.17.86/sim/ppc/corefile-n.h gdb-4.17.86/sim/ppc/corefile.h CTTI-ADD.CC : gdb-4.17.86/gdb/testsuite/gdb.hp/ctti-add.cc gdb-4.17.86/gdb/testsuite/gdb.hp/ctti-add1.cc gdb-4.17.86/gdb/testsuite/gdb.hp/ctti-add2.cc gdb-4.17.86/gdb/testsuite/gdb.hp/ctti-add3.cc DV-MN103.C : gdb-4.17.86/sim/mn10300/dv-mn103cpu.c gdb-4.17.86/sim/mn10300/dv-mn103int.c gdb-4.17.86/sim/mn10300/dv-mn103iop.c gdb-4.17.86/sim/mn10300/dv-mn103ser.c gdb-4.17.86/sim/mn10300/dv-mn103tim.c DV-TX390.C : gdb-4.17.86/sim/mips/dv-tx3904cpu.c gdb-4.17.86/sim/mips/dv-tx3904irc.c gdb-4.17.86/sim/mips/dv-tx3904sio.c gdb-4.17.86/sim/mips/dv-tx3904tmr.c EXTSTRUC.CH : gdb-4.17.86/gdb/testsuite/gdb.chill/extstruct-grt.ch gdb-4.17.86/gdb/testsuite/gdb.chill/extstruct.ch GDB.INF : gdb-4.17.86/gdb/doc/gdb.info gdb-4.17.86/gdb/doc/gdb.info-1 gdb-4.17.86/gdb/doc/gdb.info-10 gdb-4.17.86/gdb/doc/gdb.info-2 gdb-4.17.86/gdb/doc/gdb.info-3 gdb-4.17.86/gdb/doc/gdb.info-4 gdb-4.17.86/gdb/doc/gdb.info-5 gdb-4.17.86/gdb/doc/gdb.info-6 gdb-4.17.86/gdb/doc/gdb.info-7 gdb-4.17.86/gdb/doc/gdb.info-8 gdb-4.17.86/gdb/doc/gdb.info-9 GDBINT.INF : gdb-4.17.86/gdb/doc/gdbint.info gdb-4.17.86/gdb/doc/gdbint.info-1 gdb-4.17.86/gdb/doc/gdbint.info-2 gdb-4.17.86/gdb/doc/gdbint.info-3 IDECODE_.H : gdb-4.17.86/sim/ppc/idecode_branch.h gdb-4.17.86/sim/ppc/idecode_expression.h gdb-4.17.86/sim/ppc/idecode_fields.h LS-LD4BH.S : gdb-4.17.86/sim/testsuite/d30v-elf/ls-ld4bh.S gdb-4.17.86/sim/testsuite/d30v-elf/ls-ld4bhu.S M68K-AOU.U : gdb-4.17.86/gdb/testsuite/gdb.base/m68k-aout.u gdb-4.17.86/gdb/testsuite/gdb.base/m68k-aout2.u NM-APOLL.H : gdb-4.17.86/gdb/config/m68k/nm-apollo68b.h gdb-4.17.86/gdb/config/m68k/nm-apollo68v.h NM-HP300.H : gdb-4.17.86/gdb/config/m68k/nm-hp300bsd.h gdb-4.17.86/gdb/config/m68k/nm-hp300hpux.h NM-HPPAH.H : gdb-4.17.86/gdb/config/pa/nm-hppah.h gdb-4.17.86/gdb/config/pa/nm-hppah11.h NM-I386S.H : gdb-4.17.86/gdb/config/i386/nm-i386sco.h gdb-4.17.86/gdb/config/i386/nm-i386sco4.h gdb-4.17.86/gdb/config/i386/nm-i386sco5.h gdb-4.17.86/gdb/config/i386/nm-i386sol2.h NM-I386V.H : gdb-4.17.86/gdb/config/i386/nm-i386v.h gdb-4.17.86/gdb/config/i386/nm-i386v4.h gdb-4.17.86/gdb/config/i386/nm-i386v42mp.h NM-RS600.H : gdb-4.17.86/gdb/config/rs6000/nm-rs6000.h gdb-4.17.86/gdb/config/rs6000/nm-rs6000ly.h POINTERS.C : gdb-4.17.86/gdb/testsuite/gdb.base/pointers.c gdb-4.17.86/gdb/testsuite/gdb.base/pointers2.c POINTERS.EXP : gdb-4.17.86/gdb/testsuite/gdb.base/pointers.exp gdb-4.17.86/gdb/testsuite/gdb.base/pointers2.exp REF-TYPE.CC : gdb-4.17.86/gdb/testsuite/gdb.c++/ref-types.cc gdb-4.17.86/gdb/testsuite/gdb.c++/ref-types2.cc REF-TYPE.EXP : gdb-4.17.86/gdb/testsuite/gdb.c++/ref-types.exp gdb-4.17.86/gdb/testsuite/gdb.c++/ref-types2.exp REMOTE-A.C : gdb-4.17.86/gdb/remote-adapt.c gdb-4.17.86/gdb/remote-array.c REMOTE-E.C : gdb-4.17.86/gdb/remote-e7000.c gdb-4.17.86/gdb/remote-eb.c gdb-4.17.86/gdb/remote-es.c gdb-4.17.86/gdb/remote-est.c REMOTE-M.C : gdb-4.17.86/gdb/remote-mips.c gdb-4.17.86/gdb/remote-mm.c REMOTE-N.C : gdb-4.17.86/gdb/remote-nindy.c gdb-4.17.86/gdb/remote-nrom.c REMOTE-R.C : gdb-4.17.86/gdb/remote-rdi.c gdb-4.17.86/gdb/remote-rdp.c REMOTE-S.C : gdb-4.17.86/gdb/remote-sds.c gdb-4.17.86/gdb/remote-sim.c gdb-4.17.86/gdb/remote-st.c REMOTE-U.C : gdb-4.17.86/gdb/remote-udi.c gdb-4.17.86/gdb/remote-utils.c REMOTE-V.C : gdb-4.17.86/gdb/remote-vx.c gdb-4.17.86/gdb/remote-vx29k.c gdb-4.17.86/gdb/remote-vx68.c gdb-4.17.86/gdb/remote-vx960.c gdb-4.17.86/gdb/remote-vxmips.c gdb-4.17.86/gdb/remote-vxsparc.c SIM-ENDI.H : gdb-4.17.86/sim/ppc/sim-endian-n.h gdb-4.17.86/sim/ppc/sim-endian.h SPARCLET.C : gdb-4.17.86/gdb/sparclet-rom.c gdb-4.17.86/gdb/sparclet-stub.c STABS.INF : gdb-4.17.86/gdb/doc/stabs.info gdb-4.17.86/gdb/doc/stabs.info-1 gdb-4.17.86/gdb/doc/stabs.info-2 gdb-4.17.86/gdb/doc/stabs.info-3 gdb-4.17.86/gdb/doc/stabs.info-4 TM-ALPHA.H : gdb-4.17.86/gdb/config/alpha/tm-alpha.h gdb-4.17.86/gdb/config/alpha/tm-alphalinux.h TM-BIGMI.H : gdb-4.17.86/gdb/config/mips/tm-bigmips.h gdb-4.17.86/gdb/config/mips/tm-bigmips64.h TM-DELTA.H : gdb-4.17.86/gdb/config/m88k/tm-delta88.h gdb-4.17.86/gdb/config/m88k/tm-delta88v4.h TM-EMBED.H : gdb-4.17.86/gdb/config/mips/tm-embed.h gdb-4.17.86/gdb/config/mips/tm-embed64.h gdb-4.17.86/gdb/config/mips/tm-embedl.h gdb-4.17.86/gdb/config/mips/tm-embedl64.h TM-HP300.H : gdb-4.17.86/gdb/config/m68k/tm-hp300bsd.h gdb-4.17.86/gdb/config/m68k/tm-hp300hpux.h TM-I386M.H : gdb-4.17.86/gdb/config/i386/tm-i386m3.h gdb-4.17.86/gdb/config/i386/tm-i386mk.h TM-I386S.H : gdb-4.17.86/gdb/config/i386/tm-i386sco5.h gdb-4.17.86/gdb/config/i386/tm-i386sol2.h TM-I386V.H : gdb-4.17.86/gdb/config/i386/tm-i386v.h gdb-4.17.86/gdb/config/i386/tm-i386v4.h gdb-4.17.86/gdb/config/i386/tm-i386v42mp.h TM-PPCLE.H : gdb-4.17.86/gdb/config/powerpc/tm-ppcle-eabi.h gdb-4.17.86/gdb/config/powerpc/tm-ppcle-sim.h TM-RS600.H : gdb-4.17.86/gdb/config/rs6000/tm-rs6000-aix4.h gdb-4.17.86/gdb/config/rs6000/tm-rs6000.h gdb-4.17.86/gdb/config/rs6000/tm-rs6000ly.h TM-SPARC.H : gdb-4.17.86/gdb/config/sparc/tm-sparc.h gdb-4.17.86/gdb/config/sparc/tm-sparclet.h gdb-4.17.86/gdb/config/sparc/tm-sparclite.h gdb-4.17.86/gdb/config/sparc/tm-sparclynx.h TM-VR430.H : gdb-4.17.86/gdb/config/mips/tm-vr4300.h gdb-4.17.86/gdb/config/mips/tm-vr4300el.h TM-VR500.H : gdb-4.17.86/gdb/config/mips/tm-vr5000.h gdb-4.17.86/gdb/config/mips/tm-vr5000el.h TUISOURC.C : gdb-4.17.86/gdb/tui/tuiSource.c gdb-4.17.86/gdb/tui/tuiSourceWin.c TUISOURC.H : gdb-4.17.86/gdb/tui/tuiSource.h gdb-4.17.86/gdb/tui/tuiSourceWin.h XM-ALPHA.H : gdb-4.17.86/gdb/config/alpha/xm-alphalinux.h gdb-4.17.86/gdb/config/alpha/xm-alphaosf.h XM-APOLL.H : gdb-4.17.86/gdb/config/m68k/xm-apollo68b.h gdb-4.17.86/gdb/config/m68k/xm-apollo68v.h XM-DELTA.H : gdb-4.17.86/gdb/config/m88k/xm-delta88.h gdb-4.17.86/gdb/config/m88k/xm-delta88v4.h XM-HP300.H : gdb-4.17.86/gdb/config/m68k/xm-hp300bsd.h gdb-4.17.86/gdb/config/m68k/xm-hp300hpux.h XM-I386M.H : gdb-4.17.86/gdb/config/i386/xm-i386m3.h gdb-4.17.86/gdb/config/i386/xm-i386mach.h gdb-4.17.86/gdb/config/i386/xm-i386mk.h XM-I386V.H : gdb-4.17.86/gdb/config/i386/xm-i386v.h gdb-4.17.86/gdb/config/i386/xm-i386v32.h gdb-4.17.86/gdb/config/i386/xm-i386v4.h XM-RS600.H : gdb-4.17.86/gdb/config/rs6000/xm-rs6000.h gdb-4.17.86/gdb/config/rs6000/xm-rs6000ly.h XM-SPARC.H : gdb-4.17.86/gdb/config/sparc/xm-sparc.h gdb-4.17.86/gdb/config/sparc/xm-sparclynx.h XM-VAXUL.H : gdb-4.17.86/gdb/config/vax/xm-vaxult.h gdb-4.17.86/gdb/config/vax/xm-vaxult2.h The following resolve to the same SysV file names: filter_filenam : gdb-4.17.86/sim/ppc/filter_filename.c gdb-4.17.86/sim/ppc/filter_filename.h gen-semantics. : gdb-4.17.86/sim/igen/gen-semantics.c gdb-4.17.86/sim/igen/gen-semantics.h gen-semantics. : gdb-4.17.86/sim/ppc/gen-semantics.c gdb-4.17.86/sim/ppc/gen-semantics.h hw-properties. : gdb-4.17.86/sim/common/hw-properties.c gdb-4.17.86/sim/common/hw-properties.h tuiGeneralWin. : gdb-4.17.86/gdb/tui/tuiGeneralWin.c gdb-4.17.86/gdb/tui/tuiGeneralWin.h The following file names are too long for SysV: ChangeLog.Cygn : gdb-4.17.86/intl/ChangeLog.Cygnus a1-selftest.ex : gdb-4.17.86/gdb/testsuite/gdb.base/a1-selftest.exp cma_debug_clie : gdb-4.17.86/gdb/osf-share/cma_debug_client.h cma_semaphore_ : gdb-4.17.86/gdb/osf-share/cma_semaphore_defs.h cma_stack_int. : gdb-4.17.86/gdb/osf-share/cma_stack_int.h cma_thread_io. : gdb-4.17.86/gdb/osf-share/AT386/cma_thread_io.h cma_thread_io. : gdb-4.17.86/gdb/osf-share/HP800/cma_thread_io.h cma_thread_io. : gdb-4.17.86/gdb/osf-share/RIOS/cma_thread_io.h emc-support.ex : gdb-4.17.86/gdb/testsuite/lib/emc-support.exp exc_request.de : gdb-4.17.86/gdb/exc_request.defs execd-program. : gdb-4.17.86/gdb/testsuite/gdb.hp/execd-program.c extstruct-grt. : gdb-4.17.86/gdb/testsuite/gdb.chill/extstruct-grt.ch forward-includ : gdb-4.17.86/config/mpw/forward-include gen-so-thresh. : gdb-4.17.86/gdb/testsuite/gdb.hp/gen-so-thresh.c hp-psymtab-rea : gdb-4.17.86/gdb/hp-psymtab-read.c hp-symtab-read : gdb-4.17.86/gdb/hp-symtab-read.c idecode_branch : gdb-4.17.86/sim/ppc/idecode_branch.h idecode_expres : gdb-4.17.86/sim/ppc/idecode_expression.h idecode_fields : gdb-4.17.86/sim/ppc/idecode_fields.h m68klinux-nat. : gdb-4.17.86/gdb/m68klinux-nat.c mn10300-eval.e : gdb-4.17.86/gdb/testsuite/config/mn10300-eval.exp ns32knbsd-nat. : gdb-4.17.86/gdb/ns32knbsd-nat.c ppc-cache-rule : gdb-4.17.86/sim/ppc/ppc-cache-rules ppc-instructio : gdb-4.17.86/sim/ppc/ppc-instructions process_reply. : gdb-4.17.86/gdb/process_reply.defs remote-vxmips. : gdb-4.17.86/gdb/remote-vxmips.c remote-vxsparc : gdb-4.17.86/gdb/remote-vxsparc.c reply_mig_hack : gdb-4.17.86/gdb/reply_mig_hack.awk sim_callbacks. : gdb-4.17.86/sim/ppc/sim_callbacks.h so-thresh.link : gdb-4.17.86/gdb/testsuite/gdb.hp/so-thresh.linkopts sparclet-stub. : gdb-4.17.86/gdb/sparclet-stub.c tm-alphalinux. : gdb-4.17.86/gdb/config/alpha/tm-alphalinux.h tm-ppcle-eabi. : gdb-4.17.86/gdb/config/powerpc/tm-ppcle-eabi.h tm-rs6000-aix4 : gdb-4.17.86/gdb/config/rs6000/tm-rs6000-aix4.h trace-support. : gdb-4.17.86/gdb/testsuite/lib/trace-support.exp vforked-progra : gdb-4.17.86/gdb/testsuite/gdb.hp/vforked-program.c while-stepping : gdb-4.17.86/gdb/testsuite/gdb.trace/while-stepping.exp xm-alphalinux. : gdb-4.17.86/gdb/config/alpha/xm-alphalinux.h ****************************************************** * email: Robert Hoehne <robert.hoehne@gmx.net> * * Post: Am Berg 3, D-09573 Dittmannsdorf, Germany * * WWW: http://www.tu-chemnitz.de/~sho/rho * ****************************************************** ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb (was none) 1999-03-14 4:18 ` Robert Hoehne @ 1999-04-01 0:00 ` Robert Hoehne 1999-04-01 0:00 ` DJGPP support (was libgdb) Stan Shebs 1 sibling, 0 replies; 30+ messages in thread From: Robert Hoehne @ 1999-04-01 0:00 UTC (permalink / raw) To: robert.hoehne, gdb-patches; +Cc: gdb-patches > But how is anybody supposed to know what can be changed and what not? Of course nobody can imagine what the mainatainer of GDB will do with the sources (except of course the mainatiner itself). > This is a perfect example of why things have to be at least documented. > I had no idea that RHIDE did anything tricky with GDB main files, nor That's true, but since it is not documented I thougt to assume some things which are there since ages. For instance most of the global variables declared in top.c and not in main.c. The next is: I did not some tricky things with GDB main files, I simply used them in a way so that many other people which don't like the default commanline interface of GDB to use an other interface but the power of GDB. I really don't understand, why you are against such small changes which doesn't affect any behaviour of GDB but which will help the programming of others. (for instance simply moving the newly introduced global variables from main.c to top.c) > I imagine did HP or anybody else, so we'll assume that things can be > rearranged or restructured as necessary. I have leaned that already :-( But at this point I really don't understand, why the the mainatainers of GNU tools nearly ever forget when introducing new features, that there are also people, which use the GNU environment for DOS called DJGPP where are some limitations exist. And as I have heared, the GNU cdrom with DJGPP on it was a hit. Sometimes I think, the GNU mainatiner have something against DJGPP. Only as an example with the filenames in the GNU packages. There exists a tool called doschk which is available on the GNU mirrors written by DJ Delorie. This tool can be used to chack, if the filenames are valid for DOS. But currently I don't know any package, which takes care of this so the people, who do the job to port the GNU programs for DJGPP have to do for any new version the same annoing work to convert the filenames. To illustrate it, I append here the output of dosck on the filenames for gdb-4.17.86: The following files are not valid DOS file names: gdb-4.17.86/gdb/c-exp.tab.c - too many dots gdb-4.17.86/gdb/jv-exp.tab.c - too many dots gdb-4.17.86/gdb/f-exp.tab.c - too many dots gdb-4.17.86/gdb/m2-exp.tab.c - too many dots gdb-4.17.86/gdb/nindy-share/b.out.h - too many dots gdb-4.17.86/gdb/testsuite/.gdbinit - file name cannot start with dot gdb-4.17.86/readline/config.h.bot - too many dots gdb-4.17.86/readline/config.h.in - too many dots gdb-4.17.86/sim/ppc/.gdbinit - file name cannot start with dot gdb-4.17.86/intl/intlh.inst.in - too many dots gdb-4.17.86/intl/po2tbl.sed.in - too many dots The following resolve to the same DOS file names: ALPHA-OS.MH : gdb-4.17.86/gdb/config/alpha/alpha-osf1.mh gdb-4.17.86/gdb/config/alpha/alpha-osf2.mh gdb-4.17.86/gdb/config/alpha/alpha-osf3.mh APOLLO68.MH : gdb-4.17.86/gdb/config/m68k/apollo68b.mh gdb-4.17.86/gdb/config/m68k/apollo68v.mh BFD.INF : gdb-4.17.86/bfd/doc/bfd.info gdb-4.17.86/bfd/doc/bfd.info-1 gdb-4.17.86/bfd/doc/bfd.info-2 gdb-4.17.86/bfd/doc/bfd.info-3 gdb-4.17.86/bfd/doc/bfd.info-4 gdb-4.17.86/bfd/doc/bfd.info-5 gdb-4.17.86/bfd/doc/bfd.info-6 CALLFUNC.C : gdb-4.17.86/gdb/testsuite/gdb.base/callfuncs.c gdb-4.17.86/gdb/testsuite/gdb.base/callfuncs2.c CALLFUNC.EXP : gdb-4.17.86/gdb/testsuite/gdb.base/callfuncs.exp gdb-4.17.86/gdb/testsuite/gdb.base/callfuncs2.exp CHANGELO : gdb-4.17.86/bfd/ChangeLog gdb-4.17.86/bfd/ChangeLog-9193 gdb-4.17.86/bfd/ChangeLog-9495 gdb-4.17.86/bfd/ChangeLog-9697 CHANGELO : gdb-4.17.86/gdb/ChangeLog gdb-4.17.86/gdb/ChangeLog-9091 gdb-4.17.86/gdb/ChangeLog-92 gdb-4.17.86/gdb/ChangeLog-93 gdb-4.17.86/gdb/ChangeLog-94 gdb-4.17.86/gdb/ChangeLog-95 gdb-4.17.86/gdb/ChangeLog-96 gdb-4.17.86/gdb/ChangeLog-97 gdb-4.17.86/gdb/ChangeLog-98 CHANGELO : gdb-4.17.86/readline/CHANGELOG gdb-4.17.86/readline/ChangeLog CMA_STAC.H : gdb-4.17.86/gdb/osf-share/cma_stack.h gdb-4.17.86/gdb/osf-share/cma_stack_int.h COREFILE.H : gdb-4.17.86/sim/ppc/corefile-n.h gdb-4.17.86/sim/ppc/corefile.h CTTI-ADD.CC : gdb-4.17.86/gdb/testsuite/gdb.hp/ctti-add.cc gdb-4.17.86/gdb/testsuite/gdb.hp/ctti-add1.cc gdb-4.17.86/gdb/testsuite/gdb.hp/ctti-add2.cc gdb-4.17.86/gdb/testsuite/gdb.hp/ctti-add3.cc DV-MN103.C : gdb-4.17.86/sim/mn10300/dv-mn103cpu.c gdb-4.17.86/sim/mn10300/dv-mn103int.c gdb-4.17.86/sim/mn10300/dv-mn103iop.c gdb-4.17.86/sim/mn10300/dv-mn103ser.c gdb-4.17.86/sim/mn10300/dv-mn103tim.c DV-TX390.C : gdb-4.17.86/sim/mips/dv-tx3904cpu.c gdb-4.17.86/sim/mips/dv-tx3904irc.c gdb-4.17.86/sim/mips/dv-tx3904sio.c gdb-4.17.86/sim/mips/dv-tx3904tmr.c EXTSTRUC.CH : gdb-4.17.86/gdb/testsuite/gdb.chill/extstruct-grt.ch gdb-4.17.86/gdb/testsuite/gdb.chill/extstruct.ch GDB.INF : gdb-4.17.86/gdb/doc/gdb.info gdb-4.17.86/gdb/doc/gdb.info-1 gdb-4.17.86/gdb/doc/gdb.info-10 gdb-4.17.86/gdb/doc/gdb.info-2 gdb-4.17.86/gdb/doc/gdb.info-3 gdb-4.17.86/gdb/doc/gdb.info-4 gdb-4.17.86/gdb/doc/gdb.info-5 gdb-4.17.86/gdb/doc/gdb.info-6 gdb-4.17.86/gdb/doc/gdb.info-7 gdb-4.17.86/gdb/doc/gdb.info-8 gdb-4.17.86/gdb/doc/gdb.info-9 GDBINT.INF : gdb-4.17.86/gdb/doc/gdbint.info gdb-4.17.86/gdb/doc/gdbint.info-1 gdb-4.17.86/gdb/doc/gdbint.info-2 gdb-4.17.86/gdb/doc/gdbint.info-3 IDECODE_.H : gdb-4.17.86/sim/ppc/idecode_branch.h gdb-4.17.86/sim/ppc/idecode_expression.h gdb-4.17.86/sim/ppc/idecode_fields.h LS-LD4BH.S : gdb-4.17.86/sim/testsuite/d30v-elf/ls-ld4bh.S gdb-4.17.86/sim/testsuite/d30v-elf/ls-ld4bhu.S M68K-AOU.U : gdb-4.17.86/gdb/testsuite/gdb.base/m68k-aout.u gdb-4.17.86/gdb/testsuite/gdb.base/m68k-aout2.u NM-APOLL.H : gdb-4.17.86/gdb/config/m68k/nm-apollo68b.h gdb-4.17.86/gdb/config/m68k/nm-apollo68v.h NM-HP300.H : gdb-4.17.86/gdb/config/m68k/nm-hp300bsd.h gdb-4.17.86/gdb/config/m68k/nm-hp300hpux.h NM-HPPAH.H : gdb-4.17.86/gdb/config/pa/nm-hppah.h gdb-4.17.86/gdb/config/pa/nm-hppah11.h NM-I386S.H : gdb-4.17.86/gdb/config/i386/nm-i386sco.h gdb-4.17.86/gdb/config/i386/nm-i386sco4.h gdb-4.17.86/gdb/config/i386/nm-i386sco5.h gdb-4.17.86/gdb/config/i386/nm-i386sol2.h NM-I386V.H : gdb-4.17.86/gdb/config/i386/nm-i386v.h gdb-4.17.86/gdb/config/i386/nm-i386v4.h gdb-4.17.86/gdb/config/i386/nm-i386v42mp.h NM-RS600.H : gdb-4.17.86/gdb/config/rs6000/nm-rs6000.h gdb-4.17.86/gdb/config/rs6000/nm-rs6000ly.h POINTERS.C : gdb-4.17.86/gdb/testsuite/gdb.base/pointers.c gdb-4.17.86/gdb/testsuite/gdb.base/pointers2.c POINTERS.EXP : gdb-4.17.86/gdb/testsuite/gdb.base/pointers.exp gdb-4.17.86/gdb/testsuite/gdb.base/pointers2.exp REF-TYPE.CC : gdb-4.17.86/gdb/testsuite/gdb.c++/ref-types.cc gdb-4.17.86/gdb/testsuite/gdb.c++/ref-types2.cc REF-TYPE.EXP : gdb-4.17.86/gdb/testsuite/gdb.c++/ref-types.exp gdb-4.17.86/gdb/testsuite/gdb.c++/ref-types2.exp REMOTE-A.C : gdb-4.17.86/gdb/remote-adapt.c gdb-4.17.86/gdb/remote-array.c REMOTE-E.C : gdb-4.17.86/gdb/remote-e7000.c gdb-4.17.86/gdb/remote-eb.c gdb-4.17.86/gdb/remote-es.c gdb-4.17.86/gdb/remote-est.c REMOTE-M.C : gdb-4.17.86/gdb/remote-mips.c gdb-4.17.86/gdb/remote-mm.c REMOTE-N.C : gdb-4.17.86/gdb/remote-nindy.c gdb-4.17.86/gdb/remote-nrom.c REMOTE-R.C : gdb-4.17.86/gdb/remote-rdi.c gdb-4.17.86/gdb/remote-rdp.c REMOTE-S.C : gdb-4.17.86/gdb/remote-sds.c gdb-4.17.86/gdb/remote-sim.c gdb-4.17.86/gdb/remote-st.c REMOTE-U.C : gdb-4.17.86/gdb/remote-udi.c gdb-4.17.86/gdb/remote-utils.c REMOTE-V.C : gdb-4.17.86/gdb/remote-vx.c gdb-4.17.86/gdb/remote-vx29k.c gdb-4.17.86/gdb/remote-vx68.c gdb-4.17.86/gdb/remote-vx960.c gdb-4.17.86/gdb/remote-vxmips.c gdb-4.17.86/gdb/remote-vxsparc.c SIM-ENDI.H : gdb-4.17.86/sim/ppc/sim-endian-n.h gdb-4.17.86/sim/ppc/sim-endian.h SPARCLET.C : gdb-4.17.86/gdb/sparclet-rom.c gdb-4.17.86/gdb/sparclet-stub.c STABS.INF : gdb-4.17.86/gdb/doc/stabs.info gdb-4.17.86/gdb/doc/stabs.info-1 gdb-4.17.86/gdb/doc/stabs.info-2 gdb-4.17.86/gdb/doc/stabs.info-3 gdb-4.17.86/gdb/doc/stabs.info-4 TM-ALPHA.H : gdb-4.17.86/gdb/config/alpha/tm-alpha.h gdb-4.17.86/gdb/config/alpha/tm-alphalinux.h TM-BIGMI.H : gdb-4.17.86/gdb/config/mips/tm-bigmips.h gdb-4.17.86/gdb/config/mips/tm-bigmips64.h TM-DELTA.H : gdb-4.17.86/gdb/config/m88k/tm-delta88.h gdb-4.17.86/gdb/config/m88k/tm-delta88v4.h TM-EMBED.H : gdb-4.17.86/gdb/config/mips/tm-embed.h gdb-4.17.86/gdb/config/mips/tm-embed64.h gdb-4.17.86/gdb/config/mips/tm-embedl.h gdb-4.17.86/gdb/config/mips/tm-embedl64.h TM-HP300.H : gdb-4.17.86/gdb/config/m68k/tm-hp300bsd.h gdb-4.17.86/gdb/config/m68k/tm-hp300hpux.h TM-I386M.H : gdb-4.17.86/gdb/config/i386/tm-i386m3.h gdb-4.17.86/gdb/config/i386/tm-i386mk.h TM-I386S.H : gdb-4.17.86/gdb/config/i386/tm-i386sco5.h gdb-4.17.86/gdb/config/i386/tm-i386sol2.h TM-I386V.H : gdb-4.17.86/gdb/config/i386/tm-i386v.h gdb-4.17.86/gdb/config/i386/tm-i386v4.h gdb-4.17.86/gdb/config/i386/tm-i386v42mp.h TM-PPCLE.H : gdb-4.17.86/gdb/config/powerpc/tm-ppcle-eabi.h gdb-4.17.86/gdb/config/powerpc/tm-ppcle-sim.h TM-RS600.H : gdb-4.17.86/gdb/config/rs6000/tm-rs6000-aix4.h gdb-4.17.86/gdb/config/rs6000/tm-rs6000.h gdb-4.17.86/gdb/config/rs6000/tm-rs6000ly.h TM-SPARC.H : gdb-4.17.86/gdb/config/sparc/tm-sparc.h gdb-4.17.86/gdb/config/sparc/tm-sparclet.h gdb-4.17.86/gdb/config/sparc/tm-sparclite.h gdb-4.17.86/gdb/config/sparc/tm-sparclynx.h TM-VR430.H : gdb-4.17.86/gdb/config/mips/tm-vr4300.h gdb-4.17.86/gdb/config/mips/tm-vr4300el.h TM-VR500.H : gdb-4.17.86/gdb/config/mips/tm-vr5000.h gdb-4.17.86/gdb/config/mips/tm-vr5000el.h TUISOURC.C : gdb-4.17.86/gdb/tui/tuiSource.c gdb-4.17.86/gdb/tui/tuiSourceWin.c TUISOURC.H : gdb-4.17.86/gdb/tui/tuiSource.h gdb-4.17.86/gdb/tui/tuiSourceWin.h XM-ALPHA.H : gdb-4.17.86/gdb/config/alpha/xm-alphalinux.h gdb-4.17.86/gdb/config/alpha/xm-alphaosf.h XM-APOLL.H : gdb-4.17.86/gdb/config/m68k/xm-apollo68b.h gdb-4.17.86/gdb/config/m68k/xm-apollo68v.h XM-DELTA.H : gdb-4.17.86/gdb/config/m88k/xm-delta88.h gdb-4.17.86/gdb/config/m88k/xm-delta88v4.h XM-HP300.H : gdb-4.17.86/gdb/config/m68k/xm-hp300bsd.h gdb-4.17.86/gdb/config/m68k/xm-hp300hpux.h XM-I386M.H : gdb-4.17.86/gdb/config/i386/xm-i386m3.h gdb-4.17.86/gdb/config/i386/xm-i386mach.h gdb-4.17.86/gdb/config/i386/xm-i386mk.h XM-I386V.H : gdb-4.17.86/gdb/config/i386/xm-i386v.h gdb-4.17.86/gdb/config/i386/xm-i386v32.h gdb-4.17.86/gdb/config/i386/xm-i386v4.h XM-RS600.H : gdb-4.17.86/gdb/config/rs6000/xm-rs6000.h gdb-4.17.86/gdb/config/rs6000/xm-rs6000ly.h XM-SPARC.H : gdb-4.17.86/gdb/config/sparc/xm-sparc.h gdb-4.17.86/gdb/config/sparc/xm-sparclynx.h XM-VAXUL.H : gdb-4.17.86/gdb/config/vax/xm-vaxult.h gdb-4.17.86/gdb/config/vax/xm-vaxult2.h The following resolve to the same SysV file names: filter_filenam : gdb-4.17.86/sim/ppc/filter_filename.c gdb-4.17.86/sim/ppc/filter_filename.h gen-semantics. : gdb-4.17.86/sim/igen/gen-semantics.c gdb-4.17.86/sim/igen/gen-semantics.h gen-semantics. : gdb-4.17.86/sim/ppc/gen-semantics.c gdb-4.17.86/sim/ppc/gen-semantics.h hw-properties. : gdb-4.17.86/sim/common/hw-properties.c gdb-4.17.86/sim/common/hw-properties.h tuiGeneralWin. : gdb-4.17.86/gdb/tui/tuiGeneralWin.c gdb-4.17.86/gdb/tui/tuiGeneralWin.h The following file names are too long for SysV: ChangeLog.Cygn : gdb-4.17.86/intl/ChangeLog.Cygnus a1-selftest.ex : gdb-4.17.86/gdb/testsuite/gdb.base/a1-selftest.exp cma_debug_clie : gdb-4.17.86/gdb/osf-share/cma_debug_client.h cma_semaphore_ : gdb-4.17.86/gdb/osf-share/cma_semaphore_defs.h cma_stack_int. : gdb-4.17.86/gdb/osf-share/cma_stack_int.h cma_thread_io. : gdb-4.17.86/gdb/osf-share/AT386/cma_thread_io.h cma_thread_io. : gdb-4.17.86/gdb/osf-share/HP800/cma_thread_io.h cma_thread_io. : gdb-4.17.86/gdb/osf-share/RIOS/cma_thread_io.h emc-support.ex : gdb-4.17.86/gdb/testsuite/lib/emc-support.exp exc_request.de : gdb-4.17.86/gdb/exc_request.defs execd-program. : gdb-4.17.86/gdb/testsuite/gdb.hp/execd-program.c extstruct-grt. : gdb-4.17.86/gdb/testsuite/gdb.chill/extstruct-grt.ch forward-includ : gdb-4.17.86/config/mpw/forward-include gen-so-thresh. : gdb-4.17.86/gdb/testsuite/gdb.hp/gen-so-thresh.c hp-psymtab-rea : gdb-4.17.86/gdb/hp-psymtab-read.c hp-symtab-read : gdb-4.17.86/gdb/hp-symtab-read.c idecode_branch : gdb-4.17.86/sim/ppc/idecode_branch.h idecode_expres : gdb-4.17.86/sim/ppc/idecode_expression.h idecode_fields : gdb-4.17.86/sim/ppc/idecode_fields.h m68klinux-nat. : gdb-4.17.86/gdb/m68klinux-nat.c mn10300-eval.e : gdb-4.17.86/gdb/testsuite/config/mn10300-eval.exp ns32knbsd-nat. : gdb-4.17.86/gdb/ns32knbsd-nat.c ppc-cache-rule : gdb-4.17.86/sim/ppc/ppc-cache-rules ppc-instructio : gdb-4.17.86/sim/ppc/ppc-instructions process_reply. : gdb-4.17.86/gdb/process_reply.defs remote-vxmips. : gdb-4.17.86/gdb/remote-vxmips.c remote-vxsparc : gdb-4.17.86/gdb/remote-vxsparc.c reply_mig_hack : gdb-4.17.86/gdb/reply_mig_hack.awk sim_callbacks. : gdb-4.17.86/sim/ppc/sim_callbacks.h so-thresh.link : gdb-4.17.86/gdb/testsuite/gdb.hp/so-thresh.linkopts sparclet-stub. : gdb-4.17.86/gdb/sparclet-stub.c tm-alphalinux. : gdb-4.17.86/gdb/config/alpha/tm-alphalinux.h tm-ppcle-eabi. : gdb-4.17.86/gdb/config/powerpc/tm-ppcle-eabi.h tm-rs6000-aix4 : gdb-4.17.86/gdb/config/rs6000/tm-rs6000-aix4.h trace-support. : gdb-4.17.86/gdb/testsuite/lib/trace-support.exp vforked-progra : gdb-4.17.86/gdb/testsuite/gdb.hp/vforked-program.c while-stepping : gdb-4.17.86/gdb/testsuite/gdb.trace/while-stepping.exp xm-alphalinux. : gdb-4.17.86/gdb/config/alpha/xm-alphalinux.h ****************************************************** * email: Robert Hoehne <robert.hoehne@gmx.net> * * Post: Am Berg 3, D-09573 Dittmannsdorf, Germany * * WWW: http://www.tu-chemnitz.de/~sho/rho * ****************************************************** ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: DJGPP support (was libgdb) 1999-03-14 4:18 ` Robert Hoehne 1999-04-01 0:00 ` Robert Hoehne @ 1999-04-01 0:00 ` Stan Shebs 1999-03-14 14:41 ` Stan Shebs 1 sibling, 1 reply; 30+ messages in thread From: Stan Shebs @ 1999-04-01 0:00 UTC (permalink / raw) To: robert.hoehne; +Cc: gdb-patches, gdb From: Robert Hoehne <robert.hoehne@gmx.net> Date: Sun, 14 Mar 1999 13:20:40 +0100 > But how is anybody supposed to know what can be changed and what not? Of course nobody can imagine what the mainatainer of GDB will do with the sources (except of course the mainatiner itself). True, although if something is a documented requirement, maintainers should be loath to remove it. I can't remember the last time a command documented in the manual was taken out, for instance, even though there are some pretty dubious things in there. I really don't understand, why you are against such small changes which doesn't affect any behaviour of GDB but which will help the programming of others. (for instance simply moving the newly introduced global variables from main.c to top.c) I'm not personally against doing this, in fact it seems like an easy and reasonable thing to do. However, I also need to be able to document this adequately somewhere, so that the next ambitious person who comes along doesn't unknowingly undo this change. For instance, HP now has a newly-formed GDB group in Cupertino - how will they know what they can change freely and what to leave alone? I have leaned that already :-( But at this point I really don't understand, why the the mainatainers of GNU tools nearly ever forget when introducing new features, that there are also people, which use the GNU environment for DOS called DJGPP where are some limitations exist. And as I have heared, the GNU cdrom with DJGPP on it was a hit. Sometimes I think, the GNU mainatiner have something against DJGPP. I'm sorry if you have that impression, it's certainly not the case. Hey, back when I was doing Mac ports, a lot of people disapproved of *me*! so I know what it feels like to port to and support a non-standard configuration. But I'm glad you brought this issue up. For a long time, it has been the policy of the FSF not to expend much effort on DOS support. For instance, there is this bit in etc/standards.texi: "As for systems that are not like Unix, such as MSDOS, Windows, the Macintosh, VMS, and MVS, supporting them is usually so much work that it is better if you don't." Although later on there is this, in a discussion of packaging for release: "Try to make sure that all the file names will be unique on MS-DOS." And as you say, DJGPP is a popular port of GNU, and is being actively maintained. Since I'm a portability fanatic, I'm all in favor of making GDB support DJGPP, and making any changes necessary to enable this in the standard version of GDB. However, since GDB includes modules like readline and bfd, it's also important to have at least the GDB-related package maintainers agree to support DJGPP, if not GCC, GAS, LD, etc. I would also like to get the FSF coding standards modified. RMS owns the standard, so you or DJ or somebody should send him mail pointing out that the standards would seem to discourage support for packages like DJGPP, and could he please modify it to provide better guidance for maintainers on this point. Stan ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: DJGPP support (was libgdb) 1999-04-01 0:00 ` DJGPP support (was libgdb) Stan Shebs @ 1999-03-14 14:41 ` Stan Shebs 0 siblings, 0 replies; 30+ messages in thread From: Stan Shebs @ 1999-03-14 14:41 UTC (permalink / raw) To: robert.hoehne; +Cc: gdb-patches, gdb From: Robert Hoehne <robert.hoehne@gmx.net> Date: Sun, 14 Mar 1999 13:20:40 +0100 > But how is anybody supposed to know what can be changed and what not? Of course nobody can imagine what the mainatainer of GDB will do with the sources (except of course the mainatiner itself). True, although if something is a documented requirement, maintainers should be loath to remove it. I can't remember the last time a command documented in the manual was taken out, for instance, even though there are some pretty dubious things in there. I really don't understand, why you are against such small changes which doesn't affect any behaviour of GDB but which will help the programming of others. (for instance simply moving the newly introduced global variables from main.c to top.c) I'm not personally against doing this, in fact it seems like an easy and reasonable thing to do. However, I also need to be able to document this adequately somewhere, so that the next ambitious person who comes along doesn't unknowingly undo this change. For instance, HP now has a newly-formed GDB group in Cupertino - how will they know what they can change freely and what to leave alone? I have leaned that already :-( But at this point I really don't understand, why the the mainatainers of GNU tools nearly ever forget when introducing new features, that there are also people, which use the GNU environment for DOS called DJGPP where are some limitations exist. And as I have heared, the GNU cdrom with DJGPP on it was a hit. Sometimes I think, the GNU mainatiner have something against DJGPP. I'm sorry if you have that impression, it's certainly not the case. Hey, back when I was doing Mac ports, a lot of people disapproved of *me*! so I know what it feels like to port to and support a non-standard configuration. But I'm glad you brought this issue up. For a long time, it has been the policy of the FSF not to expend much effort on DOS support. For instance, there is this bit in etc/standards.texi: "As for systems that are not like Unix, such as MSDOS, Windows, the Macintosh, VMS, and MVS, supporting them is usually so much work that it is better if you don't." Although later on there is this, in a discussion of packaging for release: "Try to make sure that all the file names will be unique on MS-DOS." And as you say, DJGPP is a popular port of GNU, and is being actively maintained. Since I'm a portability fanatic, I'm all in favor of making GDB support DJGPP, and making any changes necessary to enable this in the standard version of GDB. However, since GDB includes modules like readline and bfd, it's also important to have at least the GDB-related package maintainers agree to support DJGPP, if not GCC, GAS, LD, etc. I would also like to get the FSF coding standards modified. RMS owns the standard, so you or DJ or somebody should send him mail pointing out that the standards would seem to discourage support for packages like DJGPP, and could he please modify it to provide better guidance for maintainers on this point. Stan ^ permalink raw reply [flat|nested] 30+ messages in thread
[parent not found: <99031011141900.03735.cygnus.patches.gdb@hal>]
* Re: libgdb.a [not found] ` <99031011141900.03735.cygnus.patches.gdb@hal> @ 1999-03-10 16:31 ` Andrew Cagney 1999-04-01 0:00 ` libgdb.a J.T. Conklin ` (3 more replies) 0 siblings, 4 replies; 30+ messages in thread From: Andrew Cagney @ 1999-03-10 16:31 UTC (permalink / raw) To: gdb-patches, Andris Pavenis Andris Pavenis wrote: > Maybe it would be usefull to implement init functions of higher priority that > are executed before ones which names begins with _initialize_. > So we would be able to avoid gcc related extensions such as > __attribute__((constructor)). > > For that we should use a different name prefix (eg. _preinit_ or something like) > and require that these functions are independent one from another one (should > not use results of other similar init functions). This has been discussed before (but on another list) and on the last occasion it was actually me suggested something along similar lines to your proposal. I lost the the discussion :-) The consensus was that if GDB started down the path of having two initialization levels it could quickly find itself heading for a situtation where there were N initialization levels and a really confused startup sequence. It was thought that, if anything, we should be trying to discourage additional complexity being introduced during startup. As an example, consider the idea (that was recently floated) of GDB suporting several target-architectures. Instead of fully initializing the code for all the target-architectures during startup, it would probably be more prudent to leave most of that task until the point where GDB knew exactly which architecture was being debugged. enjoy, Andrew ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb.a 1999-03-10 16:31 ` libgdb.a Andrew Cagney @ 1999-04-01 0:00 ` J.T. Conklin 1999-03-11 14:29 ` libgdb.a J.T. Conklin 1999-04-01 0:00 ` libgdb.a Andrew Cagney ` (2 subsequent siblings) 3 siblings, 1 reply; 30+ messages in thread From: J.T. Conklin @ 1999-04-01 0:00 UTC (permalink / raw) To: gdb-patches >>>>> "cagney" == Andrew Cagney <ac131313@cygnus.com> writes: cagney> Andris Pavenis wrote: >> Maybe it would be usefull to implement init functions of higher >> priority that are executed before ones which names begins with >> _initialize_. So we would be able to avoid gcc related extensions >> such as __attribute__((constructor)). >> >> For that we should use a different name prefix (eg. _preinit_ or >> something like) and require that these functions are independent >> one from another one (should not use results of other similar init >> functions). cagney> This has been discussed before (but on another list) and on cagney> the last occasion it was actually me suggested something along cagney> similar lines to your proposal. I lost the the discussion :-) cagney> The consensus was that if GDB started down the path of having cagney> two initialization levels it could quickly find itself heading cagney> for a situtation where there were N initialization levels and cagney> a really confused startup sequence. It was thought that, if cagney> anything, we should be trying to discourage additional cagney> complexity being introduced during startup. I'd have to agree that adding another layer of initialization starts down a slippery slope. But taken to its logical conclusion, perhaps its a slope worth sliding down. GDB is built from a "core" set of code which is common to all hosts and targets, and assorted modules that may or may not be bound into the image. Neither the core nor the modules have any knowledge of each other. Module initialization functions are identified by a script (embedded in the Makefile) that extracts names of functions with names of the form `_initialize_*' from the objects that will be linked into GDB. These names are used to construct a C file, init.c. When compiled and linked with the rest of the objects, GDB iterates through the array of init functions calling each in sequence. That sequence is essentially random -- it depends on which order the objects are processed. But what if instead of collecting the names of init functions, init.c was constructed by collecting the names of module identifiers. A module identifier struct might look something like follows: struct module_id { int magic; char *module_name; char *req; char *pre; void (*func)(void); }; A module instance might be something like this: struct module_id _module_ser_tcp = { MODULE_MAGIC, "ser_tcp", "ser, foo, bar, baz", "ser", _initialize_ser_tcp }; To explain, this defines a module "ser_tcp", it requires the modules "ser", "foo", "bar", and "baz" to be present in the image; and it requires from the constructor for the module "ser" be run before it's own constructor. A simple dependency engine could 1) determine that all required modules are present; 2) determine that there are no circular dependencies; and then 3) execute the init functions in the desired order. There are obvious avenues for improvement for this idea (e.g, you might want some way to indicate a module is optional, but if it is present its init function must be run first; a mechanism for dynamically loading GDB modules; versioning modules; etc). I've worked on systems with a similar mechanism, and believe that it could be made to work for GDB if someone wanted to go down this path. IMO it is much superior to simply adding another layer (or layers) of init functions. cagney> As an example, consider the idea (that was recently floated) cagney> of GDB suporting several target-architectures. Instead of cagney> fully initializing the code for all the target-architectures cagney> during startup, it would probably be more prudent to leave cagney> most of that task until the point where GDB knew exactly which cagney> architecture was being debugged. --jtc -- J.T. Conklin RedBack Networks ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb.a 1999-04-01 0:00 ` libgdb.a J.T. Conklin @ 1999-03-11 14:29 ` J.T. Conklin 0 siblings, 0 replies; 30+ messages in thread From: J.T. Conklin @ 1999-03-11 14:29 UTC (permalink / raw) To: gdb-patches >>>>> "cagney" == Andrew Cagney <ac131313@cygnus.com> writes: cagney> Andris Pavenis wrote: >> Maybe it would be usefull to implement init functions of higher >> priority that are executed before ones which names begins with >> _initialize_. So we would be able to avoid gcc related extensions >> such as __attribute__((constructor)). >> >> For that we should use a different name prefix (eg. _preinit_ or >> something like) and require that these functions are independent >> one from another one (should not use results of other similar init >> functions). cagney> This has been discussed before (but on another list) and on cagney> the last occasion it was actually me suggested something along cagney> similar lines to your proposal. I lost the the discussion :-) cagney> The consensus was that if GDB started down the path of having cagney> two initialization levels it could quickly find itself heading cagney> for a situtation where there were N initialization levels and cagney> a really confused startup sequence. It was thought that, if cagney> anything, we should be trying to discourage additional cagney> complexity being introduced during startup. I'd have to agree that adding another layer of initialization starts down a slippery slope. But taken to its logical conclusion, perhaps its a slope worth sliding down. GDB is built from a "core" set of code which is common to all hosts and targets, and assorted modules that may or may not be bound into the image. Neither the core nor the modules have any knowledge of each other. Module initialization functions are identified by a script (embedded in the Makefile) that extracts names of functions with names of the form `_initialize_*' from the objects that will be linked into GDB. These names are used to construct a C file, init.c. When compiled and linked with the rest of the objects, GDB iterates through the array of init functions calling each in sequence. That sequence is essentially random -- it depends on which order the objects are processed. But what if instead of collecting the names of init functions, init.c was constructed by collecting the names of module identifiers. A module identifier struct might look something like follows: struct module_id { int magic; char *module_name; char *req; char *pre; void (*func)(void); }; A module instance might be something like this: struct module_id _module_ser_tcp = { MODULE_MAGIC, "ser_tcp", "ser, foo, bar, baz", "ser", _initialize_ser_tcp }; To explain, this defines a module "ser_tcp", it requires the modules "ser", "foo", "bar", and "baz" to be present in the image; and it requires from the constructor for the module "ser" be run before it's own constructor. A simple dependency engine could 1) determine that all required modules are present; 2) determine that there are no circular dependencies; and then 3) execute the init functions in the desired order. There are obvious avenues for improvement for this idea (e.g, you might want some way to indicate a module is optional, but if it is present its init function must be run first; a mechanism for dynamically loading GDB modules; versioning modules; etc). I've worked on systems with a similar mechanism, and believe that it could be made to work for GDB if someone wanted to go down this path. IMO it is much superior to simply adding another layer (or layers) of init functions. cagney> As an example, consider the idea (that was recently floated) cagney> of GDB suporting several target-architectures. Instead of cagney> fully initializing the code for all the target-architectures cagney> during startup, it would probably be more prudent to leave cagney> most of that task until the point where GDB knew exactly which cagney> architecture was being debugged. --jtc -- J.T. Conklin RedBack Networks ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb.a 1999-03-10 16:31 ` libgdb.a Andrew Cagney 1999-04-01 0:00 ` libgdb.a J.T. Conklin @ 1999-04-01 0:00 ` Andrew Cagney 1999-04-01 0:00 ` libgdb.a Todd Whitesel 1999-04-01 0:00 ` libgdb.a Andris Pavenis 3 siblings, 0 replies; 30+ messages in thread From: Andrew Cagney @ 1999-04-01 0:00 UTC (permalink / raw) To: gdb-patches, Andris Pavenis Andris Pavenis wrote: > Maybe it would be usefull to implement init functions of higher priority that > are executed before ones which names begins with _initialize_. > So we would be able to avoid gcc related extensions such as > __attribute__((constructor)). > > For that we should use a different name prefix (eg. _preinit_ or something like) > and require that these functions are independent one from another one (should > not use results of other similar init functions). This has been discussed before (but on another list) and on the last occasion it was actually me suggested something along similar lines to your proposal. I lost the the discussion :-) The consensus was that if GDB started down the path of having two initialization levels it could quickly find itself heading for a situtation where there were N initialization levels and a really confused startup sequence. It was thought that, if anything, we should be trying to discourage additional complexity being introduced during startup. As an example, consider the idea (that was recently floated) of GDB suporting several target-architectures. Instead of fully initializing the code for all the target-architectures during startup, it would probably be more prudent to leave most of that task until the point where GDB knew exactly which architecture was being debugged. enjoy, Andrew ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb.a 1999-03-10 16:31 ` libgdb.a Andrew Cagney 1999-04-01 0:00 ` libgdb.a J.T. Conklin 1999-04-01 0:00 ` libgdb.a Andrew Cagney @ 1999-04-01 0:00 ` Todd Whitesel 1999-03-10 16:56 ` libgdb.a Todd Whitesel 1999-03-11 12:40 ` libgdb.a Stan Shebs 1999-04-01 0:00 ` libgdb.a Andris Pavenis 3 siblings, 2 replies; 30+ messages in thread From: Todd Whitesel @ 1999-04-01 0:00 UTC (permalink / raw) To: gdb-patches >target-architectures during startup, it would probably be more prudent to leave >most of that task until the point where GDB knew exactly which architecture was >being debugged. Yes, and this sounds like an example where multi-level initialization is a Good Thing(TM). I would love it if more things in GDB were "constructored" and not #define'd or hardcoded. Right now (read 4.17) with many remote targets you can't know the exact register list until you probe the target to find out what it is, yet the reg_names[] array is statically initialized (because on ptrace unix platforms that Just Worked), and we're just lucky that the rest of GDB adapts well to having reg_names[] edited after initialization. -- Todd Whitesel toddpw @ wrs.com ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb.a 1999-04-01 0:00 ` libgdb.a Todd Whitesel @ 1999-03-10 16:56 ` Todd Whitesel 1999-03-11 12:40 ` libgdb.a Stan Shebs 1 sibling, 0 replies; 30+ messages in thread From: Todd Whitesel @ 1999-03-10 16:56 UTC (permalink / raw) To: gdb-patches >target-architectures during startup, it would probably be more prudent to leave >most of that task until the point where GDB knew exactly which architecture was >being debugged. Yes, and this sounds like an example where multi-level initialization is a Good Thing(TM). I would love it if more things in GDB were "constructored" and not #define'd or hardcoded. Right now (read 4.17) with many remote targets you can't know the exact register list until you probe the target to find out what it is, yet the reg_names[] array is statically initialized (because on ptrace unix platforms that Just Worked), and we're just lucky that the rest of GDB adapts well to having reg_names[] edited after initialization. -- Todd Whitesel toddpw @ wrs.com ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb.a 1999-04-01 0:00 ` libgdb.a Todd Whitesel 1999-03-10 16:56 ` libgdb.a Todd Whitesel @ 1999-03-11 12:40 ` Stan Shebs 1999-04-01 0:00 ` libgdb.a Stan Shebs 1 sibling, 1 reply; 30+ messages in thread From: Stan Shebs @ 1999-03-11 12:40 UTC (permalink / raw) To: toddpw; +Cc: gdb-patches From: toddpw@wrs.com (Todd Whitesel) Date: Wed, 10 Mar 1999 16:56:04 -0800 (PST) I would love it if more things in GDB were "constructored" and not #define'd or hardcoded. Right now (read 4.17) with many remote targets you can't know the exact register list until you probe the target to find out what it is, yet the reg_names[] array is statically initialized (because on ptrace unix platforms that Just Worked), and we're just lucky that the rest of GDB adapts well to having reg_names[] edited after initialization. As I mentioned a couple weeks ago to one of the lists, more dynamic construction is the way to go in the future. One thing that individuals can do now to ease the transition is to avoid ifdefs in their patches. It should be clear to everyone that a GDB littered with target ifdefs is not going to be able to make runtime choices about anything. So, avoid the ifdef! Stan ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb.a 1999-03-11 12:40 ` libgdb.a Stan Shebs @ 1999-04-01 0:00 ` Stan Shebs 0 siblings, 0 replies; 30+ messages in thread From: Stan Shebs @ 1999-04-01 0:00 UTC (permalink / raw) To: toddpw; +Cc: gdb-patches From: toddpw@wrs.com (Todd Whitesel) Date: Wed, 10 Mar 1999 16:56:04 -0800 (PST) I would love it if more things in GDB were "constructored" and not #define'd or hardcoded. Right now (read 4.17) with many remote targets you can't know the exact register list until you probe the target to find out what it is, yet the reg_names[] array is statically initialized (because on ptrace unix platforms that Just Worked), and we're just lucky that the rest of GDB adapts well to having reg_names[] edited after initialization. As I mentioned a couple weeks ago to one of the lists, more dynamic construction is the way to go in the future. One thing that individuals can do now to ease the transition is to avoid ifdefs in their patches. It should be clear to everyone that a GDB littered with target ifdefs is not going to be able to make runtime choices about anything. So, avoid the ifdef! Stan ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb.a 1999-03-10 16:31 ` libgdb.a Andrew Cagney ` (2 preceding siblings ...) 1999-04-01 0:00 ` libgdb.a Todd Whitesel @ 1999-04-01 0:00 ` Andris Pavenis 1999-03-11 0:27 ` libgdb.a Andris Pavenis 3 siblings, 1 reply; 30+ messages in thread From: Andris Pavenis @ 1999-04-01 0:00 UTC (permalink / raw) To: Andrew Cagney, gdb-patches On Thu, 11 Mar 1999, Andrew Cagney wrote: >Andris Pavenis wrote: > >> Maybe it would be usefull to implement init functions of higher priority that >> are executed before ones which names begins with _initialize_. >> So we would be able to avoid gcc related extensions such as >> __attribute__((constructor)). >> >> For that we should use a different name prefix (eg. _preinit_ or something like) >> and require that these functions are independent one from another one (should >> not use results of other similar init functions). > >This has been discussed before (but on another list) and on the last occasion it >was actually me suggested something along similar lines to your proposal. I lost >the the discussion :-) > >The consensus was that if GDB started down the path of having two initialization >levels it could quickly find itself heading for a situtation where there were N >initialization levels and a really confused startup sequence. It was thought that, >if anything, we should be trying to discourage additional complexity being >introduced during startup. > >As an example, consider the idea (that was recently floated) of GDB suporting >several target-architectures. Instead of fully initializing the code for all the >target-architectures during startup, it would probably be more prudent to leave >most of that task until the point where GDB knew exactly which architecture was >being debugged. > Yes I agree that introducing more initialization levels maybe not acceptable. Anyway if we should change interface for libgdb.a then it's best do do it now in such way we probably won't need to do it again soon (Introducing typedef GDB_FILE is already such change) . I suggest follwing: 1) move definitions of such variables to separate file out of main.c 2) move initialization of these variables to the same file and create procedure that initializes tham. 3) call this newly introduced procedure from very begin of main As the result we'll be able to place newly introduced file in libgdb.a. Perhaps it would be best to add some C preprocessor macro so programs that uses libgdb.a could found that at compile time. So we could move such initialization to a separate file that could be included in libgdb.a. Of course programs that uses libgdb.a will have to call init function at first. Andris PS. I'm not subscribed to this list. So please CC: answer to me ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb.a 1999-04-01 0:00 ` libgdb.a Andris Pavenis @ 1999-03-11 0:27 ` Andris Pavenis 0 siblings, 0 replies; 30+ messages in thread From: Andris Pavenis @ 1999-03-11 0:27 UTC (permalink / raw) To: Andrew Cagney, gdb-patches On Thu, 11 Mar 1999, Andrew Cagney wrote: >Andris Pavenis wrote: > >> Maybe it would be usefull to implement init functions of higher priority that >> are executed before ones which names begins with _initialize_. >> So we would be able to avoid gcc related extensions such as >> __attribute__((constructor)). >> >> For that we should use a different name prefix (eg. _preinit_ or something like) >> and require that these functions are independent one from another one (should >> not use results of other similar init functions). > >This has been discussed before (but on another list) and on the last occasion it >was actually me suggested something along similar lines to your proposal. I lost >the the discussion :-) > >The consensus was that if GDB started down the path of having two initialization >levels it could quickly find itself heading for a situtation where there were N >initialization levels and a really confused startup sequence. It was thought that, >if anything, we should be trying to discourage additional complexity being >introduced during startup. > >As an example, consider the idea (that was recently floated) of GDB suporting >several target-architectures. Instead of fully initializing the code for all the >target-architectures during startup, it would probably be more prudent to leave >most of that task until the point where GDB knew exactly which architecture was >being debugged. > Yes I agree that introducing more initialization levels maybe not acceptable. Anyway if we should change interface for libgdb.a then it's best do do it now in such way we probably won't need to do it again soon (Introducing typedef GDB_FILE is already such change) . I suggest follwing: 1) move definitions of such variables to separate file out of main.c 2) move initialization of these variables to the same file and create procedure that initializes tham. 3) call this newly introduced procedure from very begin of main As the result we'll be able to place newly introduced file in libgdb.a. Perhaps it would be best to add some C preprocessor macro so programs that uses libgdb.a could found that at compile time. So we could move such initialization to a separate file that could be included in libgdb.a. Of course programs that uses libgdb.a will have to call init function at first. Andris PS. I'm not subscribed to this list. So please CC: answer to me ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb.a 1999-03-08 7:10 No Subject Andris Pavenis 1999-03-08 11:15 ` none Jim Blandy [not found] ` <99031011141900.03735.cygnus.patches.gdb@hal> @ 1999-04-01 0:00 ` Andris Pavenis 1999-03-10 1:14 ` libgdb.a Andris Pavenis 1999-04-01 0:00 ` No Subject Andris Pavenis 3 siblings, 1 reply; 30+ messages in thread From: Andris Pavenis @ 1999-04-01 0:00 UTC (permalink / raw) To: gdb-patches On Mon, 08 Mar 1999, Andris Pavenis wrote: >Hi! > >Tried gdb-4.17.85 on i586-pc-linux-gnu (with glibc-2.1) and met following >problem that was no with gdb-4.17: > >Some global symbols are defined in gdb/main.c (eg. gdb_stdout, >gdb-stderr, etc). As the result if I'm building all except main.c in >object library to use with some IDE that uses gdb for debugging >(rhide-1.4.7), I'm getting unresolved references. > >So I'm suggesting rather ugly hack (moving these definitions to top.c >and puting there static constructor that initializes gdb_std*). I agree does >not look nice, but I'm sending it only to point to possible problem. >I cannot use _initialize_* here as files must be defined before running >all _initialize_* procedures. > Maybe it would be usefull to implement init functions of higher priority that are executed before ones which names begins with _initialize_. So we would be able to avoid gcc related extensions such as __attribute__((constructor)). For that we should use a different name prefix (eg. _preinit_ or something like) and require that these functions are independent one from another one (should not use results of other similar init functions). Andris Please send answers also to me as I'm not subscribed to gdb-patches ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: libgdb.a 1999-04-01 0:00 ` libgdb.a Andris Pavenis @ 1999-03-10 1:14 ` Andris Pavenis 0 siblings, 0 replies; 30+ messages in thread From: Andris Pavenis @ 1999-03-10 1:14 UTC (permalink / raw) To: gdb-patches On Mon, 08 Mar 1999, Andris Pavenis wrote: >Hi! > >Tried gdb-4.17.85 on i586-pc-linux-gnu (with glibc-2.1) and met following >problem that was no with gdb-4.17: > >Some global symbols are defined in gdb/main.c (eg. gdb_stdout, >gdb-stderr, etc). As the result if I'm building all except main.c in >object library to use with some IDE that uses gdb for debugging >(rhide-1.4.7), I'm getting unresolved references. > >So I'm suggesting rather ugly hack (moving these definitions to top.c >and puting there static constructor that initializes gdb_std*). I agree does >not look nice, but I'm sending it only to point to possible problem. >I cannot use _initialize_* here as files must be defined before running >all _initialize_* procedures. > Maybe it would be usefull to implement init functions of higher priority that are executed before ones which names begins with _initialize_. So we would be able to avoid gcc related extensions such as __attribute__((constructor)). For that we should use a different name prefix (eg. _preinit_ or something like) and require that these functions are independent one from another one (should not use results of other similar init functions). Andris Please send answers also to me as I'm not subscribed to gdb-patches ^ permalink raw reply [flat|nested] 30+ messages in thread
* No Subject 1999-03-08 7:10 No Subject Andris Pavenis ` (2 preceding siblings ...) 1999-04-01 0:00 ` libgdb.a Andris Pavenis @ 1999-04-01 0:00 ` Andris Pavenis 3 siblings, 0 replies; 30+ messages in thread From: Andris Pavenis @ 1999-04-01 0:00 UTC (permalink / raw) To: gdb-patches Hi! Tried gdb-4.17.85 on i586-pc-linux-gnu (with glibc-2.1) and met following problem that was no with gdb-4.17: Some global symbols are defined in gdb/main.c (eg. gdb_stdout, gdb-stderr, etc). As the result if I'm building all except main.c in object library to use with some IDE that uses gdb for debugging (rhide-1.4.7), I'm getting unresolved references. So I'm suggesting rather ugly hack (moving these definitions to top.c and puting there static constructor that initializes gdb_std*). I agree does not look nice, but I'm sending it only to point to possible problem. I cannot use _initialize_* here as files must be defined before running all _initialize_* procedures. An alternative idea could be duplicating init code and global vrariables in rhide. Andris --- main.c~1 Wed Feb 24 22:55:05 1999 +++ main.c Mon Mar 8 16:38:44 1999 @@ -54,18 +54,6 @@ int display_space; -/* Whether this is the command line version or not */ -int tui_version = 0; - -/* Whether xdb commands will be handled */ -int xdb_commands = 0; - -/* Whether dbx commands will be handled */ -int dbx_commands = 0; - -GDB_FILE *gdb_stdout; -GDB_FILE *gdb_stderr; - /* Whether to enable writing into executable and core files */ extern int write_files; @@ -161,20 +149,6 @@ getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)); current_directory = gdb_dirbuf; - - gdb_file_size = sizeof(GDB_FILE); - - gdb_stdout = (GDB_FILE *)xmalloc (gdb_file_size); - gdb_stdout->ts_streamtype = afile; - gdb_stdout->ts_filestream = stdout; - gdb_stdout->ts_strbuf = NULL; - gdb_stdout->ts_buflen = 0; - - gdb_stderr = (GDB_FILE *)xmalloc (gdb_file_size); - gdb_stderr->ts_streamtype = afile; - gdb_stderr->ts_filestream = stderr; - gdb_stderr->ts_strbuf = NULL; - gdb_stderr->ts_buflen = 0; /* Parse arguments and options. */ { --- top.c~1 Fri Jan 29 11:46:03 1999 +++ top.c Mon Mar 8 16:37:03 1999 @@ -53,6 +53,19 @@ extern void initialize_utils PARAMS ((void)); + +/* Whether this is the command line version or not */ +int tui_version = 0; + +/* Whether xdb commands will be handled */ +int xdb_commands = 0; + +/* Whether dbx commands will be handled */ +int dbx_commands = 0; + +GDB_FILE *gdb_stdout; +GDB_FILE *gdb_stderr; + /* Prototypes for local functions */ static void dont_repeat_command PARAMS ((char *, int)); @@ -467,6 +480,28 @@ SIGJMP_BUF error_return; /* Where to go for return_to_top_level (RETURN_QUIT). */ SIGJMP_BUF quit_return; + + + +void __attribute__((constructor)) +_init_gdb_stdio (void) +{ + int gdb_file_size; + gdb_file_size = sizeof(GDB_FILE); + + gdb_stdout = (GDB_FILE *)xmalloc (gdb_file_size); + gdb_stdout->ts_streamtype = afile; + gdb_stdout->ts_filestream = stdout; + gdb_stdout->ts_strbuf = NULL; + gdb_stdout->ts_buflen = 0; + + gdb_stderr = (GDB_FILE *)xmalloc (gdb_file_size); + gdb_stderr->ts_streamtype = afile; + gdb_stderr->ts_filestream = stderr; + gdb_stderr->ts_strbuf = NULL; + gdb_stderr->ts_buflen = 0; +} + /* Return for reason REASON. This generally gets back to the command loop, but can be caught via catch_errors. */ ^ permalink raw reply [flat|nested] 30+ messages in thread
end of thread, other threads:[~1999-04-01 0:00 UTC | newest]
Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-03-08 7:10 No Subject Andris Pavenis
1999-03-08 11:15 ` none Jim Blandy
1999-04-01 0:00 ` none Jim Blandy
1999-04-01 0:00 ` none Stan Shebs
1999-03-08 13:09 ` none Stan Shebs
1999-03-09 12:54 ` none Robert Hoehne
1999-04-01 0:00 ` none Robert Hoehne
1999-04-01 0:00 ` libgdb (was none) Robert Hoehne
1999-03-08 14:31 ` Robert Hoehne
1999-04-01 0:00 ` Stan Shebs
1999-03-10 15:39 ` Stan Shebs
1999-03-10 16:29 ` Todd Whitesel
1999-04-01 0:00 ` Todd Whitesel
1999-03-14 4:18 ` Robert Hoehne
1999-04-01 0:00 ` Robert Hoehne
1999-04-01 0:00 ` DJGPP support (was libgdb) Stan Shebs
1999-03-14 14:41 ` Stan Shebs
[not found] ` <99031011141900.03735.cygnus.patches.gdb@hal>
1999-03-10 16:31 ` libgdb.a Andrew Cagney
1999-04-01 0:00 ` libgdb.a J.T. Conklin
1999-03-11 14:29 ` libgdb.a J.T. Conklin
1999-04-01 0:00 ` libgdb.a Andrew Cagney
1999-04-01 0:00 ` libgdb.a Todd Whitesel
1999-03-10 16:56 ` libgdb.a Todd Whitesel
1999-03-11 12:40 ` libgdb.a Stan Shebs
1999-04-01 0:00 ` libgdb.a Stan Shebs
1999-04-01 0:00 ` libgdb.a Andris Pavenis
1999-03-11 0:27 ` libgdb.a Andris Pavenis
1999-04-01 0:00 ` libgdb.a Andris Pavenis
1999-03-10 1:14 ` libgdb.a Andris Pavenis
1999-04-01 0:00 ` No Subject Andris Pavenis
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox