diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-17 13:36:47 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-17 13:36:47 +0000 |
commit | d4fcd9bcc74314b2bf90fab070113cf430e271f7 (patch) | |
tree | 6c340721081cf9d3139737f992836804eebbe867 | |
parent | 019c559b7e7214b8016a97cf19168a26b828520a (diff) | |
download | gcc-d4fcd9bcc74314b2bf90fab070113cf430e271f7.tar.gz |
2009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
* gcc/doc/plugins.texi (Building GCC plugins): Added new section.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148612 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/doc/plugins.texi | 34 |
2 files changed, 38 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2291ec21836..7c20d41fb35 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2009-06-17 Basile Starynkevitch <basile@starynkevitch.net> + + * doc/plugins.texi (Building GCC plugins): Added new section. + 2009-06-17 Ian Lance Taylor <iant@google.com> * c-pch.c (get_ident): Don't set size of templ array. diff --git a/gcc/doc/plugins.texi b/gcc/doc/plugins.texi index f02f931b102..9ae0a185f69 100644 --- a/gcc/doc/plugins.texi +++ b/gcc/doc/plugins.texi @@ -262,3 +262,37 @@ register_attributes (void *event_data, void *data) @} @end smallexample + + +@section Building GCC plugins + +If plugins are enabled, GCC installs the headers needed to build a +plugin (somehwere in the installation tree, e.g. under +@file{/usr/local}). In particular a @file{plugin/include} directory +is installed, containing all the header files needed to build plugins. + +On most systems, you can query this @code{plugin} directory by +invoking @command{gcc -print-file-name=plugin} (replace if needed +@command{gcc} with the appropriate program path). + +The following GNU Makefile excerpt shows how to build a simple plugin: + +@smallexample +GCC=gcc +PLUGIN_SOURCE_FILES= plugin1.c plugin2.c +PLUGIN_OBJECT_FILES= $(patsubst %.c,%.o,$(PLUGIN_SOURCE_FILES)) +GCCPLUGINS_DIR:= $(shell $(GCC) -print-file-name=plugin) +CFLAGS+= -I$(GCCPLUGINS_DIR)/include -fPIC -O2 + +plugin.so: $(PLUGIN_OBJECT_FILES) + $(GCC) -shared $^ -o $@ +@end smallexample + +A single source file plugin may be built with @code{gcc -I`gcc +-print-file-name=plugin`/include -fPIC -shared -O2 plugin.c -o +plugin.so}, using backquote shell syntax to query the @file{plugin} +directory. + +Plugins needing to use @command{gengtype} require a GCC build +directory for the same version of GCC that they will be linked +against. |