|
From: Larry D. <ldo...@re...> - 2008-01-22 23:41:51
|
On an amd64 system with GNU Autoconf 2.61 (Debian 2.61-5), and leaving the source tree pristine, at configuration time config.status: WARNING: ../verilog-0.9/Makefile.in seems to ignore the --datarootdir setting config.status: WARNING: ../verilog-0.9/driver/Makefile.in seems to ignore the --datarootdir setting config.status: WARNING: ../verilog-0.9/driver-vpi/Makefile.in seems to ignore the --datarootdir setting config.status: WARNING: ../../verilog-0.9/vvp/Makefile.in seems to ignore the --datarootdir setting configure: WARNING: no configuration information is in tgt-null Build with gcc-4.2 (Debian 4.2.2-7) ../verilog-0.9/elab_lval.cc:354: warning: comparison is always true due to limited range of data type ../../verilog-0.9/vvp/vpi_priv.cc:121: warning: deprecated conversion from string constant to 'char*' ../../verilog-0.9/vvp/vpi_scope.cc:390: warning: dereferencing type-punned pointer will break strict-aliasing rules ../../verilog-0.9/libveriuser/getp.c:56: warning: cast from pointer to integer of different size Build with gcc-4.3 (Debian 4.3-20080116-1) ../../verilog-0.9/vvp/vpi_priv.cc:121: warning: deprecated conversion from string constant to 'char*' ../../verilog-0.9/libveriuser/getp.c:56: warning: cast from pointer to integer of different size - Larry |
|
From: Stephen W. <st...@ic...> - 2008-01-23 01:52:29
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Larry Doolittle wrote: > On an amd64 system with GNU Autoconf 2.61 (Debian 2.61-5), and leaving the source tree pristine, > at configuration time > > config.status: WARNING: ../verilog-0.9/Makefile.in seems to ignore the --datarootdir setting > config.status: WARNING: ../verilog-0.9/driver/Makefile.in seems to ignore the --datarootdir setting > config.status: WARNING: ../verilog-0.9/driver-vpi/Makefile.in seems to ignore the --datarootdir setting > config.status: WARNING: ../../verilog-0.9/vvp/Makefile.in seems to ignore the --datarootdir setting > configure: WARNING: no configuration information is in tgt-null I have no idea what to do with the above warnings. What is the datarootdir setting and why should I not ignore it? > ../../verilog-0.9/vvp/vpi_scope.cc:390: warning: dereferencing type-punned pointer will break strict-aliasing rules This one is an unfortunate consequence of the compile_vpi_lookup function. This function take a pointer to a handle so that it can look up the label and arrange for the matching handle to be stored in the pointer, some time in the future. One way to handle this might be to rewire the vpi objects to use __vpiHandle as a virtual base class so that C++ dynamic casting, which is run-time type-safe, can be used here. That would be a valuable cleanup, but a non-trivial task. > ../../verilog-0.9/libveriuser/getp.c:56: warning: cast from pointer to integer of different size The getp.c warning is an unfortunate consequence of the rather amateurish design of the types in the PLI. Yes, the tf_igetp is *defined* to be 32bits, and is expected to return pointers too. Fools! Fortunately, the PLI1 that this is a part of is officially gone from the standard as of 1364-2005. The VPI is not much better, but at least this specific bit of nonsense doesn't exist there. I would *love* to see how any of the big-3 declare tf_igetp in their veriuser.h header files on a 64bit machine;-) - -- Steve Williams "The woods are lovely, dark and deep. steve at icarus.com But I have promises to keep, http://www.icarus.com and lines to code before I sleep, http://www.picturel.com And lines to code before I sleep." -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFHlp3grPt1Sc2b3ikRAjzWAJ4tdYRsmDRUCyUl/x10dRtTh323uQCfb0IG YOSNnsLbg8AcdHXWM8go3So= =Eld+ -----END PGP SIGNATURE----- |
|
From: Anthony J B. <net...@nc...> - 2008-01-23 02:45:56
|
On Tue, 22 Jan 2008, Stephen Williams wrote: > I would *love* to see how any of the big-3 declare tf_igetp in > their veriuser.h header files on a 64bit machine;-) I'm not at work this instant so I can't check those do it but cver is supposed to be XL-compatible and this is how they define it: EXTERN int tf_igetp PROTO_PARAMS((int pnum, char *inst)); which on amd64 and ppc64 doesn't look different from what you're doing: extern PLI_INT32 tf_igetp(PLI_INT32, void*); well, unless you compile with -qintsize=8 in AIX. -t |
|
From: Larry D. <ldo...@re...> - 2008-01-23 05:28:18
|
Steve - On Tue, Jan 22, 2008 at 05:52:32PM -0800, Stephen Williams wrote: > Larry Doolittle wrote: > > ../../verilog-0.9/vvp/vpi_scope.cc:390: warning: dereferencing type-punned pointer will break strict-aliasing rules > > This one is an unfortunate consequence of the compile_vpi_lookup > function. This function take a pointer to a handle so that it > can look up the label and arrange for the matching handle to be > stored in the pointer, some time in the future. > > One way to handle this might be to rewire the vpi objects to > use __vpiHandle as a virtual base class so that C++ dynamic > casting, which is run-time type-safe, can be used here. That would > be a valuable cleanup, but a non-trivial task. The intriguing thing is that gcc-4.3 no longer considers the construct to merit a warning. So I wouldn't worry about it much. The lower hanging fruit, that does apply to both gcc-4.2 and gcc-4.3, is ../../verilog-0.9/vvp/vpi_priv.cc:121: warning: deprecated conversion from string constant to 'char*' > > ../../verilog-0.9/libveriuser/getp.c:56: warning: cast from pointer to integer of different size > The getp.c warning is an unfortunate consequence of the rather > amateurish design of the types in the PLI. Right, and to me it makes perfect sense to keep the warning around, rather than paper over the problem. At least until the standards committee fixes the bug in their standard. - Larry |
|
From: Larry D. <ldo...@re...> - 2008-01-23 20:15:13
|
Steve - On Tue, Jan 22, 2008 at 05:52:32PM -0800, Stephen Williams wrote: > Larry Doolittle wrote: > > config.status: WARNING: ../verilog-0.9/Makefile.in seems to ignore the --datarootdir setting > > config.status: WARNING: ../verilog-0.9/driver/Makefile.in seems to ignore the --datarootdir setting > > config.status: WARNING: ../verilog-0.9/driver-vpi/Makefile.in seems to ignore the --datarootdir setting > > config.status: WARNING: ../../verilog-0.9/vvp/Makefile.in seems to ignore the --datarootdir setting > > configure: WARNING: no configuration information is in tgt-null > > I have no idea what to do with the above warnings. What is the > datarootdir setting and why should I not ignore it? Quoting from http://www.gnu.org/software/automake/manual/autoconf/Changed-Directory-Variables.html In Autoconf 2.60, the set of directory variables has changed, and the defaults of some variables have been adjusted (see Installation Directory Variables) to changes in the GNU Coding Standards. Notably, datadir, infodir, and mandir are now expressed in terms of datarootdir. If you are upgrading from an earlier Autoconf version, you may need to adjust your files to ensure that the directory variables are substituted correctly (see Defining Directories), and that a definition of datarootdir is in place. For example, in a Makefile.in, adding datarootdir = @datarootdir@ is usually sufficient. If you use Automake to create Makefile.in, it will add this for you. I see many other Free Software projects have recently added the newly recommended line, see for instance http://www.ginac.de/pipermail/cln-list/2006-April/000187.html Patches such as this claim to be backward-compatible. - Larry |
|
From: Stephen W. <st...@ic...> - 2008-01-24 20:12:19
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I've went ahead and added datarootdir = ... lines in the Makefile.in files in question. Didn't seem to cause obvious breakage, and I've pushed them into git. Larry Doolittle wrote: > Quoting from > http://www.gnu.org/software/automake/manual/autoconf/Changed-Directory-Variables.html > > In Autoconf 2.60, the set of directory variables has changed, and the > defaults of some variables have been adjusted (see Installation > Directory Variables) to changes in the GNU Coding Standards. Notably, > datadir, infodir, and mandir are now expressed in terms of datarootdir. > If you are upgrading from an earlier Autoconf version, you may need to > adjust your files to ensure that the directory variables are substituted > correctly (see Defining Directories), and that a definition of > datarootdir is in place. For example, in a Makefile.in, adding > > datarootdir = @datarootdir@ > > is usually sufficient. If you use Automake to create Makefile.in, it will > add this for you. - -- Steve Williams "The woods are lovely, dark and deep. steve at icarus.com But I have promises to keep, http://www.icarus.com and lines to code before I sleep, http://www.picturel.com And lines to code before I sleep." -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFHmPEnrPt1Sc2b3ikRAloFAJ4v4/GTjypt9AAyr7KCfUIQOK7SFgCfesRb RhoHrp8UgMwCG6XIBCelVuA= =0rDD -----END PGP SIGNATURE----- |