* [ECOS] extern __inline__ and optimisation problems @ 2009-10-21 9:57 Øyvind Harboe 2009-10-21 13:59 ` Sergei Gavrikov 0 siblings, 1 reply; 9+ messages in thread From: Øyvind Harboe @ 2009-10-21 9:57 UTC (permalink / raw) To: eCos Disuss What does "extern __inline__" mean? When I build w/linux synthetic target I get lots of linker errors: ./.libs/libopenocd.a(non_cfi.o): In function `difftime': /tmp/ecosboard/synth/install/include/cyg/libc/time/time.inl:583: multiple definition of `difftime' ecosboard.o:/tmp/ecosboard/synth/install/include/cyg/libc/time/time.inl:583: first defined here Also when I tried to upgrade from an older arm-elf to arm-eabi, I ran into the same problem. -- Øyvind Harboe http://www.zylin.com/zy1000.html ARM7 ARM9 ARM11 XScale Cortex JTAG debugger and flash programmer -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ECOS] extern __inline__ and optimisation problems 2009-10-21 9:57 [ECOS] extern __inline__ and optimisation problems Øyvind Harboe @ 2009-10-21 13:59 ` Sergei Gavrikov 2009-10-21 15:16 ` Øyvind Harboe 0 siblings, 1 reply; 9+ messages in thread From: Sergei Gavrikov @ 2009-10-21 13:59 UTC (permalink / raw) To: Øyvind Harboe; +Cc: eCos Disuss On Wed, Oct 21, 2009 at 11:57:40AM +0200, Ãyvind Harboe wrote: > What does "extern __inline__" mean? > > When I build w/linux synthetic target I get lots of linker > errors: > > > ./.libs/libopenocd.a(non_cfi.o): In function `difftime': > /tmp/ecosboard/synth/install/include/cyg/libc/time/time.inl:583: > multiple definition of `difftime' > ecosboard.o:/tmp/ecosboard/synth/install/include/cyg/libc/time/time.inl:583: > first defined here Hi, Nobody knows what your optimization does means, -Os, -O3, or CDLs, e.g. cdl_option CYGIMP_LIBC_TIME_DIFFTIME_INLINE { user_value 0 } ... etc. I just tried ecosconfig new linux all vi ecos.ecc ;# tweak the _guessed_ optim CDLs ... make -C language/c/libc/time/current tests and I could not reproduce the issue. eCos LIBC time tests were built sucessfully even with CYGIMP_LIBC_TIME_DIFFTIME_INLINE == {0,1} && -Os. But, I noticed .libs/libopenocd.a the above (it seems for me that is the gnu's autotools imprint), may be that build used the host's <sys/time.h>, e.g., if HAVE_SYS_TIME_H defined, or host's <time.h>. May be you use a mixture of headers in the builds libopenocd.a and libtarget.a (i.e. host's & eCos'es) ? > Also when I tried to upgrade from an older arm-elf to arm-eabi, I ran > into the same problem. I'm sorry, but, you do not provide enough of details to reproduce the issue with any toolchain. Sergei -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ECOS] extern __inline__ and optimisation problems 2009-10-21 13:59 ` Sergei Gavrikov @ 2009-10-21 15:16 ` Øyvind Harboe 2009-10-21 15:40 ` Sergei Gavrikov 0 siblings, 1 reply; 9+ messages in thread From: Øyvind Harboe @ 2009-10-21 15:16 UTC (permalink / raw) To: Øyvind Harboe, eCos Disuss >> Also when I tried to upgrade from an older arm-elf to arm-eabi, I ran >> into the same problem. > > I'm sorry, but, you do not provide enough of details to reproduce the > issue with any toolchain. I know... I was hoping for some clues so I could put together a complete reproducible example. I ran into this problem when trying to build an app using autotools (openocd, in case you're interested). -- Øyvind Harboe http://www.zylin.com/zy1000.html ARM7 ARM9 ARM11 XScale Cortex JTAG debugger and flash programmer -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ECOS] extern __inline__ and optimisation problems 2009-10-21 15:16 ` Øyvind Harboe @ 2009-10-21 15:40 ` Sergei Gavrikov 2009-10-21 16:05 ` Øyvind Harboe 0 siblings, 1 reply; 9+ messages in thread From: Sergei Gavrikov @ 2009-10-21 15:40 UTC (permalink / raw) To: Øyvind Harboe; +Cc: eCos Disuss On Wed, Oct 21, 2009 at 05:16:38PM +0200, Ãyvind Harboe wrote: > >> Also when I tried to upgrade from an older arm-elf to arm-eabi, I ran > >> into the same problem. > > > > I'm sorry, but, you do not provide enough of details to reproduce the > > issue with any toolchain. > > I know... I was hoping for some clues so I could > put together a complete reproducible example. > > I ran into this problem when trying to build an app using autotools > (openocd, in case you're interested). Hm, I do not expect that it's possible to mix native host archive (libopenocd.a) is built using host headers/glibc and eCos archives (libtarget.a, libextras.a) are built with eCos headers/libc even for Linux synthetic target together. GNU autotools (=configure) make compiler to use host's resources, eCos CT (ecosconfig) make compiler to use eCos resources (even for linux synthetic target). Sergei -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ECOS] extern __inline__ and optimisation problems 2009-10-21 15:40 ` Sergei Gavrikov @ 2009-10-21 16:05 ` Øyvind Harboe 2009-10-21 16:15 ` Sergei Gavrikov 0 siblings, 1 reply; 9+ messages in thread From: Øyvind Harboe @ 2009-10-21 16:05 UTC (permalink / raw) To: Øyvind Harboe, eCos Disuss > Hm, I do not expect that it's possible to mix native host archive > (libopenocd.a) is built using host headers/glibc and eCos archives > (libtarget.a, libextras.a) are built with eCos headers/libc even for > Linux synthetic target together. I'm not (willingly) mixing host and eCos stuff. I'm crossbuilding using autotools to eCos binaries. This works fine for my arm-elf target, but something goes haywire with arm-eabi and gcc. I suspect that it might be a gcc 3 vs. gcc 4 problem. My suspicion is that I've got one option too many or too little... -- Øyvind Harboe http://www.zylin.com/zy1000.html ARM7 ARM9 ARM11 XScale Cortex JTAG debugger and flash programmer -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ECOS] extern __inline__ and optimisation problems 2009-10-21 16:05 ` Øyvind Harboe @ 2009-10-21 16:15 ` Sergei Gavrikov 2009-10-21 16:50 ` Øyvind Harboe 0 siblings, 1 reply; 9+ messages in thread From: Sergei Gavrikov @ 2009-10-21 16:15 UTC (permalink / raw) To: Øyvind Harboe; +Cc: eCos Disuss On Wed, Oct 21, 2009 at 06:04:48PM +0200, Ãyvind Harboe wrote: > > Hm, I do not expect that it's possible to mix native host archive > > (libopenocd.a) is built using host headers/glibc and eCos archives > > (libtarget.a, libextras.a) are built with eCos headers/libc even for > > Linux synthetic target together. > > I'm not (willingly) mixing host and eCos stuff. I'm crossbuilding > using autotools to eCos binaries. > > This works fine for my arm-elf target, but something goes > haywire with arm-eabi and gcc. I suspect that it might be > a gcc 3 vs. gcc 4 problem. My suspicion is that I've got one > option too many or too little... Search: gcc 4 extern inline http://gcc.gnu.org/gcc-4.3/porting_to.html May be that's it. Sergei -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ECOS] extern __inline__ and optimisation problems 2009-10-21 16:15 ` Sergei Gavrikov @ 2009-10-21 16:50 ` Øyvind Harboe 2009-10-21 18:41 ` Sergei Gavrikov 0 siblings, 1 reply; 9+ messages in thread From: Øyvind Harboe @ 2009-10-21 16:50 UTC (permalink / raw) To: Øyvind Harboe, eCos Disuss On Wed, Oct 21, 2009 at 6:15 PM, Sergei Gavrikov <sergei.gavrikov@gmail.com> wrote: > On Wed, Oct 21, 2009 at 06:04:48PM +0200, Ųyvind Harboe wrote: >> > Hm, I do not expect that it's possible to mix native host archive >> > (libopenocd.a) is built using host headers/glibc and eCos archives >> > (libtarget.a, libextras.a) are built with eCos headers/libc even for >> > Linux synthetic target together. >> >> I'm not (willingly) mixing host and eCos stuff. I'm crossbuilding >> using autotools to eCos binaries. >> >> This works fine for my arm-elf target, but something goes >> haywire with arm-eabi and gcc. I suspect that it might be >> a gcc 3 vs. gcc 4 problem. My suspicion is that I've got one >> option too many or too little... > > Search: gcc 4 extern inline > http://gcc.gnu.org/gcc-4.3/porting_to.html > > May be that's it. It almost certainly is... Thanks for the tip! Does this really mean that *all* those places in eCos have to be touched to become compatible with the -std=c99 or -std=gnu99 options? Ouch. -- Øyvind Harboe http://www.zylin.com/zy1000.html ARM7 ARM9 ARM11 XScale Cortex JTAG debugger and flash programmer -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ECOS] extern __inline__ and optimisation problems 2009-10-21 16:50 ` Øyvind Harboe @ 2009-10-21 18:41 ` Sergei Gavrikov 2009-10-22 7:43 ` Øyvind Harboe 0 siblings, 1 reply; 9+ messages in thread From: Sergei Gavrikov @ 2009-10-21 18:41 UTC (permalink / raw) To: Øyvind Harboe; +Cc: eCos Disuss On Wed, Oct 21, 2009 at 06:50:26PM +0200, Ãyvind Harboe wrote: > On Wed, Oct 21, 2009 at 6:15 PM, Sergei Gavrikov > <sergei.gavrikov@gmail.com> wrote: [snip] > > Search: gcc 4 extern inline > > http://gcc.gnu.org/gcc-4.3/porting_to.html > > > > May be that's it. > > It almost certainly is... Thanks for the tip! > > Does this really mean that *all* those places in eCos have to > be touched to become compatible with the -std=c99 or -std=gnu99 > options? > > Ouch. Greping the list on C99, I can repeat following you, Ouch :-) As I could understand eCos LIBC is not ready to be C99 compliant. Recent bird was Uwe's cdl_option CYGIMP_LIBC_STDIO_C99_SNPRINTF, but, it seems your dreams about eCos modularity via DVCS is near future to have some "C99" branch of the eCos language/c/libc. Ouch! But, may be it won't be _too_ hard to play with these CDLs for start grep ^cdl.*INLINE ecos.ecc | wc -l 22 Certainly, if I did not miss something in your message. Yet another what I found from man gcc-4.3 is -fgnu89-inline. Well, you have a full control on your own CFLAGS and I hope you have a time for a digging and let us to know a solution, please. Sergei -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [ECOS] extern __inline__ and optimisation problems 2009-10-21 18:41 ` Sergei Gavrikov @ 2009-10-22 7:43 ` Øyvind Harboe 0 siblings, 0 replies; 9+ messages in thread From: Øyvind Harboe @ 2009-10-22 7:43 UTC (permalink / raw) To: eCos Disuss Adding the -fgnu89-inline solves the problem. eCos should probably be updated eventually though... Thanks! -- Øyvind Harboe http://www.zylin.com/zy1000.html ARM7 ARM9 ARM11 XScale Cortex JTAG debugger and flash programmer -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-10-22 7:43 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-10-21 9:57 [ECOS] extern __inline__ and optimisation problems Øyvind Harboe 2009-10-21 13:59 ` Sergei Gavrikov 2009-10-21 15:16 ` Øyvind Harboe 2009-10-21 15:40 ` Sergei Gavrikov 2009-10-21 16:05 ` Øyvind Harboe 2009-10-21 16:15 ` Sergei Gavrikov 2009-10-21 16:50 ` Øyvind Harboe 2009-10-21 18:41 ` Sergei Gavrikov 2009-10-22 7:43 ` Øyvind Harboe
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).