`clever' C preprocessor trick now causes problems

Rosimildo da Silva rdasilva at connecttel.com
Tue Sep 25 00:45:38 UTC 2001

From: "Eric Norum" <eric.norum at usask.ca>
To: <rtems-users at oarcorp.com>
Sent: Monday, September 24, 2001 5:39 PM
Subject: `clever' C preprocessor trick now causes problems

> I'm using RTEMS as a platform for EPICS (Experimental Physics and
> Industrial Control System).  The EPICS sources assume a full NFS
> connection to the file server and opens files with pathnames like:
>         ../foobar.dbd
>         ../../db/bletch.db
>         ./blahblahblah.cmd
> To provide similar functionality on RTEMS I compile the EPICS sources
> with a `-Dfopen=rtems_fopen' command-line flag.  The rtems_fopen routine
> strips off any leading ./ or ../ characters, prepends
> /TFTP/<<bootp_host>>/epics/<<hostname>>/ and then passes that name to
> the real fopen routine.  Neat trick, huh?  I thought so too, at the
> time.  Now I don't.  :-(

I personally, gave up "clever" tricks a long ago. They all came back, and 
caused toons of problems.....

> This of course causes an error since there' no prototype for fopen
> because the command-line definition forces the prototype in stdio.h to
> look like FILE *rtems_fopen (....
> And yes, there are C++ source files that call fopen so I can't get
> around the problem by just using the command-line redefinition for C
> source files.
> I'm at a bit of a loss as to how to get around this without hacking up
> either the GCC header files or the EPICS source.  Till now I've been
> able to avoid messing with either, and I'd like to keep it that way.

I would hack the EPICS source, once for all... and live with the 
C++ standards.....

Tkae care, Rosimildo.

More information about the users mailing list