Hi everyone,
Ping RE: http://gcc.gnu.org/ml/gcc-patches/2012-06/msg00086.html
Thanks,
Robert Mason
On 06/01/2012 02:43 PM, rbmj wrote:
On 06/01/2012 02:40 PM, rbmj wrote:
Hi everyone,
These fixes are to allow building on vxWorks. Currently there are
two issues:
1. VxWorks does not have a variadic open - it must receive three
arguments. gcc/gcov.c however opens a file for reading and does not
pass in a mode argument, which causes an error on vxWorks. This just
adds a platform-based ifdef around this. I am aware that this is
against coding conventions, and if that is an issue, I can think of
two resolutions. One, an autoconf macro to check for a non-variadic
open, or two, simply pass the extra mode argument in unconditionally,
as it should be transparent to the function and ignored if it is
variadic (I'm no expert on calling conventions though).
2. VxWorks has a two argument mkdir(). libgcc/libgcov.c uses
mkdir() and calls it with two arguments if TARGET_POSIX_IO is defined
and only one argument otherwise. I don't know what TARGET_POSIX_IO
is, but if it's anything more than just mkdir(), this is probably
correct, as vxworks is only partially POSIX compliant. Again,
another platform-based ifdef, so if that is anathema, it can be
replaced by more autoconf hackery.
The patch as-is compiles targeting on vxworks and bootstraps on a
native x86_64-linux-gnu build (which makes sense, since it doesn't
touch anything for non-vxworks).
Gerald Pfeifer has volunteered to apply the patch if approved.
Also, in an earlier message [1] Janne Blomqvist mentioned that newer
versions of VxWorks do have the variadic open(), and this is true.
However, as far as I know, this version is still not available for
kernel modules, only real-time processes.
Thanks,
Robert Mason
Sorry, forgot to add in the link.
[1]: http://gcc.gnu.org/ml/gcc-patches/2012-05/msg01102.html