Re: GCC plugin for avr-gcc

Sandeep K Chaudhary <[email protected]>
Newsgroups gmane.comp.hardware.avr.gcc
Message-ID <CAEEAEzVAsEDh0B=Me6TKeDiGaCZRrB4p647VnsbZ5Fi-enaAYQ@mail.gmail.com>
Hi Jeremy !

Thanks a lot for your reply ! Please see my reply inline.

On Thu, Jul 24, 2014 at 3:35 AM, Jeremy Bennett
<[email protected]> wrote:
> On 24/07/14 03:38, Sandeep K Chaudhary wrote:
>> Hi Guys,
>>
>> I wish to implement a GCC plugin that can work with avr-gcc. I came to
>> realize that the latest avr-gcc or avr-g++ is based off GCC 4.8.2.
>> However, the whole GCC plugin APIs were introduced in 4.9.0.
>> Therefore, the 'fplugin' option is not present with the latest
>> avr-gcc.
>
> Hi Shadeep,
>
> That doesn't seem right to me. I think the plugin mechanism his already
> there. For example the MAGEEC plugin (www.mageec.org) works with both
> 4.8 and 4.9 AVR GCC.
>
> It is possible that official distributions are compiled with it
> disabled. What does gcc -v report?

Here is the output of "gcc -v" :

sandeep@ubuntu:~/ispec$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
4.8.2-19ubuntu1'
--with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.8 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--enable-gnu-unique-object --disable-libmudflap --enable-plugin
--with-system-zlib --disable-browser-plugin --enable-java-awt=gtk
--enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre
--enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64
--with-arch-directory=amd64
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc
--enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)


"--enable-shared" is configured here. Is this what you meant? Please
let me know.

>
> However...
>
> While the interface for initializing a plugin is well defined, plugins
> inherently use internal APIs and these are not stable. In the MAGEEC
> plugin you'll see a lot of #ifdefs with the GCC minor version numbers.
>
> If you are doing this sort of work, I suggest you just use mainline GCC.
> Then you can be sure you are using the latest version.
>
>> Can someone please tell me when we can expect to have the plugin
>> support in avr-gcc? Also, is there some way to get around this problem
>> i.e. somehow being able to use the plugin option with current avr-gcc?
>>
>> It would be a great help if I can get the plugin option to work with avr-gcc.
>
> I believe it is working. Have a look at the code for MAGEEC to see how
> we use it. It's on GitHub:
>
>   https://github.com/mageec/mageec
>
> (I demonstrated this at the GNU Tools Cauldron last weekend. The talk
> and video should be up in a couple of weeks).

Yes, I am looking at this code. In case of questions, will get back to you.

>
> Best wishes,
>
>
> Jeremy
>
> --
> Tel:      +44 (1590) 610184
> Cell:     +44 (7970) 676050
> SkypeID: jeremybennett
> Twitter: @jeremypbennett
> Email:   [email protected]
> Web:     www.embecosm.com
>
> _______________________________________________
> AVR-GCC-list mailing list
> [email protected]
> https://lists.nongnu.org/mailman/listinfo/avr-gcc-list



-- 
Thanks and regards,
Sandeep K Chaudhary.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.