dmitrii.pasechnik at maths.ox.ac.uk
2018-Feb-15 14:39 UTC
[Rd] missing extern in GraphicsBase.h
Dear all, in src/include/GraphicsBase.h one has a declaration int baseRegisterIndex; the same as in src/main/devices.c which causes problems on Solaris, see bug #17385, and other platforms with "unusual" linkers, see bug #16633. By right, global variables like baseRegisterIndex are to be declared just once, and not in a header file, but in a *.c file. Then, to use them elsewhere in the code, one declares them as extern in the header. (as proposed on #17385) Otherwise one has an undefined behaviour, some linkers might silently prepend extern, some not... May I humbly request attention to this bug (which is classified as UNCONFIRNMED---and indeed it needs an extra effort to reproduce the error on, say, Linux --- but it really is an obvious C bug, which will rear its ugly head sooner or later again) Thanks, Dmitrii -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: Digital signature URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20180215/81d3065b/attachment.sig>
Hi I have committed the suggested "extern" patch. Could you please confirm that this fixes the issue on Solaris (and anything else you can test) ? Thanks! Paul On 16/02/18 03:39, dmitrii.pasechnik at maths.ox.ac.uk wrote:> Dear all, > in src/include/GraphicsBase.h one has a declaration > > int baseRegisterIndex; > > the same as in src/main/devices.c > > which causes problems on Solaris, see bug #17385, > and other platforms with "unusual" linkers, see bug #16633. > > By right, global variables like baseRegisterIndex are to be > declared just once, and not in a header file, but in a *.c file. > Then, to use them elsewhere in the code, one declares them as > extern in the header. > (as proposed on #17385) > > Otherwise one has an undefined behaviour, > some linkers might silently prepend extern, some not... > > May I humbly request attention to this bug > (which is classified as UNCONFIRNMED---and indeed it needs an extra > effort to reproduce the error on, say, Linux --- but it really is an obvious C > bug, which will rear its ugly head sooner or later again) > > Thanks, > Dmitrii > > > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >-- Dr Paul Murrell Department of Statistics The University of Auckland Private Bag 92019 Auckland New Zealand 64 9 3737599 x85392 paul at stat.auckland.ac.nz http://www.stat.auckland.ac.nz/~paul/
Apparently Analagous Threads
- R Include File Guards
- d_fontdb.d, g_her_glyph.d
- Intel MPX support (instrumentation pass similar to gcc's Pointer Checker)
- Intel MPX support (instrumentation pass similar to gcc's Pointer Checker)
- Intel MPX support (instrumentation pass similar to gcc's Pointer Checker)