This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: Re: Why does #include <cyg/io/eth/eth_drv> define a bunch of time-related symbols?
- From: Sergei Gavrikov <sergei dot gavrikov at gmail dot com>
- To: Grant Edwards <grant dot b dot edwards at gmail dot com>
- Cc: eCos Discuss <ecos-discuss at ecos dot sourceware dot org>
- Date: Wed, 26 Jun 2013 02:13:20 +0300 (FET)
- Subject: Re: Re: Why does #include <cyg/io/eth/eth_drv> define a bunch of time-related symbols?
- References: <kqchr4$1go$1 at ger dot gmane dot org> <kqcjfk$h6m$1 at ger dot gmane dot org>
Hi Grant
On Tue, 25 Jun 2013, Grant Edwards wrote:
> On 2013-06-25, Grant Edwards <grant.b.edwards@gmail.com> wrote:
>
> > I'm working on a new Ethernet driver. eCos kernel/libs (including the
> > new drive) build fine. But, when I try to link an application I get a
> > bunch of errors because some time-related functions are defined twice.
> > They're defined in libtarget where they're supposed to be, but they're
> > also getting defined in the object file for my Ethernet driver [and I
> > can't figure out why].
I guess you catch some kind of "Library Issue"
http://gcc.gnu.org/c99status.html
> It's cause by compiling the driver with the -std=gnu99 flag. I a big
> fan of limiting the scope of variables and like to use this sort of
> construct:
>
> for (int i=0; i<whatever; ++i)
> {
> // "i" is only visible inside this block
> }
>
> It appears that eCos header files don't work right when you compile
> with C99 semantics...
Not only libraries. Many people (me too) are surprised when they look at
this table http://en.wikipedia.org/wiki/C99#Implementations -- very few
compilers are ready for C99.
Of course, if you (your fingers :-) have a habit... Well, you know about
C and C++ mix in eCos. If you like for-scope declarations then you would
use standard C with a bit of C++ sugar instead C99, eCos way:
% grep -Er '\<for\>\s+?\(\s+?\<int\>' $ECOS_REPOSITORY
Though then here and there human can miss the needed extern "C"
declarations and that is a penalty for the only one C99 habit.
Sergei
> --
> Grant Edwards grant.b.edwards Yow! I just forgot my whole
> at philosophy of life!!!
> gmail.com
>
>
> --
> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
>
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss